收藏 分销(赏)

表格的处理.doc

上传人:天**** 文档编号:4046956 上传时间:2024-07-26 格式:DOC 页数:28 大小:124.54KB 下载积分:10 金币
下载 相关 举报
表格的处理.doc_第1页
第1页 / 共28页
表格的处理.doc_第2页
第2页 / 共28页


点击查看更多>>
资源描述
【次页】: 9. 图形的处理 【标题页】: latex123 【前页】: 7. 宏套件   目录   索引 8。 表格的处理 这是属于一般人觉得比较困难,但却是很重要的部份,让我们多花点时间研究。LaTeX 的表格,因为是抽象逻辑的思考方式来制作表格,对一般用户而言,比较不容易转换成直观印象。当然,有些编辑器,例如 GNU Emacs,有方便画 LaTeX 表格的编辑器 script,但这些我们先不去理他,先从 LaTeX 本身表格的结构理解起,这样在使用其他的辅助工具时也会比较得心应手,甚至没有其他工具,只要把握住表格的大结构,制作表格就不会摸不着头绪了。 由于 LaTeX 内建的表格功能算有点阳春,因此这一章会介绍一些外来的宏套件,来弥补 LaTeX 表格功能的不足,这些宏,使用上算相当普遍,几乎所有的 TeX 的各种发行版都会附上,因此不必担心可移植性的问题。 8。1 表格的种类 表格的使用,在文章上常常是必备的要件,他有归纳及醒目的作用,当然,表格太多也是会喧宾夺主。通常,我们中文的使用习惯,表格就是大方框内有小方框,文字置于小方框内,甚至某些小方框内还有斜线在分隔.为了排版上的方便及视觉表现上的美观、清楚,在国际上大部份较正式的论文已不使用纵线、斜线,表格通常由横线来做区隔,甚至完全没有线条,使用空间区隔的方式.这种趋势几乎在二十几年前就已开始普遍,只是国内的文件似乎还是很喜欢有纵、斜线在表格之中,好像没有一些框线层层包住就不像表格。如非特殊的表现上的需求,我们应该朝简化表格本身的方向走,将重点置于表格的内容及表格的逻辑结构安排,漂漂亮亮的表格外观加上不当的内容配置,个人觉得这是个失败的表格制作. 另外,等粗的双线条,可能也是得尽量避免,通常粗细不等的外框双线条有装饰的作用,因此,如果文件是较正式的论文,那就可能要避免,如果是海报、DM 或要让人们填写的表格之类的,那又是另外一回事,这时封闭性的方框可能会有需要。这些规范只不过是一些惯例,并非一成不变的,得视文件的性质及使用场合来做变化,一个大原则是,如果是以文字叙述为主的文件,那么,表格本身如果比文字内容抢眼太多的话,或许就要考虑简化表格本身了。 我们这里就来比较,有纵线、无纵线、完全没有线框及含双线表格的各种形式的表格,大家就自由心证,看哪一种表格看起来比较顺眼。由于 HTML 格式在表格的表现上可能会失真,因此这里制作成 PDF 格式供参考: http://edt1023。sayya.org/tex/latex123/test—tables.tex http://edt1023.sayya.org/tex/latex123/test—tables.pdf 8。2 tabbing 环境 这是 LaTeX 里头最基本的表格形式,除非自行另外定义、绘制,他并没有方便可用的线条指令来区隔,完全使用空间、位置的配置来显示表格内容,这时整个 tabbing 表格在 LaTeX 的地位并不是一个最小单位的 box,LaTeX 不会把整个表格当成一个单位来处理.所以,tabbing 表格是可以跨页的,他可以被分成两半来处理。因此,要和其他文字、图表并排排版时,得另外放进一个 box 中,让他自成一个 box 单位,例如 \parbox 或 minipage 环境里头。 在 tabbing 环境中,第一个列(row)是以 \= 来标示 Tab 宽度来区隔字段(column),这个宽度是由字段里头的字符串宽度所决定的。后续的每个字段是由 \〉 这个符号来区隔,每列尾要自行加上 \\ 来换行,最后一行可以不必使用 \\ 换行.tabbing 的基本大结构是: \begin{tabbing} column1 \= column2 \= column3 \\ item1 \〉 item2 \> item3 \\ itemA \〉 itemB \〉 itemC \end{tabbing} 这里特意把他排列整齐(事实上,不排整齐 LaTeX 也会帮忙排好),这样才能看得出来他的表格结构。那如果想调整字段宽度时可以使用 template 的方式,例如: \begin{tabbing} xxxxxxxxxx\=xxxxxxxxxx\=xxxxxxxxxx \kill column1 \> column2 \> column3 \\ item1 \〉 item2 \〉 item3 \\ itemA \〉 itemB \〉 itemC \end{tabbing} 这里以 10 个 x 为字段的宽度,这里的 \kill 表示这一行是不印出来的,只是在表示各个字段的样本宽度,而且他会自动换行。当然,要使用其他的字符串也是可以,例如以表格中最长字符串来取代整个 x 字符串,这样就会让字段宽度刚好都可以容纳其他栏内内容。也可以使用 \hspace{6em} 或其他的长度指令,来指定字段的宽度。 对于字段内文字的控制,tabbing 较不完备,虽然 LaTeX 有提供 \' 让这个符号之前的文字靠左,及 \` 让这个符号之后的文字靠右,但实际运用,可能不是使用者想要的结果,因此 LaTeX 的表格,主要还是以 tabular 环境较为常用。但 tabbing 环境的好处是,他不见得一定要用于表格的排版,例如他也可以表现如条列环境般的另一种表现方式,而且他可以跨页排版。 8.3 tabular 环境 这大概是最常使用的表格形式,可以很方便的画线框。这种表格,LaTeX 是把整个表格当成一个单位来处理,就像字母一样,因此他在版面的安排上是和一般的字母一般的处理,所以,这种表格不经特殊处理,无法被分割成两个部份来跨页。 和 tabbing 环境的不同,除了可以有线条之外(tabular 环境,当然也是可以完全没有线条),分隔字段的符号是 &,而且,一定要指定栏内文字的置放位置,栏内文字超出指定的宽度时,会自动折行,还有许多其他更细节的调整。 8.3.1 tabular 表格的基本结构 \begin{tabular}[t]{lll} \hline column1 & column2 & column3 \\ \hline item1 & item2 & item3 \\ itemA & itemB & itemC \\ \hline \end{tabular} 其中 [t] 表示 top,也可以是 b 表示 bottom,或 c 代表 center,这要在前后有文字相并排的时候才会显现作用,因为 LaTeX 会把整个 tabular 表格当成一个字母单位,所以可以和其他文字、图表并排排版。这些参数的意思是和同行文字的对齐方式,top 是表格顶端和前后文字对齐,bottom 则是表格底部和前后文字对齐,center 则是和表格中央对齐。 换行的方式和 tabbing 环境一样,其中的 \hline 是画一条横线的意思,连续两个 \hline\hline 会画双横线,他本身会自动换行,因此不必加上换行符号。其中 \begin{tabular}{lll} 的 lll 是在指定各字段内容在小方框内的置放位置,l 表示靠左(left),r 表示靠右(right),c 表示置中(center)。在 {lll} 中加上 bar(|)会画纵线,例如 {|l|l|l|} 这样就会变成传统的大方框、小方框的表格。而两个 bar 就会画双纵线。 tabular 环境内尚可使用另一个 tabular 环境来制作更复杂的表格,这在 tabbing 环境是不被允许的. 8.3.2 tabular 环境对字段的调整 1. p{宽度} 这里的 p 指的是段落(paragraph).通常用于一个小段落的文字,指定了宽度后里头的文字会自动折行,而且这个段落的顶端会和其他字段的顶端对齐。 2. @{文字、符号或指令} 这可以作用在本栏的各个列,让他们都出现某个文字、符号或都在某个指令的作用下。这个指令另外会同时将字段间距缩成 0,置于首尾的话,会有让横线和文字切齐的作用(预设不会切齐,横线两端会多出字段间距的部份)。 3. \multicolumn{字段数}{左右位置}{文字内容} 跨栏排版,例如一小段文字跨两栏。左右位置可使用 lrc 之一。 4. \cline{a—b} 画某部份字段的横线,其中的 a—b 指的就是要画线的字段数,例如 \cline{2—3} 就是画第二栏至第三栏的横线。 5. \arrayrulewidth=单位长度 调整表格线条的粗细,默认值是 0.4pt。使用方法:\arrayrulewidth=1.5pt 即可,但要注意的是要在进入 tabular 环境之前设定好。 6. \tabcolsep=单位长度 调整两字段的左右间距。请注意,这个值是实际两字段间距值的一半,预设是 6pt.使用方法和 \arrayrulewidth 一样。 7. \doublerulesep=单位长度 调整画双线时,这两线间的间距,默认值是 2pt。使用方法和 \arrayrulewidth 一样。 8. \arraystretch 调整表格的上下行距.请注意,这要由 \renewcommand 来重设,因为在 LaTeX 定义出的一个常数值,而这个 \arraystretch 只是这些常数值的倍数,我们要重新改变他才能改变默认倍数。例如:example16。tex 中的使用方法。 在 tabular 环境的参数中,可能是取代原来的参数,例如 p{}。也可能是置放在原参数的前后,如 @{},这看一下实际例子就可以了解: % example16.tex \documentclass{article} \usepackage{textcomp} % for \textcelsius \renewcommand{\arraystretch}{1。2} % 将表格行间距加大为原来的 1.2 倍 \arrayrulewidth=1pt % 调整线条粗细为 1pt \tabcolsep=12pt % 调整栏间距为 24pt \begin{document} \centering \section*{SPECIFIC HEATS (20 \textcelsius\ AND 1 ATM)} \begin{tabular}{@{\sf }lll@{}} % 第一字段使用 sans serif 字族 \hline & \multicolumn{2}{c}{\bf Specific Heats} \\ % 跨二三栏排版,文字置中 \cline{2—3} % 只画二三栏横线 & $c$ (J/kg$\cdot$K) & $C$ (J/mol$\cdot$K) \\ \hline Aluminum & 900 & 24.3 \\ Copper & 385 & 24。4 \\ Gold & 130 & 25。6 \\ Steel/Iron & 450 & 25。0 \\ Lead & 130 & 26.8 \\ Mercury & 140 & 28。0 \\ Water & 4190 & 75.4 \\ Ice ($—$10 \textcelsius) & 2100 & 38 \\ \hline \end{tabular} \end{document} textcomp 也是 LaTeX 的标准宏之一,他提供了许多符号,不必进入数学模式也是可以正常使用。但一般编译的话,可能会使用到 pk 点阵字,如果有安装 cm-super Type1 字型的话,可以使用以下的编译方式: latex example16.tex dvisp —Pcm—super example16.dvi ps2pdf example16.ps 这样就会完全使用 Type1 字型。如果没有安装 cm-super Type1 字型,则可引用 txfonts 或 pxfonts 宏套件。 @{} 如果完全没有加入任何参数,那么他的作用只是在去掉左右两栏间距而已,大家可以把有关 @{} 的部份拿掉,试着再编译看看,仔细比较看有什么不同。有些专业排版的专家建议把表格前后加个 @{} 去除突出来的横线(实际上就是去除原有左右两边间距的部份).编译好的例子在: http://edt1023.sayya.org/tex/latex123/example16。tex http://edt1023。sayya。org/tex/latex123/example16。pdf 如果 @{} 里头不是指令,而是文字或符号,那这个文字或符号会加在各栏文字内容的前或后. p{} 指令的使用时机是某一个字段的文字比较多,需限定字段的宽度让他自动折行的情形,例如以下的例子: % example17。tex \documentclass{article} \renewcommand{\arraystretch}{1.2} % 将表格行间距加大为原来的 1.2 倍 \begin{document} \centering \section*{Yi Syllables Area Character Blocks} \begin{tabular}{@{}llp{6cm}@{}} \hline Start & End & Character Block Name \\ \hline A000 & A48F & Yi Syllables. Yi also known as Lolo, is a script resembling Chinese in overall shaps that is used in the Yunnan province China. \\ A490 & A4CF & Yi Radicals。 Basic units of the Yi syllables。 \\ \hline \end{tabular} \end{document} 这样会把 p{} 指定的字段当成一整个段落来处理,空一个空白行,同样是表示新段落的开始.编译好的例子如下: http://edt1023.sayya。org/tex/latex123/example17.tex http://edt1023。sayya。org/tex/latex123/example17。pdf 8。4 array 宏套件 这个宏套件可以加强原有 tabular 环境的功能。使用上只要引入 array 宏套件即可,tabular 环境依原来的使用方法,只是多了些相关调整指令。 1. m{宽度} 这和 p{} 一样的作用,只是置放的位置不一样,此时其他字段的内容会对齐这个段落的中央位置。 2. b{宽度} 同 p{},但其他字段的内容会对齐整个段落的底部。 3. >{指令} 这可以置于 l,r,c,p,m,b 参数之前,是对于某个字段的内容下指令,这个指令会在此一字段内容之前作用。引用了 array package 后,可能会抑制某些 @{指令} 的作用,此时要改用 〉{指令},但这没有去除字段间距的功能,可在前头再加个 @{} 即可。 4. 〈{指令} 和 >{指令} 相同,但会在此一字段内容之后才作用。 5. !{指令} 这是取代 | 的作用,可以方便使用特殊符号来代替原来的纵线。 6. \extrarowheight 这是在调整字段内容顶端的空间大小,但不会改变底部的空间大小。 8。5 tabularx 宏套件 tabularx 宏套件提供一个 tabularx 环境,这是加强型的 tabular 环境,附在 LaTeX 的工具组里头。主要作用是改善 \tabular* 指令,指定表格宽度的功能。 在原始 tabular 环境,加了个星号,可以指定表格的宽度。但由于 \tabular* 这个原始环境,他会去修改栏内空间,而不是实际整个表格方框的宽度,这使得某些文字会超出表格范围,因此,使用上可能 tabularx 会比较方便,他提供了 X 参数来取代原来的 lrc 参数,这个参数实际的作用是 p{} 的功能,因此会实际调整字段方框的宽度,而且里头的文字叙述超过字段宽度时会自动折行。这个套件会自动引入 array package8.1。这里使用这两种环境来排版,大家比较一下他的结果,就知道差异了: % example18。tex \documentclass{article} \usepackage{tabularx} \parindent=0pt \renewcommand{\arraystretch}{1。2} \begin{document} \centering \section*{\texttt{tabular*} environment} \begin{tabular*}{8cm}{lll} \hline Start & End & Character Block Name \\ \hline 3400 & 4DB5 & CJK Unified Ideographs Extension A \\ 4E00 & 9FFF & CJK Unified Ideographs \\ \hline \end{tabular*} \section*{\textsf{tabularx} package} \begin{tabularx}{8cm}{llX} % 8cm 减去前两个字段宽度后,剩下的通通给 \hline % 第三字段使用,文字超出的部份会自动折行 Start & End & Character Block Name \\ \hline 3400 & 4DB5 & CJK Unified Ideographs Extension A \\ 4E00 & 9FFF & CJK Unified Ideographs \\ \hline \end{tabularx} \end{document} tabularx package 并不是都没有缺点的,例如,使用 \verb 指令时会有一些不兼容,另外,在 tabularx 环境内还要有其他的 tabularx 环境时,这个在里头的 tabularx 环境要由大括号括住,不能像 tabular 环境一下的直接巢状使用。编译好的例子在: http://edt1023。sayya.org/tex/latex123/example18。tex http://edt1023。sayya。org/tex/latex123/example18.pdf 8。6 表格线条粗细的控制(booktabs) 由前面几节所述,可以看得出来 LaTeX 表格宏的功能稍嫌阳春了点,对于一些特殊状况可能会无法处理,对于表格外观要求较高的使用者也会感到不足,虽然也可以自行去定义宏,但这样一来不但可能有可移植性的问题,而且也不是每个人都有时间去学习 TeX/LaTeX 宏的写作。我们试图来看看有没有其他的解决方式,这里不得不会提到一些外来的宏套件,但这些套件的使用相当的普遍,几乎可以忽略他的可移植性的问题。 我们前面曾学过 \arraryrulewidth 指令,可以调整线条的粗细,但是这无法各别调整线条,每个在 tabular 表格环境内的线条会调整成一样的粗细。booktabs 宏套件可以很方便的达成这个目的。我们来看看这个提供了什么方便的指令: 指令 功能 \toprule[线条粗细] 画表格顶端的横线 \midrule[线条粗细] 画表格里头的横线 \bottomrule[线条粗细] 画表格底部的横线 \cmidrule 指令某个字段画横线,取代原来的 \cline 使用方法和 tabular 环境差不多,连环境名称都一样,但可在指令后加个方括号来指定线条的粗细,不指定的话,toprule 及 bottomrule 都会比中间的其他线条粗一点.其中 cmidrule 另有更进一步的功能: \cmidrule[线条粗细](左右是否去边){画线字段} 其中「画线字段」和 \cline 一样,指定字段数即可,例如 2—3。左右去边要表明左(l)或/及右(r),也可由大括号指定要去掉多少(预设 0。5em),如:(lr{0.7em}){2—3}.我们把 example16 拿来改一下,大家试着看看有什么不同,编译好的例子如下: http://edt1023.sayya。org/tex/latex123/example19.tex http://edt1023.sayya.org/tex/latex123/example19。pdf 由于屏幕分辨率的关系,如果分不出不同,请由打印机印出来比较,或将档案放大再来观察。这里最粗的是 toprule 及 bottomrule 再来是 midrule,最细的是 cmidrule。而且 booktabs 已经调整过原来 tabular 表格的上下间距,除非想得更大,不然的话,不需另外再去设定 arraystretch 的值了. 8.7 彩色表格(colortbl) 彩色表格已经是很普遍,但千万要小心喧宾夺主的情况,也别弄成了大花脸。因此,淡色系可能会比较合适。我们在第 3.4.3.1 小节及 example13 曾提到过 color package 的引用,但并没有详细说明这个套件的用法,而 colortbl 会使用到这些颜色的功能,因此这里稍微说明一下。 8。7。1 color 宏套件 这是附在 LaTeX 工具组 graphics package 中的一个宏,使用上非常简单,只要把 color 宏在文稿 preamble 区引上就可以使用颜色了。以下是常要用到的控制指令: 指令 作用 \color{颜色} 这会使用文章所有内容都使用这个颜色 \definecolor 定义颜色 \textcolor{颜色}{文字内容} 让文字内容使用某特定颜色 \pagecolor{颜色} 这是在设定背景颜色,本页及其后的页面会使用这个背景颜色 \normalcolor{颜色} 回复原来的颜色 \colorbox{颜色}{文字内容} 这是方框背景的颜色 \fcolorbox{框色}{框内背景色}{文字内容} 这是方框颜色和其内背景颜色不同 这里要注意的是,指令里头使用的颜色,必需是有定义过的颜色才能使用。color 宏只定义了一些基本颜色,red, green, blue (RGB 模型原色), cyan, magenta, yellow, black (CMYK 模型原色), white,另外一个常用的 gray 灰阶模型(gray-scale),其他的颜色得自行定义.定义颜色的语法如下: \definecolor{颜色名称}{颜色模型}{调色盘值} 第一个参数就是自定义的一个颜色名称,颜色模型可使用 rgb、cmyk 或 gray,各颜色深浅值在 0-1 之间,「调色盘值」就是各种原色的值.RGB 颜色的索引值,如果是 Unix—like 系统,可找一下 rgb.txt 这个档案,里头就会有各种颜色的索引值,或者,参考 example24.pdf。这里以 bisque 这个颜色为例子,他的 rgb 三原色的深浅比例为 255, 228, 196,各除以 256 得 0.996, 0。891, 0。755,定义方法如下:8.2 \definecolor{bisque}{rgb}{。996,.891,.755} \definecolor{mypink}{cmyk}{.1,。8,.4,。1} % cmyk 模型的例子 这样以后就可以使用 bisque 及 mypink 这两种颜色了。gray 则支持灰阶,可以增减他的显现深浅,例如: \definecolor{mygray}{gray}{。6} 或直接定义及使用,不事先定义好颜色名称: \textcolor[gray]{.3}{文字内容} \textcolor[rgb]{。2,.5,。7}{文字内容} 这样 mygray 会得到浅灰色的效果,他的颜色名称就是 mygray。直接定义及使用虽然也可以,但不建议这么做,因为如果有两个地方要使用同一种颜色时,又得重复定义一次。要注意的是 gray 不能直接使用,要先定义他的灰色度,其他颜色也不能这样单纯靠一个值来定义他的深浅度。通常我们引用的时候,会加入以下的选项参数: \usepackage[usenames,dvipsnames]{color} \usepackage{colortbl} 这样就可以使用 dvipsnam。def 这个档里头所定义好的颜色,例如 Salmon, Orchid, BlueViolet 等等,请自行查阅这个档案内容,dvipsnames 这个参数也可以不用,只用 usenames 即可.这里引用时请注意顺序,colortbl 要在后面,原因是 colortbl 宏会自动引入 color 及 array 这两个宏,但里头并没有含任何选项参数,所以要抢先去宣告. 8。7.2 colortbl 的主要指令 指令 作用 \columncolor 让整个字段着色 \rowcolor 整整个横列着色 \arrayrulecolor{颜色} 指定线条的颜色 \doublerulesepcolor{颜色} 指定双并线内间隔的颜色 在这里,\columncolor 和 \rowcolor 的参数是一样的,他们的共同语法是: \columncolor[颜色模型]{颜色}[左缘突出长度][右缘突出长度] 我们现在就来看个实例,这里头有四个小例子,包括:灰阶横条、部份字段着色、整个表格在着色背景及单一个表格内方框着色: http://edt1023。sayya。org/tex/latex123/example20.tex http://edt1023。sayya.org/tex/latex123/example20.pdf 8。8 表格的批注(threeparttable) 表格的批注比较麻烦,LaTeX 把 tabular 环境视为一个单位,对里头的文字做脚注的话,将会不翼而飞,有些宏套件有办法在表格内做脚注(例如 longtable package),但却是置于页面底部,和一般内文的脚注混在一起,多数使用者希望的是能把批注就置于表格底部。解决的方法就是使用 threeparttable package,暂时将表格的某部份分割出来。 如果你的 threeparttable package 的表现和这里的例子有不一样的情形,请更新这个套件,这篇文章使用的是 2003/06/13 v3。0 的版本。 ftp://ctan.unsw.edu。au/tex—archive/macros/latex/contrib/misc。zip 下载后解开压缩文件,把 threeparttable.sty 拷贝至 $TEXMF/latex/misc 目录下,执行一下 texhash 一下即可。他的环境名称和套件名称一样,就是 threeparttable。把 tabular 及批注的指令和内容,通通包在 threeparttable 环境里头即可. 他是使用 \tnote{符号或文字} 先标出要批注的地方,在 tabular 环境结束后,再使用 tablenotes 环境来写批注内容,这两个部份都是整个被 threeparttable 环境包住的。底下这个例子来自这个套件的作者 Donald Arseneau,这里把他和 booktabs package 结合起来用: http://edt1023.sayya。org/tex/latex123/example21。tex http://edt1023。sayya。org/tex/latex123/example21。pdf 要注意的是,在 tablenotes 环境下,字体并没有缩小,可参考 example21 里头,使用 footnotesize 的字体大小. 8.9 小数点对齐(dcolumn) 这是 LaTeX 的标准宏,用于将表格内的小数点对齐.原来的 tabular 环境的作法是去增加一个字段,那个字段使用 @{.} 来专门排小数点,这样一来两栏的间距会消掉,看起来就像连在一起的数字了,但这样实在是有点 dirty,使用 dcolumn 宏的话,就可以很有规律的去对齐小数点或逗点. dcolumn 的用法,主要是去取代 tabular 参数中的 lrc 这些参数。他使用的是一个大 D 指令,后接三个参数: D{文稿输入符号}{排版后输出之符号}{小数字数} 例如以下的表格我们再怎么去排,小数点总是无法对齐,因为 tabular 环境是以整个字符串在处理的: \begin{tabular}{lllll} \toprule & headA & headB & headC & headD \\ \midrule test1 & 7。879 & 921。661 & 1382.81 & 998。98 \\ test2 & 1.97 & 35.21 & 321.3 & 4791112。11 \\ test3 & 211.97 & 5.2 & 213。629 & 748261594.106 \\ \bottomrule \end{tabular} 我们只要把 tabular 的后面参数改成: .。. \usepackage{dcolumn} .。. \begin{tabular}{lD{.}{.}{3}D{。}{.}{3}D{。}{.}{3}D{。}{.}{3}} .。. 就可以让小数点对齐。这个 3 就是最长的小数字数,我们输入、输出都是英文句点(就是小数点),这样的表示法也可以另外宣告 \newcolumntype 的标准格式,以简化 tabular 参数的输入,即: 。。. \usepackage{dcolumn} ..。 \newcolumntype{z}[1]{D{。}{.}{#1}} % 定义一个新的 z 指令 。.. \begin{tabular}{lz{3}z{3}z{3}z{3}} ... 那个 #1 就是 z 这个新指令的参数(z 可以是任意的字母或符号),z{3} 其实就是代表 D{。}{.}{3}。中括号里头的 1 代表这个新的 z 后面只接一个参数,在这个例子里就是小数点个数 3。以下是编译好的例子: http://edt1023。sayya。org/tex/latex123/example22.tex http://edt1023.sayya。org/tex/latex123/example22。pdf 这里要特别注意的是,在 dcolumn 的效力范围里头,例如以上例子,受 z 指令影响的字段,他会自动进入数学模式,里头要表现数学式的话,前后不必再加 $,否则会跳出数学模式.例如 example22 里头,那些 headA 会变成斜体字,这是因为进入了数学模式,要让他正常的话,就要写成 $headA$ 这样来跳出数学模式。 8.10 大型表格(longtable) 这可能有两种情形。一种是很宽的表格,另一种是很长的表格。太宽的表格可考虑旋转一下,让他横放,至于长的表格可以使用 longtable 让他可以跨页连续.如果都不行,那只考虑夹页,图表另外制作,或者试着简化图表一途了。 8。10。1 太宽的表格 要把表格横放,方法很多,例如 graphics package 一起 release 的 lscape 宏套件,他会让内文旋转九十度,或者使用 graphics/graphicx package 本身的 \rotatebox 指令,将表格旋转九十度.另外,也可以使用 rotating package 来旋转。这些 package 基本上使用的都是 graphics/graphicx 宏上的旋转指令的功能,所以,不限定只能使用在图表而已. 这里就以 rotating package 为例来说明,他提供了 sidewaystable 及 sidewaysfigure 环境,前者会让表格旋转九十度,后者会让图形旋转九十度。这个套件会自动引用 graphicx 宏,不使用这些套件,使用 graphicx 的 rotatebox{90}{表格} 也是可以达到相同的功能,只不过限制会比较多.这里举一个 rotating 的例子,把表格置于 sidewaystable 环境内就行了: http://edt1023.sayya.org/tex/latex123/example23。tex http://edt1023.sayya.org/tex/latex123/example23.pdf 8。10.2 太长的表格 表格想跨页,可以使用 tabbing 表格,如果想使用 tabular 表格,又想可以跨页的话,可以使用 longtable package,这是 LaTeX 所附上的工具组。他提供了 longtable 环境来取代原来的 tabluar 环境。如果想要和 booktabs 合用的话,请更新 booktabs package 的版本,目前最新的版本是 2003/03/28 v1.618: ftp://ctan。unsw。edu。au/tex—archive/macros/latex/contrib/booktabs.zip 我们把前面提到过的 rgb。txt 拿来排成表格参考,例子如下: http://edt1023.sayya。org/tex/latex123/example24。tex http://edt1023。sayya。org/tex/latex123/example24。pdf 8.11 浮动环境 tabular 表格,LaTeX 都会把他视为一个独立的 box,也就是会把他当成一个字母单位在处理,他不能被分割,常常因为图表稍大些 LaTeX 就会起新页去置放,但这样一来原本的页面就会显得空荡,整个版面看起来很不自然,这种情形下,他们的置放位置就很重要了,使用浮动环境的话,LaTeX 会继续文字的部份,而把图表置放在下一页的顶端。通常,在 LaTeX 的浮动环境下,图表通常会置放在一页的顶端或都是底部,正常是不置放在一页中间的位置,除非强迫指定,有放不下的情形时,就会让他占一整页。因此,LaTeX 就得把前后位置经过整体的计算后再来决定图表应该置放在什么地方,这就是所谓的浮动环境。8.3 8。11.1 基本的浮动环
展开阅读全文

开通  VIP会员、SVIP会员  优惠大
下载10份以上建议开通VIP会员
下载20份以上建议开通SVIP会员


开通VIP      成为共赢上传

当前位置:首页 > 包罗万象 > 大杂烩

移动网页_全站_页脚广告1

关于我们      便捷服务       自信AI       AI导航        抽奖活动

©2010-2026 宁波自信网络信息技术有限公司  版权所有

客服电话:0574-28810668  投诉电话:18658249818

gongan.png浙公网安备33021202000488号   

icp.png浙ICP备2021020529号-1  |  浙B2-20240490  

关注我们 :微信公众号    抖音    微博    LOFTER 

客服