数学建模社区-数学中国

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

作者: zhangtt123    时间: 2020-2-12 15:18
标题: LaTeX论文写作系列之表格插入
一、常用的表格宏包
6 @+ V: B& S0 T' Y5 ~/ e% c  q/ _        dcolumn                                对齐小数点
8 m4 S) G1 a! B+ b7 O9 I7 \/ C        makecell                        单独控制单元格格式
" A1 @" @# l9 E. d& f4 L8 L        diagbox                                对表格进行斜线分割% ?, T( ^+ k! Z9 T) b5 K
*        longtable                        长表格,可用于处理分页表格(表格超过一页时使用)/ O6 ]9 ^, z6 p6 u; K
        ltxtable                        longtable和tabularx的结合体
2 a6 s' _  k, W: S8 H' {; B: Y6 y        array                                各个表格宏包都依赖于它  N: x& E8 j6 ]; z; c9 Q" Y& X1 s
*        tabu                                命令简单、功能强大
. }: I* k7 y- @( S) M2 E, m( x1 w9 ^! Q% t4 X5 G/ T
二、输入格式及说明
& W, ?- d# T+ x3 r: Y. p3 v7 I1、一般输入格式
' i. F5 m2 N" n6 ?  \\begin{tabular}[<垂直对齐方式>]{<列格式说明>}
0 p- v) @; I6 D8 R$ x. M+ Q        &        &        &        &        \\, @" K! C0 d5 l# F, N$ f
\end{tabular}
$ ?% ^: {1 N. F
! s& J9 P; `9 A" D* ]3 L- T2、一些说明
, C% ?" w6 [) W, t2 I, T& \0 C(1)特殊符号:
: _3 q, h2 N5 x           \\          表示换行$ m' P, m" l: l4 A, ]' m
           &   表示分隔单元格" H) [. J) J: \* ^% ~: c

/ r/ s9 {& i; d(2)垂直对齐方式:
: e8 d# C) c4 [& z+ U0 j, h           t  表示按表格顶部对齐! g# j  q* C; _& r2 y% x( f
           b   表示按表格底部对齐0 I) o; E+ s0 {& J) f; G
          默认为:垂直居中,非t和b的参数都看作居中% V; M# y1 U4 s; d+ q; ~
: Q  l4 i; p; r' O+ T" M
(3)列格式:
1 l$ k' N2 Q, o7 |' B! r. z, h           l  表示列左齐 (小写的 L)
9 {6 J1 G4 M! A* h7 l  M) n+ L) Q5 r& ?           c  表示列居中对齐2 r0 V. [2 K; Y8 H3 U1 n
           r  表示列右对齐9 V9 h* ~/ f' p

+ V7 Z- D: E- Y: c7 W6 Q6 T# Y) C三、单元格的合并
. m8 n6 A  [( A1、行内单元格合并命令' }+ M+ z7 j+ Y2 l6 c8 L0 l
\multicolumn{<项数>}{<新列格式>}{<内容>}     %<内容>为合并后的新内容                                                    " V) r9 L" d1 p, l9 \7 w9 a
2 j- [) `* l/ G) Q, P* u, E
(1)基础模板:
1 a3 h  ~# {4 z& F- f; a            \begin{tabular}{ | c | c | }
4 e* z; A: h) [( Y$ Q                   \hline
) O$ m7 w. y; A: d  ~+ t# l                   \multicolumn{2}{ | c | }{成绩} \\
( u  |" t5 s+ u) _5 n0 o                   \hline2 O, a- z' @+ {* j
                   语文 & 数学   \\  \hline! A8 d( y. i$ g8 n# O
                   100 &  100          \\  \hline
& o) P* K/ q' c, f7 p0 Z  m                   %阿汪先生的博客+ ]' ]0 V* B7 h+ w; n
           \end{tabular}
- Y! @2 c) f! B9 X, d                    1 E5 n% p; g7 C) x& E- E2 R
(2)进阶模板:
- ]) ^# T% {, Y# \7 @" |          \begin{tabular}{ | c | r | r | }
/ L7 H5 G6 W8 ^9 h! u! a7 B- e& m                 \hline
6 }2 {/ m: h) x6 T& R$ {                 &\multicolumn{2}{  c | }{成绩} \\
. E' n* i# }, b" y/ d/ F1 b- h                 \cline {2-3}* G" h* C; h: H% g4 g
                姓名 & 语文 & 数学   \\  \hline
- R3 }4 f# c" q/ Y( A                 阿汪 & 93 &  97          \\  \hline        3 C7 c* L. H7 u( [% f6 Z, i6 J
                %阿汪先生的博客
3 F; B+ i/ U$ ?7 `* U5 t& y* Y         \end{tabular}
5 Y. b( d) P* y5 N2 }                          
4 R9 V% H+ X+ R  \  d3 s5 e5 Z语句技巧:画水平表格线需要指定线的起始和终止列号。
' |/ s$ G. ]* ~& p0 U用 \cline {<起始位置> - <终止位置>} ,如\cline{2-3} 。
' e& {# G( O3 _$ `8 R7 d5 T) X( ^8 t. @$ f) D7 n6 w4 `/ k
2、列内单元格合并命令1 [, m, F3 F! X, h/ Z" G# g
需要用 multirow宏包
2 _$ _: O$ Z+ ~# }+ U$ ]( n\multirow{<行数>}{<宽度>}{<内容>}:内容达到指定宽度后自动换行+ Q% |' e9 {8 b& h2 P
\multirow{<行数>}*{<内容>}:单元格的宽度即为输入内容的宽度
' \$ A) F1 `8 b; [6 T0 f
, ~; N. h" Q- \2 I4 u& q. h基础模板:: U2 A( R4 T7 K& T# K" E8 b
%导言区   \usepackage{multirow}
* T! L! t" k* E* J; K         \begin{tabular}{ | c | r | r | }( X. V" i# z) O" i
                \hline
- R! h  [7 U8 u# v0 K* e                \multirow{2}*{姓名}&
0 _* a4 ~1 I2 \; ~3 w                \multicolumn{2}{  c | }{成绩} \\
& F* `3 s; y+ b3 W3 ~- ?; R                \cline {2-3}9 r' I! l6 e- o! ~' I" a
                        & 语文 & 数学   \\  \hline( M# x# V: i2 G* u: w% y
                阿汪 & 93 &  97          \\  \hline$ w, H" N1 s9 J  l- x( {
            %阿汪先生的博客
2 Z8 W% e" h- e, ~) {: o7 a        \end{tabular}
  @" g* R* W0 L/ z: L/ S" w& b1 ?4 h$ I/ q& ~. [
四、特殊表格
7 |& z) |9 {, e  w0 B* m) {1、定宽表格—tabularx7 W3 r: n* B  M4 S$ _% K
(1)注意点:
/ D% j% P6 y4 Z# u3 v$ _" H          tabularx宏包提供tabularx环境7 {. C* t8 g4 X3 i- Q
          X为列格式说明符(列宽自动延伸),单元格内部默认左对齐,使其居中需要array宏包支持。. I5 ~2 o6 ^4 _% D& j
0 X9 P2 l% w# j7 q, L1 E+ K4 m
(2)使用示例:4 K2 z0 W+ ?# r+ U9 S) |
%导言区   \usepackage{tabularx}7 l8 l4 F: u+ ~$ F
        \begin{tabularx}{400}{ | c | X | X | X | X | X |}5 Y$ \4 B! \8 d9 T0 j3 }
                \hline
3 w3 V3 n! V4 P6 N& z                数字 & 1 & 2 & 3 & 4 & 5    \\  \hline6 t5 d: B% I8 I
                汉字 & 一 & 二 & 三 & 四 & 五    \\  \hline! u5 o& a( ~8 V* k' l
                %阿汪先生的博客! x0 `6 N/ }& F" F) S3 E9 Y- V7 S
        \end{tabularx}
- _6 M$ d! J3 ?, S; }$ I                
4 R+ z+ r& O: t3 r/ d+ Q6 k6 N3 L) w2、三线式表格—booktabs5 J4 e  y/ f2 g0 Q0 i" y
(1)booktabs提供了如下命令:8 u6 U7 ]/ i. b8 [. I4 a
          \toprule ,画表格顶部粗线。
( l# G2 d1 n/ a% N5 D- X6 m  _2 p2 o          \midrule,画表格中部粗线。
9 a6 d  Q8 _( P0 A/ Q1 N          \bottomrule,画表格底部细线。( \; Y: R) d" @7 h/ r8 ]: v4 v
          \cmidrule 与 \cline命令相似。' [2 \' f+ {, l2 P: x

  h3 t# D7 [& C& y2 x$ R(2)使用示例:2 Y7 n# [2 M1 X9 Z
%导言区  \usepackage {booktabs}
2 x- a9 o1 f. ]& L        \begin {tabular}{c c c}0 m" A0 v+ F6 u2 ^: x- x
          \toprule: S  y6 E. `' A8 N& J8 n: x. ^
          姓名 & 语文 & 数学 \\ \midrule
1 o) W' u7 {( x, \+ O          阿汪 & 93 &97   \\ \cmidrule {2-3}
: y3 e: ]* T" s" X) F, M9 ]          阿喵 & 98 &92   \\
1 d7 G) B$ g/ y: ?9 t          \bottomrule                                                       
. K+ K; }* ]1 @9 P- g          %阿汪先生的博客
' d+ l" o  M: A" D\end{tabular}
& n' P  P. D" o- b4 Q
- }$ Q! E! S% T3 Y% ~$ M3 u五、常用表格参数的设定5 _+ o. }% ^2 e
1、表格浮动环境$ K1 t) K5 [) O& I
控制表格(浮动)在本页中的显示位置需要table环境。
/ y% q1 k! w+ x: a6 k  f位置参数有htbp四种:here 、top 、bottom 、float page。1 J/ K! v; Z8 Z4 j
table环境中可以通过 \caption 命令表格的标题。
2 |2 I7 T8 ^+ ^9 ?7 Q: F, h, S8 N! j8 u) e
(1)位置参数htbp释义:
& t6 s) o! R& J: G' ^' U4 V9 phere:在输入表格的位置排版, e3 l+ F& ?: U+ U  D/ T3 a$ [
top:在输入页面的顶部排版: }, d4 T* A9 Z) H$ l$ F: [
bottom:在输入页面的底部排版; W8 E: e$ V5 f9 u
float page:在单独的浮动页面排版
/ l! W0 T: ?, A(2)使用模板:
- }, b+ s3 A, {1 Z! M# U\renewcommand\tablename{表}7 b+ d# B  S: E/ f0 q' ]
   \begin {table}[htbp]; Y" p" b4 j" G2 v& R/ A
            \centering \caption{成绩一览表}1 H' p7 C) y' [  n0 A$ n! g
                   \begin {tabular}{c c c}& G2 n& }2 `5 G
                           \toprule       
4 k3 G/ c# B1 o) R0 r+ [' J% s                           姓名 & 语文 & 数学 \\ \midrule
- J: ^- k/ h% j; }% p% l                           阿汪 & 93 &97   \\ \cmidrule {2-3}
. O, J- k/ l8 h                           阿喵 & 98 &92   \\ % ]* E5 S- I5 u: e2 J
                           \bottomrule
/ O# ~2 Z$ N: g% r3 U# H+ [                   \end{tabular}
3 e; x' \& L5 `3 H+ n! P                   %阿汪先生的博客$ a, o8 @$ W% R2 _2 B( E
   \end {table}       
& ^4 [6 f# h% W7 I0 T$ \2 _
0 {3 B! d1 D  ~3 N* G$ n5 d2、功能强大的tabu宏包
( S- K7 m  Q/ ?9 q" F- L- P(1)tabu宏包提供的基本表格环境
8 V5 n" n% j) s$ u$ O, ^\begin{tabu}[<垂直对齐方式>]{<tabular列格式说明>}5 o% F/ d0 A* r; I
\begin{tabu} to <尺寸>[<垂直对齐方式>]{<tabularX列格式说明>}. N. m) z7 c/ M
\begin{tabu} spread <尺寸>[<垂直对齐方式>]{<tabularX列格式说明>}) a# l  G- V4 w; m
, 其中**spread <尺寸>**表示:在表格的自然宽度下再增加一个<尺寸>。) H, o* P! _4 B2 ^0 w
(2)画线格式
4 F5 U7 r" U4 z& P% r" Q3 [% a! T tabu环境中的画线命令:竖线|有一个可选项,可用来设置表格竖线的宽度。/ s5 j$ x& p1 X) g5 I
          \begin{tabu}{|[2pt]c|c|[2pt]}* C1 B# L% [  t( B4 j4 q: q
          \tabucline[<尺寸>]{-}用来画横线,<尺寸>设置横线厚度,/ A: M% A& y* Q4 h9 X0 k
          {-}指从本行起到本行末尾画一条横线,3 [% l. M' N; O! Q6 {
          {2-}指从第二个单元格开始画线至行尾。$ |! r4 r# V7 p

- B% ~+ a- L3 ]6 e, v(3)单独设置一行的格式
" y+ L# k. g( l+ M          \rowfont[<对齐方式>]{<字体格式>} 可以设置一行单元格字体的格式。! x7 K+ }9 Y) Q6 {" y
使用示例:
" n# d, g8 g+ k: |5 V2 }: T) `, E5 x# {) h, V$ k  A3 `
\begin{tabu}{|X|X|}
# r+ x& w' g; W$ L( v3 {2 S        \tabucline-            %“-”表示无厚度等参数
" ]: F3 h9 O/ K  p1 h' h        \rowfont[c]{\bfseries} This & is \\ \tabucline-
7 H3 c& E; a, y8 O        for & everyone \\ \tabucline[2pt]-2 V4 u# U# ~4 F1 I" @9 o2 c
        \rowfont [r]{\itshape} Mr & Wang \\ \tabucline-       
8 t/ G8 C+ \& m        %阿汪先生的博客
; z  k' I3 V# s\end{tabu}                - i( c9 @: t3 l7 C) L/ d
. `9 L" c9 g+ t: ?% D8 r
(4)其他操作
! U' v, B# t) k5 T. d' f在tabu环境中合并与tabular环境不一样,前\extrarowsep后要在\end{tabu}之前添加命令 \tabuphantomline。4 m* s3 i0 c8 l# l
\extrarowsep可以在每行垂直方向上添加额外空白,得到相同的行高。
- G! s+ p& ~& w, h使用示例:
+ \7 Z& ?: ~. ?8 r9 D\begin{tabu}{| X | X |} \hline
; Y# P* H4 r6 E6 A- y( g  o\multicolumn 2 {|c|}{Hello}&World \\ \hline8 E0 i; ^. d2 {: s, p$ [( a
\tabuphantomline                                                %阿汪先生的博客
' y/ V: g1 p. E( ~1 W. m2 Q/ w( ]\end{tabu}                                                            %表格中不能有空行8 U0 b; K$ W5 d+ g
7 D( H/ m6 q; E
————————————————. x! }9 p3 E  T+ Q+ L% {8 U
版权声明:本文为CSDN博主「阿汪先生」的原创文章。
" j9 k% [# Q$ i9 ?* ]3 z原文链接:https://blog.csdn.net/qq_43499622/article/details/96894437
# R+ c$ k/ a( A! L
作者: 925865807    时间: 2020-2-16 11:27
. Y& W/ T4 M% w/ k( B
8 v& V& r. E& @% B: I3 j
/ }. D$ M* Q- O) k4 {( ^+ w  ?
谢谢分享1 k7 m& J) a% C# }/ L





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