数学建模社区-数学中国

标题: LaTeX论文写作系列之表格插入 [打印本页]

作者: zhangtt123    时间: 2020-2-12 15:18
标题: LaTeX论文写作系列之表格插入
一、常用的表格宏包  L: ^& R* v- N  o1 O& m; ~
        dcolumn                                对齐小数点
0 v7 `4 O0 x) C4 X7 D1 Q! Z% Y9 l        makecell                        单独控制单元格格式
* [5 T: ]/ `) y7 }        diagbox                                对表格进行斜线分割
! D$ w) l) H) S. m8 D5 ?3 _( ?: q% m*        longtable                        长表格,可用于处理分页表格(表格超过一页时使用)* f6 ?5 l0 ?  S) p7 ]" y5 {9 l" }
        ltxtable                        longtable和tabularx的结合体
' H! h2 l( X4 S( a; Y        array                                各个表格宏包都依赖于它) s" _2 m' E' D8 Q, H$ U" J
*        tabu                                命令简单、功能强大4 x; y. i8 K" `7 a5 b: K
7 k! @2 u4 M3 d4 V' {" \+ J
二、输入格式及说明
. J* I" L& M' v6 e1、一般输入格式$ y* K6 Z1 c" {  U
\begin{tabular}[<垂直对齐方式>]{<列格式说明>}
' \- q5 _1 y) V. z0 Z  {        &        &        &        &        \\3 _, m6 l* o/ Y2 W1 o$ w% p
\end{tabular}3 W1 e. b; c" E5 ]

6 o! b+ D0 z$ [% Z2、一些说明
3 O; X5 c* C! ]/ n" s) t0 O(1)特殊符号:; o0 Q) X  l/ N# n9 x7 @' R5 ^6 d
           \\          表示换行
* B3 q* @9 a# E0 Q           &   表示分隔单元格
$ _- F: \& x6 Q7 j# {) _( \; b- r' I# P" \1 e# Q" p! A- i5 q" f
(2)垂直对齐方式:
. {. }& w. l" @9 t           t  表示按表格顶部对齐& w* R  ]! K6 l
           b   表示按表格底部对齐- @" Q8 O8 Y2 w
          默认为:垂直居中,非t和b的参数都看作居中4 O* b/ P$ M1 l3 a
, c1 F( c: O# A1 r0 y5 h
(3)列格式:. D5 D" c; C9 r+ R7 i& O! g
           l  表示列左齐 (小写的 L)
* Q% y0 z* L4 N9 M' X* K2 h           c  表示列居中对齐
! G1 _# V' y* {3 J( K           r  表示列右对齐
$ |( Z+ a1 j# r! x) y; ?
$ U" J" M4 R! ~* V( M1 w1 t- K2 B4 }0 l* j三、单元格的合并& z. C2 Z! P5 j+ _- r3 o0 E
1、行内单元格合并命令
4 m7 s' M' ~0 T2 D4 c4 ?  l+ s9 S\multicolumn{<项数>}{<新列格式>}{<内容>}     %<内容>为合并后的新内容                                                    
1 o. }- U' I( |9 y- l" [/ y. ]- ?" w7 M
(1)基础模板:
3 `8 l) S4 f# Z& [            \begin{tabular}{ | c | c | }
; k  q8 d3 v9 Z                   \hline6 V  s9 R  F/ J% v( L
                   \multicolumn{2}{ | c | }{成绩} \\7 p5 R! v( N# D' J" ~5 Z" d. k
                   \hline
( i1 [5 I5 j6 y! R4 L- K* {' s, R                   语文 & 数学   \\  \hline
. Z2 Y4 {; p3 @. `; b" G                   100 &  100          \\  \hline+ p) F! h; R) A! ?/ Y7 z
                   %阿汪先生的博客; P6 \( c9 [1 H
           \end{tabular}: s7 w& A+ b' N3 ?8 |
                    + t, k+ c; O3 h2 Q: _3 a
(2)进阶模板:
, \/ G( e& Q$ c3 Y5 s          \begin{tabular}{ | c | r | r | }; P! d$ O7 \& S9 U7 q" d  U
                \hline
2 ~6 G% g) d8 M( `' M                 &\multicolumn{2}{  c | }{成绩} \\2 o7 P- x' O. @8 A
                \cline {2-3}
8 X! E" J; V5 c7 K# i7 r5 _4 R% E                 姓名 & 语文 & 数学   \\  \hline
; L/ C2 |9 z2 `) }0 V7 B                 阿汪 & 93 &  97          \\  \hline       
) H/ H% F4 f( i0 u' b- h                 %阿汪先生的博客1 _0 H8 T5 E* x: @) T
        \end{tabular}
" |: J8 y" N( ?# U& I6 \" R! f  e                          7 H1 K# B1 a4 x' U, Q
语句技巧:画水平表格线需要指定线的起始和终止列号。4 G! [# i# x; u+ J/ O
用 \cline {<起始位置> - <终止位置>} ,如\cline{2-3} 。, d" g3 o/ V  G! P

' A4 `' [  m3 @; A3 z2、列内单元格合并命令8 t3 }$ f' S4 _0 I3 h
需要用 multirow宏包
3 C/ `6 ^: a$ w& Q3 f\multirow{<行数>}{<宽度>}{<内容>}:内容达到指定宽度后自动换行
1 I: K: g4 r, Q7 @\multirow{<行数>}*{<内容>}:单元格的宽度即为输入内容的宽度$ E5 f$ H4 ^/ i% Q
' \/ X/ h( z1 n6 t0 O
基础模板:' t/ S# a3 U5 ^! U% F0 M
%导言区   \usepackage{multirow}6 R" ?0 B1 d4 G' {
         \begin{tabular}{ | c | r | r | }
5 Z6 {7 S" ~7 K* T2 R                \hline
! o7 U' a. y6 ~2 C% D4 W                \multirow{2}*{姓名}&
. x/ j% {7 F) j- e7 }: g/ B  S                \multicolumn{2}{  c | }{成绩} \\" N" J7 [! F: m* ?4 x; R2 P
                \cline {2-3}* N1 ~8 X2 c8 ~4 f6 }/ ?
                        & 语文 & 数学   \\  \hline
0 X' h3 |: b! M# E  X                阿汪 & 93 &  97          \\  \hline: P& Y2 r! P8 e! H  f
            %阿汪先生的博客
* Z- W9 b$ S) @        \end{tabular}
! j4 ~' C7 l; X( B9 m# l+ x% ?3 u' W0 G. l2 k. @
四、特殊表格) x/ t( X% o1 A6 i1 B$ I
1、定宽表格—tabularx: _) {+ U8 q& N8 q
(1)注意点:
1 T, }! B  H' i5 }! ?: ?/ z7 D          tabularx宏包提供tabularx环境1 t- G4 F8 B4 g5 J  U* t6 f+ l
          X为列格式说明符(列宽自动延伸),单元格内部默认左对齐,使其居中需要array宏包支持。
  a& ^/ M2 E7 v+ a- P7 \9 O
- }. t7 E' j* V: k; s(2)使用示例:) Z* H$ A2 }& m/ E+ p$ a6 p
%导言区   \usepackage{tabularx}) H7 O% ?  F+ ]8 Q  M4 X! v
        \begin{tabularx}{400}{ | c | X | X | X | X | X |}
/ j2 D! N. ~& V1 d$ T* \( n                \hline
& {  j3 ^0 r8 }3 B: |( o                数字 & 1 & 2 & 3 & 4 & 5    \\  \hline
' |. N, S1 e* s2 D( T+ g) c                汉字 & 一 & 二 & 三 & 四 & 五    \\  \hline" a: a* \7 V- }& A$ I+ I  v" P0 F
                %阿汪先生的博客
0 {, y7 k) F6 \' K3 |6 a        \end{tabularx}
$ z4 D) D) J% L2 Y: I                
+ V( x5 z; u' S4 ?; m$ Y( V' ?2、三线式表格—booktabs; _" U+ R* I+ ?8 m( y) i; Z
(1)booktabs提供了如下命令:* P- b# T1 W3 A% |0 c- A8 b# P
          \toprule ,画表格顶部粗线。+ {1 W! V! m; R' w. a; y" Q( }
          \midrule,画表格中部粗线。+ t5 X3 @7 K- B8 h6 u  o/ r
          \bottomrule,画表格底部细线。* x# G. _+ O1 m* R7 [0 {0 Q2 D' r
          \cmidrule 与 \cline命令相似。
3 p9 Z% @' z* P& A9 c7 i8 f
" r0 v9 ]: d2 [7 b(2)使用示例:
* X; A3 {4 g# P- Z# S" B$ m%导言区  \usepackage {booktabs}
  M3 t+ v% W7 a5 n7 A5 p3 {/ i        \begin {tabular}{c c c}
* L' }' c0 z5 u, C          \toprule
* u- J6 Y. s# B% X; f9 v2 K8 X4 ?          姓名 & 语文 & 数学 \\ \midrule
4 v1 |/ W. f2 ~: X          阿汪 & 93 &97   \\ \cmidrule {2-3}
1 X. N8 ?( D. v* F8 X$ q          阿喵 & 98 &92   \\ ' }) K  B1 G1 F/ R" c( g
          \bottomrule                                                       
( p4 L: e3 V$ `% d  ?          %阿汪先生的博客3 B+ _: ^* ^) d3 w
\end{tabular}- y9 B7 t2 T2 ]7 k3 F
) |% d( Y3 {& Q# D' [
五、常用表格参数的设定
3 Z6 m2 Y% u4 q. ~% ^5 i1、表格浮动环境3 G4 Q! O! ?: O
控制表格(浮动)在本页中的显示位置需要table环境。
! I3 U" a' q; s位置参数有htbp四种:here 、top 、bottom 、float page。# t9 J- C# d% w3 k5 F) w6 q. X
table环境中可以通过 \caption 命令表格的标题。
) q  @% \3 |* U2 Z1 r
: p* N; K! U2 y(1)位置参数htbp释义:5 V' O! o2 t+ K* U* o
here:在输入表格的位置排版' x0 a  O5 B9 Y, ^
top:在输入页面的顶部排版. |. A* y6 a% e/ K% a! j4 p) W4 l
bottom:在输入页面的底部排版* Q6 O, e# v$ `2 t; U
float page:在单独的浮动页面排版
2 x8 \+ d  q/ |! E(2)使用模板:
% ?2 u9 p7 X4 o$ t\renewcommand\tablename{表}# w  `* n8 p: _. K: w
   \begin {table}[htbp]
0 b' e4 g* j- t! t( n            \centering \caption{成绩一览表}
0 e6 @7 S" W6 `9 `, }                   \begin {tabular}{c c c}
0 x- t  a, ?' j, }                           \toprule       
2 J$ \" I- t  W( c" q' h                           姓名 & 语文 & 数学 \\ \midrule
* x9 B+ b5 b- C/ C& ~: X                           阿汪 & 93 &97   \\ \cmidrule {2-3}3 B4 R# g# |& b3 c5 M* H) K
                           阿喵 & 98 &92   \\
! v4 D; r- \2 Q8 A- i1 c                           \bottomrule2 `" b9 ?8 X' @* @$ N" O: D0 I) h5 G
                   \end{tabular}8 x, D- a" H4 ]3 E
                   %阿汪先生的博客0 m& u/ Q) |+ W
   \end {table}        3 f8 Y3 ?+ Z' I, y2 G
8 n  s* G' t: N( C8 A+ w6 \6 @
2、功能强大的tabu宏包
+ m, Q- f: O* }5 C' T9 B* R(1)tabu宏包提供的基本表格环境
# a! |1 s) _4 I! [- V% H+ a" q5 x& F\begin{tabu}[<垂直对齐方式>]{<tabular列格式说明>}
5 v3 w0 r& U2 S6 w9 T/ s- s  p7 u\begin{tabu} to <尺寸>[<垂直对齐方式>]{<tabularX列格式说明>}& A1 j! y) N. X' l
\begin{tabu} spread <尺寸>[<垂直对齐方式>]{<tabularX列格式说明>}% e6 S# R' a4 B) T  P* J
, 其中**spread <尺寸>**表示:在表格的自然宽度下再增加一个<尺寸>。
" H" p: Z" z( [: b; r/ C. z  V(2)画线格式. `9 D, U. v; [9 V0 Q$ m- L- E
 tabu环境中的画线命令:竖线|有一个可选项,可用来设置表格竖线的宽度。
7 |( O9 v7 w) k0 }0 ?          \begin{tabu}{|[2pt]c|c|[2pt]}8 s" U- T) q7 C8 C5 l
          \tabucline[<尺寸>]{-}用来画横线,<尺寸>设置横线厚度,
' n. J0 C+ _7 o, ^. H          {-}指从本行起到本行末尾画一条横线,
4 |% f0 J) A& H0 Y          {2-}指从第二个单元格开始画线至行尾。3 X2 O& N5 W) z* f) b! P- @
! U; m  M/ Z" G5 o
(3)单独设置一行的格式
; P" s% z3 _; L0 y- u          \rowfont[<对齐方式>]{<字体格式>} 可以设置一行单元格字体的格式。4 E/ X; g6 b% k% [. X. H
使用示例:
: g. h# w. l0 p* O) s* ]% k( k* Q" T1 b) D. }: V( C$ V& @, ~
\begin{tabu}{|X|X|}9 x& Q- b' D+ f, r
        \tabucline-            %“-”表示无厚度等参数
% P: z. j0 v4 m0 b7 P# k3 v        \rowfont[c]{\bfseries} This & is \\ \tabucline-  V" `# l2 B/ ]/ X( _+ Y+ R( ~
        for & everyone \\ \tabucline[2pt]-
/ e, E+ \' J' i- p9 B' @6 P& F5 v' K        \rowfont [r]{\itshape} Mr & Wang \\ \tabucline-        4 {6 C1 E# k; L1 A
        %阿汪先生的博客( {( J2 w3 M! u. o/ g. |4 e$ m
\end{tabu}               
; P/ H6 s) H" o0 X6 }' V7 o2 n% c$ I3 b; K
(4)其他操作
! M$ ]" B1 \. M在tabu环境中合并与tabular环境不一样,前\extrarowsep后要在\end{tabu}之前添加命令 \tabuphantomline。
$ ?* u" e7 c; C$ F' T\extrarowsep可以在每行垂直方向上添加额外空白,得到相同的行高。
! E+ ~" D4 K: M! q使用示例:# N# C, v5 R/ Y; P5 w" K0 z
\begin{tabu}{| X | X |} \hline( \" W6 b( L+ N% I+ [. L
\multicolumn 2 {|c|}{Hello}&World \\ \hline6 C4 D: `- e+ N" Z, q  H' ^
\tabuphantomline                                                %阿汪先生的博客; U0 u" y, w( w* V" V: A6 T; [& w
\end{tabu}                                                            %表格中不能有空行
$ ?) y4 ]5 `9 N( k. b" |+ Q3 W0 I! r' z- v( ~/ |2 {
————————————————" b, m; ~! \) _2 O: n4 x- k9 a
版权声明:本文为CSDN博主「阿汪先生」的原创文章。* {3 v  e0 A9 c8 l! B
原文链接:https://blog.csdn.net/qq_43499622/article/details/96894437
# a% X! @" K1 F7 \! i" d- B
作者: 925865807    时间: 2020-2-16 11:27

8 I3 R4 U6 v: ~5 @1 g- D1 d
, j/ B( _- {3 q2 w3 R, \8 ^2 y/ E' c0 x  H) V$ C
谢谢分享" r) Q' L) ^) v  O/ Q$ ], z; @5 x9 a





欢迎光临 数学建模社区-数学中国 (http://www.madio.net/) Powered by Discuz! X2.5