数学建模社区-数学中国

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

作者: zhangtt123    时间: 2020-2-12 15:18
标题: LaTeX论文写作系列之表格插入
一、常用的表格宏包
; ?; b6 w: o  Y( w8 {. N        dcolumn                                对齐小数点' I: _" \, A/ v; m
        makecell                        单独控制单元格格式, E8 Z4 B4 n9 E% q& G- W
        diagbox                                对表格进行斜线分割
( h  O  q" q, V9 D*        longtable                        长表格,可用于处理分页表格(表格超过一页时使用)
# e' h! \+ m2 I0 j. }) P" i        ltxtable                        longtable和tabularx的结合体: L' i3 l( @* }6 ^9 s
        array                                各个表格宏包都依赖于它
$ `' b0 b7 u* v0 m*        tabu                                命令简单、功能强大$ s" ^% P) Y4 f7 }) [- p7 e8 a

. q* \; S# C) f# E& J& I二、输入格式及说明$ M; k$ d% X: ~
1、一般输入格式
8 X( N4 }  m0 o& n+ i\begin{tabular}[<垂直对齐方式>]{<列格式说明>}  v1 ^, d) G% D+ N
        &        &        &        &        \\2 V9 F, z0 |% L+ V4 p* T- w8 P) z
\end{tabular}
4 T% {: f3 @$ y+ c
1 Y: c5 {. m: M+ b! }2、一些说明
' t& u& t; o$ W0 [; @(1)特殊符号:  Q3 D. J5 o1 E& E/ K; N+ W; G4 p
           \\          表示换行! b/ x/ N% @( ?# N% R
           &   表示分隔单元格: ]; \, i/ Q" A# D; \( u

- x8 W  Q% r8 `5 S' U(2)垂直对齐方式:  d# ^3 X! }7 E. n! a
           t  表示按表格顶部对齐
7 a) c* }: q* m6 c% h- i  ^; y           b   表示按表格底部对齐9 k4 }8 E; z* Y' b  h  A1 x
          默认为:垂直居中,非t和b的参数都看作居中
4 t! c: L6 \5 U) t! j4 n& c2 p' s. K0 r/ @
(3)列格式:" j# b0 e# f% b5 j
           l  表示列左齐 (小写的 L)
4 X6 ?6 U( K. {1 V# Q7 U, _           c  表示列居中对齐( h& Y3 E6 v' c& I/ e) }% i  N8 h8 K
           r  表示列右对齐5 T: l5 R: j" H
, s: e1 E2 ?" W7 s3 Y8 O$ ]
三、单元格的合并- Y* i6 N0 H: h7 v: d! l
1、行内单元格合并命令9 x( j9 W2 g4 |
\multicolumn{<项数>}{<新列格式>}{<内容>}     %<内容>为合并后的新内容                                                    ! F% w. h$ O; D- k

, K3 Q3 S' s9 R/ k/ z(1)基础模板:# }3 g; Y) U9 V6 O% T& N! ]$ t
            \begin{tabular}{ | c | c | }! M& O5 k1 W+ C- f' H. D
                   \hline
' q0 P3 x! @. K* O. C. w$ j                   \multicolumn{2}{ | c | }{成绩} \\( f# G& x: P0 F+ a7 v
                   \hline
# l. R) d5 v% N  j+ U- y                   语文 & 数学   \\  \hline3 N4 s& `" m0 U  c: w$ K- m  y
                   100 &  100          \\  \hline
* F% u, `1 A3 N+ K; ~                   %阿汪先生的博客8 e  E! r* c& t3 K: z0 D
           \end{tabular}- z7 d0 {9 Q9 D. M
                    & i; k) f. S8 f9 V
(2)进阶模板:7 ?; T! Y7 o" U8 q
         \begin{tabular}{ | c | r | r | }$ B: P& F7 I* r3 |
                \hline/ Z! j5 n- t( N8 K! i
                &\multicolumn{2}{  c | }{成绩} \\
0 ?& w4 a) ?/ o& E) L                 \cline {2-3}
: W# h/ |. n; v  ~                 姓名 & 语文 & 数学   \\  \hline! V# ^" p/ X% L1 d/ C
                阿汪 & 93 &  97          \\  \hline       
: R% x( s* Q9 [( n! i9 c: r                 %阿汪先生的博客# O; @7 d+ Z8 U
        \end{tabular}
; i6 Q3 U/ F/ k9 J; g4 a: D                          ' o2 |' O  m* y$ l
语句技巧:画水平表格线需要指定线的起始和终止列号。
" b; S  M2 f; f& }! F; w; {# N* u用 \cline {<起始位置> - <终止位置>} ,如\cline{2-3} 。: ?+ e0 J1 Y: E2 \7 S0 J2 V" ?' t

1 z+ [7 r" l4 Y, ]% k2、列内单元格合并命令
0 R: y* C( V4 u2 I- R! H需要用 multirow宏包
1 t) r/ f9 W7 y6 n2 s\multirow{<行数>}{<宽度>}{<内容>}:内容达到指定宽度后自动换行; z( V5 q  F9 ?/ t' p
\multirow{<行数>}*{<内容>}:单元格的宽度即为输入内容的宽度' P# X9 |; Q# e8 ^$ d" a

, s% X+ G: k1 I0 y1 k基础模板:. _9 E: }  p8 s" K. P+ N: v  ^4 E) I  R2 R
%导言区   \usepackage{multirow}6 ^0 d. y) l8 b9 t; N+ w1 a7 U9 R+ |
         \begin{tabular}{ | c | r | r | }$ g/ ^% P" C) I8 [! p
                \hline
' y( X, I: o+ `0 X                \multirow{2}*{姓名}&
: F8 \/ t" t6 D) R; j                \multicolumn{2}{  c | }{成绩} \\+ q( y. X9 Z, J! p. T
                \cline {2-3}
* k' L# R. @( a: Q                        & 语文 & 数学   \\  \hline
% z5 N/ d2 k- C# x7 z1 B                阿汪 & 93 &  97          \\  \hline7 _3 G" \$ E+ T$ N6 ]8 E
            %阿汪先生的博客6 a0 v1 ~! d, J; V# z& T1 T$ O
        \end{tabular}3 O# M+ ^  ^# p0 T" \
1 i" q( C/ s: l2 X1 k0 V) ~7 `4 |2 Z
四、特殊表格# b: ~4 N& w- n$ W+ b9 E" S
1、定宽表格—tabularx) {: t6 d/ K; `- @0 c; l1 G3 S) _
(1)注意点:  z4 Z" w9 s  M3 e. P, [7 A
          tabularx宏包提供tabularx环境" k9 u7 l4 S5 L- r+ ]5 m
          X为列格式说明符(列宽自动延伸),单元格内部默认左对齐,使其居中需要array宏包支持。
5 x% M7 E' ^& h, W3 u1 g2 V4 W3 \( K) \8 U8 h. ^
(2)使用示例:
4 R6 J" \. a2 S& q" Q%导言区   \usepackage{tabularx}
: \, Q: o+ G% e- g        \begin{tabularx}{400}{ | c | X | X | X | X | X |}  b/ H' U/ l+ y) A
                \hline
3 g; M' W8 d; \6 b: U7 `. Z                数字 & 1 & 2 & 3 & 4 & 5    \\  \hline: s' E9 G9 ~0 I/ X9 G' n
                汉字 & 一 & 二 & 三 & 四 & 五    \\  \hline& E4 h, ?* h* i/ S. f6 h9 D' i
                %阿汪先生的博客8 E% e+ x: s1 k9 g# u" D! |& c# ^
        \end{tabularx}) U. a8 Y( V. C5 q& l( O* J+ w
                ' N# T7 S: j: C; W
2、三线式表格—booktabs& t6 b5 y. ]7 o& g% B8 T2 j
(1)booktabs提供了如下命令:
  q  B' p: Y. }0 `9 ]* u/ t          \toprule ,画表格顶部粗线。" i2 D( [: d& T+ h! B7 ^
          \midrule,画表格中部粗线。
" Z& M# e# P; G; Q          \bottomrule,画表格底部细线。0 [. o7 @6 v4 ]9 {! l+ y2 Q: j
          \cmidrule 与 \cline命令相似。
0 m4 v; p" S5 C; k
  o1 g! A  w  M2 H* L, f8 A* k/ \% F(2)使用示例:
7 i( r  [6 m6 k7 @1 m: K%导言区  \usepackage {booktabs}
( L" k# @, L# G" F0 I" R  Z$ a        \begin {tabular}{c c c}+ ?1 p/ b! d1 \) n: S( t& J) Q! S6 U
          \toprule
5 R; j: P% i8 D" x7 m; p, H5 D          姓名 & 语文 & 数学 \\ \midrule
( R& C  U7 r" D' j. K, ^4 T/ R3 ~, E          阿汪 & 93 &97   \\ \cmidrule {2-3}
. M6 X( \! u) X3 Y1 C; R          阿喵 & 98 &92   \\ / L* g( R+ \6 [% w; a
          \bottomrule                                                        : Y, x: E6 o) D# C
          %阿汪先生的博客; J: ~2 c4 E! {& t+ l, m) t' H- A
\end{tabular}$ R) Q3 _) @3 m$ E/ }0 P9 L
( a% q/ x5 j  V0 i3 E: G  H
五、常用表格参数的设定
. B% F, b; j! H' |1、表格浮动环境
6 [* {- m( |. W- C; F控制表格(浮动)在本页中的显示位置需要table环境。1 ^& H9 h4 G, Z; `; T
位置参数有htbp四种:here 、top 、bottom 、float page。1 G, d% @7 n0 ]' }% R& E
table环境中可以通过 \caption 命令表格的标题。
8 B, U; o9 d+ O5 c$ S  K6 k
; C; i) c# r  e(1)位置参数htbp释义:, C& F8 ~6 J, M$ j
here:在输入表格的位置排版' ]. d/ |! d3 H$ e9 Y9 y
top:在输入页面的顶部排版
( B% ~8 P/ {6 t& S/ s- kbottom:在输入页面的底部排版
; T- |* N* {( N: {float page:在单独的浮动页面排版: t% |) y7 Q' H8 {5 i4 t. u1 f
(2)使用模板:6 Q! Q. {4 y1 ~( }. [
\renewcommand\tablename{表}
$ W) L2 T2 L. o! S   \begin {table}[htbp]: B- M+ X5 K: t6 X. a" t
            \centering \caption{成绩一览表}
3 ~" w  ^1 E7 v                   \begin {tabular}{c c c}
/ R8 n# i0 |: w% ^/ D                           \toprule        % G. C# N& X  C) u
                           姓名 & 语文 & 数学 \\ \midrule, ?. ?: O1 i; f: q0 f& K0 [
                           阿汪 & 93 &97   \\ \cmidrule {2-3}* K% r0 b$ c' w* i
                           阿喵 & 98 &92   \\ ! v5 d5 x2 _9 w( T7 g
                           \bottomrule
! L' H5 H( o; N' [6 D                   \end{tabular}* \+ [( G& Y+ Z8 V# v9 f/ u
                   %阿汪先生的博客
) _8 B3 l- c" _7 u: p; d   \end {table}       
1 o% X. A" P: D9 S9 \2 _; |1 V
$ h4 |6 B5 v) R! L4 c2、功能强大的tabu宏包. z% A+ o! V" s5 d5 {- U
(1)tabu宏包提供的基本表格环境1 e5 x0 F% a* k) c/ p6 C
\begin{tabu}[<垂直对齐方式>]{<tabular列格式说明>}6 l! i, l( \  q  t& B0 ^
\begin{tabu} to <尺寸>[<垂直对齐方式>]{<tabularX列格式说明>}
' _/ n, A$ F9 O$ N6 _& L\begin{tabu} spread <尺寸>[<垂直对齐方式>]{<tabularX列格式说明>}) B2 @* A" C2 p" [
, 其中**spread <尺寸>**表示:在表格的自然宽度下再增加一个<尺寸>。
7 z4 H4 M5 Q9 D, S(2)画线格式
% g0 L9 `6 Q" |, W* O/ u, m tabu环境中的画线命令:竖线|有一个可选项,可用来设置表格竖线的宽度。3 I8 W5 K1 h- l- Z
          \begin{tabu}{|[2pt]c|c|[2pt]}( _" W4 L3 I4 D9 K; r5 W& ^
          \tabucline[<尺寸>]{-}用来画横线,<尺寸>设置横线厚度,
2 M9 h, K( S0 f' }$ V! l          {-}指从本行起到本行末尾画一条横线,7 h( ~$ e& W% U8 E$ G7 t1 I$ S
          {2-}指从第二个单元格开始画线至行尾。  S& x6 A; c% l. y1 Y& c; i! Y

  Y' O$ ?0 B- B% U  X; [3 o' _(3)单独设置一行的格式+ x  H) P1 R2 B6 y& j& @, N5 k% \
          \rowfont[<对齐方式>]{<字体格式>} 可以设置一行单元格字体的格式。- V5 h0 Z: X/ I$ w. d6 G- @
使用示例:  I2 B$ `# y* q
) B+ n) n3 d# M0 w4 q$ j
\begin{tabu}{|X|X|}+ W+ ~. M6 T8 J6 q) a
        \tabucline-            %“-”表示无厚度等参数
  u, a+ J$ k6 i7 ?        \rowfont[c]{\bfseries} This & is \\ \tabucline-9 U7 p8 q# [4 h2 V! {
        for & everyone \\ \tabucline[2pt]-; f3 P, E( q4 C% M( L8 ^
        \rowfont [r]{\itshape} Mr & Wang \\ \tabucline-       
- W9 N0 ]2 t" Y& ]( H        %阿汪先生的博客
0 i( a% K, D: `* ?$ v\end{tabu}               
, [" ~& P( v- A" C% M+ P! {8 C# y! g0 h3 Y/ q! ~
(4)其他操作
$ G9 |0 y" T1 s% d! `在tabu环境中合并与tabular环境不一样,前\extrarowsep后要在\end{tabu}之前添加命令 \tabuphantomline。
$ r3 x, `8 z9 a0 y9 f% E7 X( g& @( ^\extrarowsep可以在每行垂直方向上添加额外空白,得到相同的行高。
0 y2 L0 ]" d& B使用示例:
/ c% \' z8 p( P\begin{tabu}{| X | X |} \hline
' }) g" B2 H7 \7 v- ?5 r\multicolumn 2 {|c|}{Hello}&World \\ \hline* @# ]9 P9 D8 X. W3 p% [- Z
\tabuphantomline                                                %阿汪先生的博客2 n7 G" r5 N' _, F) ~# @
\end{tabu}                                                            %表格中不能有空行
2 }: D$ U1 D! x1 [! f8 W) {! Q2 s# q4 u' ?) n/ s
————————————————
9 r0 z/ k% n0 Q4 k1 @版权声明:本文为CSDN博主「阿汪先生」的原创文章。
* q, n! Q- V4 v6 }+ M原文链接:https://blog.csdn.net/qq_43499622/article/details/96894437$ N+ [- X+ l6 `7 I% N- G( E

作者: 925865807    时间: 2020-2-16 11:27
$ ~* z/ m6 ^+ v  B* F0 ~9 k; E, P3 F
% V' J' f; W" g, u2 n+ |
8 x/ v8 w! u# D1 d. Z+ j: }
谢谢分享. i! w' z5 r4 {! D0 ~





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