`
orcl_zhang
  • 浏览: 234246 次
  • 性别: Icon_minigender_1
  • 来自: 杭州
社区版块
存档分类
最新评论

latex表格处理

阅读更多
LaTeX 表格处理概述

一般三线表的处理
带表格注释的三线表
固定列宽和自动伸缩列宽
固定列宽与对齐方式
自动伸缩列宽
跨页表格
表格旋转和后置
表格旋转
表格后置
辅助转换工具
表格居中
LaTeX 表格处理概述

与 word 不同,LaTeX 通过一定的语法规则将表格写成纯文本形式。基本规则包括:表格从上到下,每一行从左到右,单元格内容使用 & 分隔,用 \\ 换行。最基本的表格环境是 tabular 环境。下面是一个简单的表格代码和实际效果:

\begin{tabular}[t]{l|c}
\hline
姓名 & 年龄 \\
\hline
张三 & 32 \\
李四 & 12 \\
王五 & 24 \\
\hline
\end{tabular}
一般三线表的处理

学术论文普遍使用三线表。三线表的特点主要是:整个表格通常只有三条横线,首尾两条横线较粗,中间一条较细,一般不使用竖线。LaTeX 处理三线表相当简单方便。用到的宏包主要是 booktabs 。下面是普通三线表的代码和效果:

\begin{table}[htbp]
\caption{\label{tab:test}示例表格}
\begin{tabular}{lcl}
  \toprule
  姓名 & 年龄 & 地址\\
  \midrule
  张三 & 32 & 中华人民共和国\\
  李四 & 12 & 中华人民共和国\\
  王五 & 24 & 中华人民共和国\\
  \bottomrule
\end{tabular}
\end{table}
带表格注释的三线表

三线表有时候还需要加上注释以便给出表格的资料来源等信息。解决这一问题可以使用下面三个办法之一:

使用 ctable 宏包。该宏包用法简单,下面是典型代码和效果:
\ctable[%
caption=The Skewing Angles,
label=tab:nowidth,
]{lcc}
{\tnote{for the abstraction reaction,
        $Mu+HX \rightarrow MuH+X$.}
\tnote[b]{1 degree${} = \pi/180$ radians.}
\tnote[c]{this is a particularly long note, showing that footnotes
           are set in raggedright mode as we don't like hyphenation
           in table footnotes.}
}
{\FL & $H(Mu)+F_2$ & $H(Mu)+Cl_2$ \ML
  $\beta$(H) & $80.9$\tmark[b] & $83.2$ \NN
  $\beta$(Mu) & $86.7$ & $87.7$ \LL
}
使用 threeparttable 宏包。下面是典型代码和效果:
\begin{table}[htbp]
\centering\small
\begin{threeparttable}
\caption{\label{tab:results}Effect of Trade Openness on
          Environment (Air Pollution)}
  \begin{tabular}{lccc}
  \toprule
           &    NO$_2$ &    SO$_2$ &         PM \\
  \midrule
  $\ln(y/pop)$ &    408.74* &    287.25* &     566.65 \\
           &   (121.79) &   (118.81) &   (336.19) \\
  $\ln(y/pop)^2$ &    $-$22.85* &    $-$16.58* &   $-$35.57** \\
           &     (6.90) &     (6.78) &    (19.06) \\
  $(X+M)/Y$ &     $-$.29** &      $-$.31* &       $-$.37 \\
           &      (.17) &      (.08) &      (.34) \\
  $Polity$ &     $-$3.20* &     $-$6.58* &    $-$6.70** \\
           &     (1.47) &     (2.05) &     (3.42) \\
  $\ln(LandArea/pop)$ &      $-$5.94 &     $-$2.92* &    $-$13.02* \\
           &     (5.93) &     (1.39) &     (6.29) \\
      Obs. &         36 &         41 &         38 \\
    $R^2$ &       0.16 &       0.68 &       0.62 \\
  \bottomrule
  \end{tabular}
  \small
  Note: Robust standard errors in parentheses. Intercept
        included but not reported.
\begin{tablenotes}
  \item
  • significant at 5\% level
  •   \item[**] significant at 10\% level
    \end{tablenotes}
    \end{threeparttable}
    \end{table}
    固定列宽和自动伸缩列宽

    有时三线表需要固定某列的列宽,或者指定整个表格的总宽度,指定某几列自动伸缩。

    固定列宽与对齐方式

    固定列宽可以使用 array 宏包的 p{2cm} 系列命令,如果需要指定水平对齐方式,可以使用下面的形式 >{\centering}p{2cm} 实现,但如果使用这种方式,缺省情况下不能使用 \\ 换行,需要使用 \tabularnewline 代替。为了仍然使用 \\ 换行,需要在导言区加上下面的代码:

    \usepackage{array}
    \newcommand{\PreserveBackslash}[1]{\let\temp=\\#1\let\\=\temp}
    \newcolumntype{C}[1]{>{\PreserveBackslash\centering}p{#1}}
    \newcolumntype{R}[1]{>{\PreserveBackslash\raggedleft}p{#1}}
    \newcolumntype{L}[1]{>{\PreserveBackslash\raggedright}p{#1}}
    使用 C{3cm} 命令即可指定该列宽度为 3cm,并且文字居中对齐,左对齐和右对齐命令分别是 L{2cm} 和 R{2cm} 。

    下面是一个的例子:

    \begin{table}[htbp]
      \centering\caption{\label{tab:test}2000 和~2004 年中国制造业产品的出口份额}
      \begin{tabular}{l*{2}{R{2cm}}}
        \toprule
        & 2000 & 2004 \\
        \midrule
        钢铁 & 3.1 & 5.2 \\
        化学制品 & 2.1 & 2.7 \\
        办公设备及电信设备 & 4.5 & 15.2 \\
        汽车产品 & 0.3 & 0.7 \\
        纺织品 & 10.4 & 17.2 \\
        服装 & 18.3 & 24\\
        \bottomrule
      \end{tabular}
    \end{table}
    自动伸缩列宽

    使用 tabularx 宏包可以实现自动伸缩列宽。下面是一个简单的例子。与普通的 tabular 环境不同之处在于:(1)需要指定整个表格的总宽度;(2)需要用 X 指定至少一列为自动伸缩列。

    \begin{table}[htbp]
      \centering\caption{\label{tab:test}2000 和~2004 年中国制造业产品的出口份额}
      \begin{tabularx}{10cm}{Xrr}
        \toprule
        & 2000 & 2004 \\
        \midrule
        钢铁 & 3.1 & 5.2 \\
        化学制品 & 2.1 & 2.7 \\
        办公设备及电信设备 & 4.5 & 15.2 \\
        汽车产品 & 0.3 & 0.7 \\
        纺织品 & 10.4 & 17.2 \\
        服装 & 18.3 & 24\\
        \bottomrule
      \end{tabularx}
    \end{table}
    跨页表格

    普通的表格不能跨页。如果需要跨页表格,需要使用 longtable 或 supertabular 等宏包。此处以 longtable 为主介绍。

    下面是一个例子。

    \begin{longtable}{p{1.2cm}p{8cm}p{5cm}}
    \caption{\label{tab:test}WTO 英语缩写}\\
    \toprule
    缩写 & 原\hspace{1em}文 & 解\hspace{1em}释\\
    \midrule
    \endfirsthead
    {\bf 续表~\ref{tab:test}}\\
    \toprule
    缩写 & 原\hspace{1em}文 & 解\hspace{1em}释\\
    \midrule
    \endhead
    \endfoot
    \bottomrule
    \endlastfoot
    WTO & World Trade Organization & 世界贸易组织\\
    TRIMs & Trade-Related Investment Measures & 与贸易有关的投资措施\\
    TPR & Trade Policy Review & 贸易政策审议\\
    ....
    \end{longtable}
    表格旋转和后置

    表格旋转

    用latex排版,如果要旋转文字,图像,表格等对象,首先得安装rotating包,在文档中使用usepackage{rotating}导入旋转包。

    旋转命令格式\begin{command}{x},这里的{command}有三个命令选项: sideways, turn, rotate。{x}是用户自己定义的旋转角度。比如下面的例子将一个对象旋转90度:

    \begin{sideways}将要打印的内容旋转90度\end{sideways}

    turn和rotate都可以自己规定旋转的角度,但两者的区别是,rotate的旋转结果并不能保证被旋转对象所需要的空间。比如下面的例子讲一句话旋转120度,但是它有可能到超出页面,有些就不能显示了;

    \begin{rotate}{120}将要打印的内容旋转自定义角度,但是旋转结果并不能保证被旋转对象所需要的空间\end{rotate}

    需要注意的是,.Tex转成dvi格式后,你还不能看见旋转的结果,需要将dvi格式转成ps格式或者pdf后才可以看见旋转的结果。

    代码范例:

    \documentclass{article}

    \usepackage{CJK}              % 用于汉字
    \usepackage{rotating}       %用于旋转对象

    \begin{document}
    \begin{CJK*}{GBK}{song}        %使用GBK宋体


    \begin{sideways}将要打印的内容旋转90度\end{sideways}
    \begin{turn}{45}将要打印的内容旋转自定义角度\end{turn}


    \begin{rotate}{120}将要打印的内容旋转自定义角度,但是旋转结果并不能保证被旋转对象所需要的空间\end{rotate}

    \end{CJK*}

    \end{document}

    也可以使用lscape宏包或者landscape宏包:

    landscape 宏包(包括在标准的 LATEX 图形宏包套件中)定义 了 landscape 环境,允许在竖排版的文档中放置横排页。 横排页被旋转使得竖排页的左边界为其顶部。 输入命令 \begin{landscape} 使得所有未处理的竖排的浮动对象 被排出并开始横排页,同样地,输入命令 \end{landscape} 使得所 有未处理的横排的浮动对象被排出并重新回到竖排状态。 所有位于 landscape 环境中的内容都会被横排。如果只有 包含一个浮动图形环境


    如果是表格,范例如下。

    \usepackage{lscape}
    \begin{landscape}
    % your table
    \end{landscape}

    或者

    \begin{landscape}
    % your table
    \end{landscape}


    \begin{landscape}
      \begin{figure}
        \centering
        \includegraphics[width=4in]{graphic.eps}
        \caption{Landscape Figure}
      \end{figure}
    \end{landscape}



    表格后置

    使用 endfloat 宏包可以将文章中的所有图表置于文章末尾,以满足某些杂志的排版要求。

    辅助转换工具

    calc2latex 或 excel2latex 可以将电子表格文件数据转换为 latex 表格。
    dat2latex.pl 这是 perl 脚本,可将 gnuplot 的文本数据文件转换为 latex 表格。
    表格居中

    表格居中可以用

    \begin{center}..

    \end{center}。

    但是图片处理时候用这个代码上下会有较大空白,所以一般不用。一般多用\centering。比如

    \begin{figure}

    \centering

    ...

    \end{figure}
    分享到:
    评论

    相关推荐

      LaTeX 表格的处理

      LaTeX 表格处理概述 一般三线表的处理 带表格注释的三线表 固定列宽和自动伸缩列宽 固定列宽与对齐方式 自动伸缩列宽 跨页表格 表格旋转和后置 表格旋转 表格后置 辅助转换工具

      Latex表格处理教程

      这个教程给出了如何利用Latex创建复杂表格。尤其对于论文撰写有很大帮助。

      Excel2LaTeX表格竖线截断问题解决

      LaTeX的表格处理一直是件让人头疼的事情,很多人推荐Excel2LaTeX,能够很快捷的将表格转换为代码,然而在使用过程中会发现竖线截断问题,非常不美观 经过一番痛苦的摸索,发现首先在Excel中,需要将所有的灰色虚线...

      LaTeX科学文件处理软件入门

      LaTeX(LATEX)是一种基于TeX的排版系统,由美国计算机学家Leslie Lamport在20世纪80年代初期开发,利用这种格式,即使使用者没有排版和程序设计的知识也可以充分发挥由TeX所提供的强大功能,能在几天,甚至几小时内...

      LaTeX论文写作教程-表格制作

      LaTeX论文写作教程-表格制作 LaTeX是一种基于TeX的排版系统,用于创建高质量的科技文档,如学术论文、书籍、报告等。与传统的字处理软件(如Word)相比,LaTeX具有以下优势: 专业排版:LaTeX提供了丰富的命令和...

      latex 机械工程学报模板

      LaTeX(/ˈlɑːtɛx/,常被读作/ˈlɑːtɛk/或/ˈleɪtɛk/),排版时通常使用LATEX,是一种基于TeX的排版系统,由美国计算机科学家莱斯利·兰伯特在20世纪80年代初期开发,利用这种格式系统的处理,即使用户没有...

      matlab级数符号求和代码-csv2latextab:通过逗号分割数据文件实现LaTeX表格的制作

      通过CSV文件生成LaTeX表格的几种方法 本项目通过实例说明如果通过CSV文件(逗号分割值文件)生成LaTeX表格的几种方法,兼容最新版的TeXLive、MacTeX 、MikTeX发行版,支持跨平台使用。 CSV文件称逗号分隔值(Comma-...

      MatLab 的 LaTeX 输出类:此代码使人们可以更轻松地从 MATLAB 中为表格和图形生成 LaTeX 代码。-matlab开发

      这组类的目的是使程序员能够(更)轻松地为表格生成 LaTeX 代码以及来自 MATLAB 中的数字。 我已经包含了一个 pdf 文件,其中记录了此代码的许多功能,并提供了基本功能的示例。 已经有其他解决方案可用; 但是,...

      latex教程资料。

      第三至五章讲解数 学、插图、表格等对象的用法;第六章是一些特殊功能;第七、八章讨论中 文和字体的处理;第九章附加定制内容。 从难易程度上看前两章较简单,插图、字体两章较难。一般认为 L ATEX 相对于微软的...

      latexmatlab代码-latexTable:此MATLAB函数将矩阵,单元格或表从MATLAB转换为LaTeX表代码

      LaTeX表格边框,标题,标签 使用booktabs乳胶包装 输出完整的LaTeX文档而不是普通表 工作流程很简单。 这是一个小例子: 设置输入结构: input.data=[1,3;4,2]; 调用函数: latexTable(input) 将生成的LaTex代码复制...

      LNCS_Latex模板

      LNCS会议论文推荐使用,Springer/LNCS论文模板,可直接下载使用,亲身实践,好用 LNCS会议论文推荐使用,Springer/LNCS论文模板,可直接下载使用,亲身实践,好用

      latex学习教程,十个方法掌握基本使用方法.zip

      图片与表格:教您如何插入、调整图片和表格的位置与大小。 自动化工具:自动生成目录、索引和其他导航工具,提高工作效率。 自定义样式:如何修改默认样式,创建个人或团队的文档模板。 参考文献管理:引用外部文献...

      LATEX及Winedit入门指导教程.pdf

      LaTeX(/ˈlɑːtɛx/,常被读作/ˈlɑːtɛk/或/ˈleɪtɛk/,写作“LATEX”),是一种基于TeX的排版系统,由美国计算机科学家莱斯利·兰伯特在20世纪80年代初期开发,利用这种格式系统的处理,即使使用者没有排版...

      latex2html:将LaTeX文档转换为HTML

      处理内联方程,右对齐编号的方程,表格或图形以及任何任意环境, 可以产生适用于支持嵌入式图像或基于字符的浏览器(由用户指定)的浏览器的输出, 处理新命令,环境和定理的定义,即使它们是在外部样式文件中...

      Matlab 转latexTable格式.zip

      2.领域:智能优化算法、神经网络预测、信号处理、元胞自动机、图像处理、路径规划、无人机等多种领域的Matlab仿真,更多内容可点击博主头像 3.内容:标题所示,对于介绍可点击主页搜索博客 4.适合人群:本科,硕士...

      Execl2LaTeX

      用于处理excel表格数据,自动生成代码,方便用户使用,可直接粘贴在LaTeX中,点击运行即可。

      一行内文本溢出的处理

      NULL 博文链接:https://qiaohhgz.iteye.com/blog/1664352

      test-latex-converters:一个测试用例和随附的脚本,用于比较从 LaTeX 到文字处理器格式的转换器

      pandoc_html pandoc_mathjax pandoc_odt pandoc_docx pandoc_rtf latex2rtf mk4ht 乳胶后期xml 乳胶2html 基于在建议,目前最好的选择,以产生的东西,在文字处理工作好是产生latexmlHTML4输出,并在文字处理软件...

      Latex实用教程--2008年版

      Latex实用教程 本文第一章谈谈历史背景;第二章介绍入门基础;第三至五章讲解数 学、插图、表格等对象的用法;第六章是一些特殊功能;第七、八章讨论 中文和字体的处理;第九章附加定制内容。

    Global site tag (gtag.js) - Google Analytics