数学建模社区-数学中国

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

作者: zhangtt123    时间: 2020-2-12 15:18
标题: LaTeX论文写作系列之表格插入
一、常用的表格宏包4 i/ t3 w9 Y* L  C2 r6 {+ i9 ?
        dcolumn                                对齐小数点
% K2 e& _- P8 o  [1 k9 r* j  O        makecell                        单独控制单元格格式
, x, H! b1 N2 \! M, Y' C1 n6 ~        diagbox                                对表格进行斜线分割. L  u# f: N# a- j# h
*        longtable                        长表格,可用于处理分页表格(表格超过一页时使用)
4 B# D9 }6 Z: J! ?! s        ltxtable                        longtable和tabularx的结合体1 {! D% M" @$ \* @" S4 {5 R
        array                                各个表格宏包都依赖于它  k2 j4 z. \! u5 L
*        tabu                                命令简单、功能强大  o' {% L* h3 G% E

! x2 w! V# z  @* X* X6 Q二、输入格式及说明
* d# t& O6 M2 n+ G7 c1、一般输入格式
' u5 q! ?1 M: ]- ~6 `8 ~\begin{tabular}[<垂直对齐方式>]{<列格式说明>}
) w( s; N7 S! Y5 T' _5 x        &        &        &        &        \\, T0 l8 u' E) d& ^, u
\end{tabular}
6 ^; N5 j; u$ E* i- y  ]6 V7 W: F- X, L
$ K( d6 B7 ]% P+ [  X' M! ^9 X2、一些说明
% O% I7 \1 ^" p; }(1)特殊符号:
& R5 z7 G3 h' r1 ~7 M% R# A           \\          表示换行% V8 \+ y! t  V! n7 s% ~+ B0 S9 h
           &   表示分隔单元格
, `, i5 K, g7 Q: B4 V4 ^/ i$ ~7 [5 @  X& r
(2)垂直对齐方式:) C5 t- E' A8 ~; |# o
           t  表示按表格顶部对齐+ P: a0 G4 v* E* _0 V) g$ `* L1 H
           b   表示按表格底部对齐% Q( K; D% }3 y$ Z2 }4 {2 L+ M
          默认为:垂直居中,非t和b的参数都看作居中) v0 g1 `: @* W
3 B9 ?% v5 w$ [) ]: l
(3)列格式:
0 U% I6 I0 z$ Z6 i           l  表示列左齐 (小写的 L)
( a2 a1 P; x/ v! P; S           c  表示列居中对齐/ y* Z) s6 Q$ o) _; M  P8 H
           r  表示列右对齐- t: K1 q* {) e! ?
4 i/ O2 b1 k4 s+ y( P7 D
三、单元格的合并
! t/ C6 e( A  s/ ?/ N* q( l5 D1、行内单元格合并命令$ Q: O+ Y/ H5 C/ D+ R
\multicolumn{<项数>}{<新列格式>}{<内容>}     %<内容>为合并后的新内容                                                    * I7 B' T3 L5 M6 q3 H
' r* b+ t# b' Z9 C& o
(1)基础模板:0 F6 B+ M+ m6 f3 w1 w: I! o- A4 t
            \begin{tabular}{ | c | c | }3 b" I7 r3 w, M0 V1 c- A
                   \hline, _6 H( \8 X+ l9 \
                   \multicolumn{2}{ | c | }{成绩} \\
. N  i' n* ?% P$ j                   \hline
- ~" p, Y$ X+ l  i* D                   语文 & 数学   \\  \hline
( k* j! t" t' `& ?; C/ b                   100 &  100          \\  \hline& H2 X/ r0 d+ \1 U# q1 y
                   %阿汪先生的博客5 x+ s2 L8 f# W: H/ c( X
           \end{tabular}
1 \5 o- [( b. x3 t5 s5 a' w' \                    
6 q: f6 L$ W, O/ s2 v" u' P(2)进阶模板:' G5 E6 I$ e8 ]8 Y2 R) I5 r& B8 u0 k
         \begin{tabular}{ | c | r | r | }* m8 m, I' i& K
                \hline
1 J7 n$ Y- C0 C. W" g7 E+ s5 ?                 &\multicolumn{2}{  c | }{成绩} \\5 ]/ k; q; N2 f5 f9 \
                \cline {2-3}6 x! e+ B) v/ V( F  d) ?- [2 S
                姓名 & 语文 & 数学   \\  \hline1 L0 a/ x) a7 |1 V
                阿汪 & 93 &  97          \\  \hline       
. P6 Q2 V) {6 D- s                 %阿汪先生的博客4 E% i( p& ~* y. u. p- }. p; D- v
        \end{tabular}0 @$ {8 T( T: ]6 C9 q4 u( G+ c
                          
7 [8 D/ a+ d' D& F/ i  u  e0 Y语句技巧:画水平表格线需要指定线的起始和终止列号。
- Y6 S* z/ t6 g! ]) k用 \cline {<起始位置> - <终止位置>} ,如\cline{2-3} 。
1 V0 v2 Z+ X' I5 _+ T) n9 J6 ^3 ^4 t# c7 |
2、列内单元格合并命令0 d& K8 x/ p* ]; e$ m/ r! e
需要用 multirow宏包
* w8 l' X5 C/ `: P: y6 T\multirow{<行数>}{<宽度>}{<内容>}:内容达到指定宽度后自动换行
: Q" w4 n2 v0 z4 k0 Y& H) t3 Q6 \\multirow{<行数>}*{<内容>}:单元格的宽度即为输入内容的宽度- |* o  U$ a  i9 m

' m  _+ q7 A0 z, D基础模板:
6 `% h7 ^9 o: X3 d/ ^%导言区   \usepackage{multirow}
: m) m; p: h' n5 n, S8 A         \begin{tabular}{ | c | r | r | }+ n7 \0 p- o- K6 p0 q% y) B9 @
                \hline
# \' P7 ?+ ^% A" S                \multirow{2}*{姓名}&
# h- l* {# f' q1 P& T                \multicolumn{2}{  c | }{成绩} \\5 A2 N7 k, r+ N( h
                \cline {2-3}
6 x7 @, d/ m% g                        & 语文 & 数学   \\  \hline' ]9 N$ ?0 A# J* R
                阿汪 & 93 &  97          \\  \hline
& c( S) e! Z( j8 S+ c2 P            %阿汪先生的博客
# {# z& n/ |# Q: n0 i& l        \end{tabular}
0 q3 D6 z& ]* _7 Q- z# p: H; `  P/ I6 X) |  j9 G  @
四、特殊表格' L$ l& j- J5 n% ]- p* d
1、定宽表格—tabularx
3 w4 o! G$ `* z0 E  Y" Y) u+ _(1)注意点:
& P# g% V2 \( S8 Y! Y+ E          tabularx宏包提供tabularx环境$ Y$ ^7 y& \, J/ m% v6 D: F
          X为列格式说明符(列宽自动延伸),单元格内部默认左对齐,使其居中需要array宏包支持。9 W  K( s2 ?' i. N- s( S9 h, h

3 X9 \( w, P$ T; [6 u. K# K(2)使用示例:4 S4 z6 Q$ [/ x. b' E# s% P- y5 t, f# S2 J
%导言区   \usepackage{tabularx}
5 ]; @! W, l- C- y: c% ]2 s0 K        \begin{tabularx}{400}{ | c | X | X | X | X | X |}
( M" m6 H+ Z1 Z: c+ G% P& [                \hline
$ q! o; E/ j, F( P                数字 & 1 & 2 & 3 & 4 & 5    \\  \hline
/ J* |) s% Y) R; w7 A                汉字 & 一 & 二 & 三 & 四 & 五    \\  \hline
% B( P9 y; r8 m. S                %阿汪先生的博客
! {7 ^8 C! a4 Z* w$ V6 ^$ `        \end{tabularx}
; Q5 c' Y, V9 @* s' i5 M+ ^                
7 w& l2 c0 y* ?' T1 s, q( C+ l3 M6 {2、三线式表格—booktabs
! g" R  m7 Y, t+ f: `- ?) [( Z(1)booktabs提供了如下命令:. \* ?. o, E3 K4 d$ D' c! Q
          \toprule ,画表格顶部粗线。6 o& P, @7 P+ ]* F$ C* J  x
          \midrule,画表格中部粗线。
- w7 [! ?7 H, I8 h* ?9 X          \bottomrule,画表格底部细线。
& w6 d& r% t, x; S" Z/ e# X          \cmidrule 与 \cline命令相似。
5 m7 B8 i3 H& q% `1 p* h1 ^
5 T& a4 n/ }' O" N" y# Y/ S(2)使用示例:* Z. N# c3 p8 D9 U* H
%导言区  \usepackage {booktabs}
$ \' |0 ]7 H0 E3 p1 s/ B$ q        \begin {tabular}{c c c}/ i/ U: B) O- `
          \toprule
3 K: p7 ~  u: e0 v% y3 B. V' Z: J: O" W9 s          姓名 & 语文 & 数学 \\ \midrule
1 B# |4 l7 g7 \5 c! P1 d          阿汪 & 93 &97   \\ \cmidrule {2-3}
6 A& u  S' X2 F/ Y5 n2 G, z          阿喵 & 98 &92   \\
, E% J4 L$ U( G5 m) |          \bottomrule                                                       
/ D) X( d7 i, z; t+ s* l; Q          %阿汪先生的博客/ \! i7 q1 @, Y/ S( ?, |
\end{tabular}
/ |+ a- [0 k( R# s% |5 M% q1 C- C7 G) R1 W% q
五、常用表格参数的设定
' d/ y! g+ R% F& y8 p1、表格浮动环境8 A/ G4 Y: g- C7 x, t
控制表格(浮动)在本页中的显示位置需要table环境。
7 _8 L5 p% ]# O, T位置参数有htbp四种:here 、top 、bottom 、float page。3 ~. B# M0 L  q  J1 `9 [
table环境中可以通过 \caption 命令表格的标题。" P4 ^/ ^$ ~1 O$ W; r
% U# f4 S  X  H% j' J
(1)位置参数htbp释义:1 X) v, ]1 @: R+ M* x( v
here:在输入表格的位置排版, D$ a: W" }8 U) ^
top:在输入页面的顶部排版
6 c4 z( |. X" ibottom:在输入页面的底部排版
' f9 E4 e: D, @1 H( lfloat page:在单独的浮动页面排版0 V$ j9 ?) e2 A: `
(2)使用模板:
! x# ?, T( ?/ N% W$ Q7 ^\renewcommand\tablename{表}+ f4 R+ {" o2 \# @4 Y  K
   \begin {table}[htbp]
& m6 a1 |6 l! _6 U            \centering \caption{成绩一览表}
! f; T, ~$ e$ {6 B                   \begin {tabular}{c c c}$ {! A4 U7 N4 F  ^: `$ o. j. S
                           \toprule        " @! r2 V& ?4 \; ^. n( }( W7 |
                           姓名 & 语文 & 数学 \\ \midrule- m+ S( J1 q, T% z/ E+ I/ f/ ?
                           阿汪 & 93 &97   \\ \cmidrule {2-3}' B; r) O: p" Q0 Q# \4 G
                           阿喵 & 98 &92   \\
/ c' w1 f( o. v1 m! t1 \4 t0 I, `, ^                           \bottomrule! t6 Z5 |% z  J3 m0 J: x
                   \end{tabular}8 R$ A  v# L+ c$ Q! F  g" i
                   %阿汪先生的博客" J! x2 Y! Z# r6 m: q
   \end {table}        0 J. I# S7 k# p( j  ~" A

4 t6 w! A, O5 X) w2、功能强大的tabu宏包
- X, {# y% F7 B% s3 y(1)tabu宏包提供的基本表格环境
3 J0 ^7 v; q- q( m$ T. X) a& `) V! y\begin{tabu}[<垂直对齐方式>]{<tabular列格式说明>}
% o4 M; A! P1 D4 O( b\begin{tabu} to <尺寸>[<垂直对齐方式>]{<tabularX列格式说明>}
# [6 W" F# ?: p* e\begin{tabu} spread <尺寸>[<垂直对齐方式>]{<tabularX列格式说明>}6 \8 [, R% a* ]
, 其中**spread <尺寸>**表示:在表格的自然宽度下再增加一个<尺寸>。
0 s9 @, C/ I" V% b4 x/ K(2)画线格式2 Z1 j- J, c' d6 {: l" v- s0 w
 tabu环境中的画线命令:竖线|有一个可选项,可用来设置表格竖线的宽度。5 D0 f/ u+ D- x  h# F  {
          \begin{tabu}{|[2pt]c|c|[2pt]}& v* W2 N& p( u
          \tabucline[<尺寸>]{-}用来画横线,<尺寸>设置横线厚度,
1 f: ~; w9 I4 s$ @/ r, S1 I( L          {-}指从本行起到本行末尾画一条横线,0 F0 x( d7 U" R3 O8 k, Y! I
          {2-}指从第二个单元格开始画线至行尾。
: F# j3 d& K$ b5 g
1 Q; Y  T( ?& I' W  y$ @! @(3)单独设置一行的格式
- N; E- p; z, O( i          \rowfont[<对齐方式>]{<字体格式>} 可以设置一行单元格字体的格式。- a% G! [* Z2 L! b) p" M* n
使用示例:
* k5 ^* S' s0 w- k& W4 ~# h! R8 |, e6 V
\begin{tabu}{|X|X|}6 U% q8 \+ g  j& p
        \tabucline-            %“-”表示无厚度等参数+ F0 T6 G! x, j7 h; r2 p! c6 `7 V  b
        \rowfont[c]{\bfseries} This & is \\ \tabucline-/ H+ R6 _' U' A5 t% ?
        for & everyone \\ \tabucline[2pt]-
1 P$ _, D) V$ ?, Q        \rowfont [r]{\itshape} Mr & Wang \\ \tabucline-        + J9 i4 [. m, p: `6 C# c
        %阿汪先生的博客3 @( b- _: e$ q
\end{tabu}                  ?) f1 j! D9 f- H. S. j9 O, F
* w# `+ @" h+ t& Y2 i
(4)其他操作4 {, f. U% J, l& K$ ?
在tabu环境中合并与tabular环境不一样,前\extrarowsep后要在\end{tabu}之前添加命令 \tabuphantomline。1 m& K% W( ]( T8 r/ a; J$ X6 P3 V8 V
\extrarowsep可以在每行垂直方向上添加额外空白,得到相同的行高。
* E" A/ t: k/ M! l; d. b使用示例:# n# C6 _  Y: h& I1 _. F
\begin{tabu}{| X | X |} \hline8 L5 _: D5 }9 p1 }8 G4 Q
\multicolumn 2 {|c|}{Hello}&World \\ \hline
+ T  O, {) z1 d; B\tabuphantomline                                                %阿汪先生的博客8 V6 T1 P. h4 J9 S: o( ~
\end{tabu}                                                            %表格中不能有空行3 m3 W$ V, p/ p$ f9 _/ {

4 b5 Z& _- `- y+ c% e# o' |/ L————————————————
. r; F# S  @/ V# u/ R+ D% R版权声明:本文为CSDN博主「阿汪先生」的原创文章。
% R) U1 {4 o$ o- ]  i" b) A原文链接:https://blog.csdn.net/qq_43499622/article/details/96894437) C& ]7 g& ^! C- L6 l  ]5 f( h  g

作者: 925865807    时间: 2020-2-16 11:27

5 ]/ k2 g/ Q. ]/ T8 V4 w( z. q7 F) L$ X6 a
; i& |( h, E" [/ E1 d; `
谢谢分享1 F/ x6 K+ u- v( p





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