数学建模社区-数学中国

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

作者: zhangtt123    时间: 2020-2-12 15:18
标题: LaTeX论文写作系列之表格插入
一、常用的表格宏包' c1 g; {! M0 Q. q! H
        dcolumn                                对齐小数点
- \" j% U+ `" {$ |; U+ w        makecell                        单独控制单元格格式
5 r  v5 a9 L: c9 F        diagbox                                对表格进行斜线分割5 Y4 Q) T& W3 U# g) F
*        longtable                        长表格,可用于处理分页表格(表格超过一页时使用)$ v: h$ W! I1 Y! y4 G: j
        ltxtable                        longtable和tabularx的结合体
# Y; z" v  U- L9 I- i9 x; V9 _        array                                各个表格宏包都依赖于它
9 [3 y0 i5 q3 _2 b2 \2 E*        tabu                                命令简单、功能强大- ]. H) Z. |8 b4 d5 m
) W& Z2 j$ M% B: p/ |( I. V, q2 w: p
二、输入格式及说明
7 V4 c) |6 ]6 S, I- ^; r1、一般输入格式
/ {' B, V) y+ B. \5 z\begin{tabular}[<垂直对齐方式>]{<列格式说明>}
  w& Z" s, }% b* A3 d: y! y        &        &        &        &        \\
3 R8 f% D' w8 f3 e6 c# I  U* B& w8 p \end{tabular}
+ u  x( X7 s0 t) y; B! ~. a" ?* m" }
6 [+ @* J" ?; f- e, ~& {* w3 n2 H7 d2、一些说明
4 B  s1 [/ B5 z  y* |0 ?, w(1)特殊符号:
/ Q' ^9 G2 c1 h6 _7 K           \\          表示换行
) R, c0 ?9 x  w; K2 h           &   表示分隔单元格
4 W; w* @) E. x  T6 g1 J
0 h" E/ S- Q$ c/ e(2)垂直对齐方式:
  [8 y2 y3 S* u$ A2 ]2 a  U7 q% h           t  表示按表格顶部对齐
' L9 ^( @( ?6 Y" m9 a( w, }           b   表示按表格底部对齐
* {2 J+ N- N3 D  h2 R' d0 S8 J          默认为:垂直居中,非t和b的参数都看作居中
9 O; b# _0 s8 n& I7 u
4 o6 n- f; @6 B( c8 g" [1 _- ^% S(3)列格式:+ A# \9 v. X1 W4 z  c7 a
           l  表示列左齐 (小写的 L)
; t! w9 _4 |2 ^: G& a1 K" U0 [           c  表示列居中对齐
/ D+ D9 j' ~( ?& N           r  表示列右对齐& D4 {$ I8 L8 p$ O3 Z* Z$ w
* S7 l: T3 A2 z" o! F- R- @8 n
三、单元格的合并
- y- R8 w' Z" t# r" E1、行内单元格合并命令
) D" \+ u' a" L& C( h\multicolumn{<项数>}{<新列格式>}{<内容>}     %<内容>为合并后的新内容                                                    
! S8 n( Q8 y0 ?4 B' H7 Y1 P
9 ?. B/ W5 {2 }& S' Q+ @  o: y/ n+ b, G(1)基础模板:
1 e1 v  B* Y9 X+ w            \begin{tabular}{ | c | c | }! M: e9 u) [7 `* v- K, g
                   \hline3 R! J  j# ]$ G
                   \multicolumn{2}{ | c | }{成绩} \\
& J, M/ i9 [( j; r                   \hline' C4 Q. O6 s3 o+ K5 L& @" k
                   语文 & 数学   \\  \hline4 {: X* r6 y+ X" s- z% H: f  F! }
                   100 &  100          \\  \hline
* m" ^! W9 I6 B8 B6 ?& P                   %阿汪先生的博客& O8 D: K# d* u3 B  ~6 l2 l
           \end{tabular}
2 x( w$ |( J7 q# H5 `2 v5 J1 [                    
$ I6 x' e1 |! J9 h; i(2)进阶模板:
* p$ U+ P5 E4 f3 W8 t( w; c          \begin{tabular}{ | c | r | r | }3 `" Y2 j! B3 E" I, S
                \hline  r+ D( {. g3 j: Q& D
                &\multicolumn{2}{  c | }{成绩} \\
" X4 P+ m6 y' j( A3 r$ L                 \cline {2-3}
( `3 p8 _0 Z! i' j: n                 姓名 & 语文 & 数学   \\  \hline
2 x7 X' S. u! V- {                 阿汪 & 93 &  97          \\  \hline        5 y, B5 s4 a1 x: F8 U% h
                %阿汪先生的博客
8 l* t" D- z  C* @         \end{tabular}0 \! M/ t/ O- M; D- @  m  }
                          " _$ B) w0 n4 D" {4 ?
语句技巧:画水平表格线需要指定线的起始和终止列号。
' F/ A( f- V- e2 V用 \cline {<起始位置> - <终止位置>} ,如\cline{2-3} 。
2 m: ~. a  e% b/ h4 N
& U! _3 u  ?6 d/ t2、列内单元格合并命令) b+ @4 w! B  E) |2 x+ d
需要用 multirow宏包
" a5 }; Q/ W$ h" `& [\multirow{<行数>}{<宽度>}{<内容>}:内容达到指定宽度后自动换行, I& h$ N! K5 H3 P
\multirow{<行数>}*{<内容>}:单元格的宽度即为输入内容的宽度
1 G( [( `+ J; D6 r+ \( s, b% k0 z  W' e
基础模板:1 e3 a+ {' g* I9 O( H2 h0 O/ t+ l' b( P1 s
%导言区   \usepackage{multirow}
, b( W1 D2 m0 m$ ]% v/ [2 R5 E+ F         \begin{tabular}{ | c | r | r | }, _7 A& Y6 l8 S
                \hline( b1 I3 B/ y# c$ u
                \multirow{2}*{姓名}&
6 S$ m4 z. Q1 |% u# a+ C                \multicolumn{2}{  c | }{成绩} \\4 t$ o$ w' v2 x2 {/ {
                \cline {2-3}
8 z/ v" V8 ]$ b, X/ H+ v# h, k                        & 语文 & 数学   \\  \hline  k. l4 k; m5 g1 {" B
                阿汪 & 93 &  97          \\  \hline
+ z) A! n. T8 o2 s3 @( Y            %阿汪先生的博客8 r+ P. T. \- G- W/ `& R6 m  C  g
        \end{tabular}7 q! n- y+ @% ^! o/ O! R+ s
$ o4 m& r) h& J& w3 z$ Z) y! n! |
四、特殊表格3 Y+ ?5 G) r: ]  S
1、定宽表格—tabularx: U3 `! g8 n9 D
(1)注意点:  z: g0 l" E# ?$ f
          tabularx宏包提供tabularx环境5 p1 Y8 _5 T$ e
          X为列格式说明符(列宽自动延伸),单元格内部默认左对齐,使其居中需要array宏包支持。
, \3 @- f# q; l: n2 P5 a9 A, N
$ N# p' |+ }  }( F  ?(2)使用示例:' ^9 F* a, N8 i
%导言区   \usepackage{tabularx}
$ s8 @9 U1 Y3 X! b$ S        \begin{tabularx}{400}{ | c | X | X | X | X | X |}* y+ i4 X& ?/ `
                \hline3 F5 y" D1 F0 l" _3 d4 S3 Y
                数字 & 1 & 2 & 3 & 4 & 5    \\  \hline- P& D' m7 \- u, K" X+ y: x& `
                汉字 & 一 & 二 & 三 & 四 & 五    \\  \hline
, U! o" z/ F, T, c7 `: e% V                %阿汪先生的博客
0 w2 E& O- L) e! E; m) \        \end{tabularx}& e" O- X% B% R0 d5 x  O: d
                0 F, {1 v* j4 ~/ J6 |. R
2、三线式表格—booktabs& J  [& U" h+ F, _7 v, n
(1)booktabs提供了如下命令:
+ e. x7 M$ n3 j# T          \toprule ,画表格顶部粗线。6 X$ n  E* i8 i9 c$ M6 o
          \midrule,画表格中部粗线。
  I" W8 V: S' F. c2 A7 \( W          \bottomrule,画表格底部细线。4 i; U7 [9 R8 W/ ~. R
          \cmidrule 与 \cline命令相似。
# q* ]  j' J6 A$ }# C; i% q2 }9 v6 `: b4 D  ?
(2)使用示例:# g0 e: s2 m# S0 B7 `$ G6 Z
%导言区  \usepackage {booktabs}- v( `; S& [7 W% l' G) {
        \begin {tabular}{c c c}
  c2 \0 T; Y! T0 C4 f          \toprule* e( H  n2 N$ _+ q9 c
          姓名 & 语文 & 数学 \\ \midrule
6 a7 M2 `8 G0 e4 C) f! m; D; E          阿汪 & 93 &97   \\ \cmidrule {2-3}) k1 v9 W! q& _' k& K9 n
          阿喵 & 98 &92   \\
6 r! a; b+ J$ j+ i- I7 ~" ^          \bottomrule                                                       
0 i9 `7 w: b7 R2 Q% h( o          %阿汪先生的博客
+ I" c' |8 Y# V* y4 c8 K\end{tabular}
- M* ~5 x5 H& |& V2 ~4 D: t2 w
3 c/ a( X8 r, n( S五、常用表格参数的设定
8 p$ O, x% j5 j$ X# ^9 j8 D# k1、表格浮动环境; ]  J: c" J/ d
控制表格(浮动)在本页中的显示位置需要table环境。' o+ ^) Y& g+ Y7 @. J9 s
位置参数有htbp四种:here 、top 、bottom 、float page。* P) a6 r2 `" U
table环境中可以通过 \caption 命令表格的标题。
; B" B, ^$ C* {7 M' t, R: H
$ s2 f* z0 l! v. k, S(1)位置参数htbp释义:9 W4 Y- n' J7 [$ g4 r' V1 V  z
here:在输入表格的位置排版
: ?9 f7 a7 N& g4 @; v) [, d" {top:在输入页面的顶部排版2 b0 E$ D) H' B$ ~' }, h+ R
bottom:在输入页面的底部排版
3 d! W# u; K# N- F' o& p2 Afloat page:在单独的浮动页面排版
. i. V1 O6 ^9 y2 k  @/ Y& V! |(2)使用模板:7 m: O& C1 c+ |! s8 u5 ^
\renewcommand\tablename{表}# m& f8 g3 C# a2 f
   \begin {table}[htbp]
& k( N) Q3 `) g2 A8 Q. w8 U            \centering \caption{成绩一览表}
+ _1 H& S/ P7 V7 j                   \begin {tabular}{c c c}
( D1 @* Z9 ?' Q% t  i                           \toprule        ! W' f# n/ u+ y0 O" V  N) X4 h0 W( }% f& O
                           姓名 & 语文 & 数学 \\ \midrule& Q6 E1 Z) z) v; \+ K& I7 K
                           阿汪 & 93 &97   \\ \cmidrule {2-3}
# t2 a6 |( Y$ e: K                           阿喵 & 98 &92   \\ 7 B0 e2 W& j" w" i' i" |1 g3 {
                           \bottomrule  n' s/ j$ t7 p5 s! X7 q
                   \end{tabular}
+ I) T5 I7 ?( V6 v$ c: @) `) H                   %阿汪先生的博客5 V6 i, U1 D/ `$ Q4 u
   \end {table}       
8 |/ [& f" Q% h7 a8 Y4 g0 ?. H0 s# x( [. g$ p
2、功能强大的tabu宏包
3 h+ J% c: k; }* F2 i8 M! |(1)tabu宏包提供的基本表格环境) E3 P; Z& c/ \1 ~
\begin{tabu}[<垂直对齐方式>]{<tabular列格式说明>}
, e6 }4 G' u) Z\begin{tabu} to <尺寸>[<垂直对齐方式>]{<tabularX列格式说明>}" [: T$ j) a8 `5 j, {2 b8 K
\begin{tabu} spread <尺寸>[<垂直对齐方式>]{<tabularX列格式说明>}. U% }- H# I* i7 O) E! O$ K! j2 g
, 其中**spread <尺寸>**表示:在表格的自然宽度下再增加一个<尺寸>。% e. `  M# d; N" I  t% H& |7 q
(2)画线格式
  n1 Q! O3 U: c  I+ B) |' `- [* c tabu环境中的画线命令:竖线|有一个可选项,可用来设置表格竖线的宽度。6 I# I8 d1 U6 ?) C
          \begin{tabu}{|[2pt]c|c|[2pt]}
+ I+ n$ p- W$ S- x          \tabucline[<尺寸>]{-}用来画横线,<尺寸>设置横线厚度,. a- G4 C: f9 z7 l: ?
          {-}指从本行起到本行末尾画一条横线,3 m& T( ?0 ?7 p  |% X4 T4 Z
          {2-}指从第二个单元格开始画线至行尾。
# b6 {: h* D8 @+ `" I8 O- i6 Z3 S, p: s6 N$ Q2 @% H: B
(3)单独设置一行的格式
/ {! h1 ~! i* B% p          \rowfont[<对齐方式>]{<字体格式>} 可以设置一行单元格字体的格式。: i4 L7 p: s0 F
使用示例:
; d. N- e5 k' V8 E
* y' X0 s: X3 m9 d, o\begin{tabu}{|X|X|}, L% o* L5 X+ ^) W6 U
        \tabucline-            %“-”表示无厚度等参数
% v* [* U" d; h- p: C2 p9 j0 D        \rowfont[c]{\bfseries} This & is \\ \tabucline-
$ o  u* m% h: }- d, V( v- t/ D; K! B        for & everyone \\ \tabucline[2pt]-, n8 W& ^1 X3 g& m/ P
        \rowfont [r]{\itshape} Mr & Wang \\ \tabucline-          ?. l4 p0 @% N/ n0 |
        %阿汪先生的博客' l4 d# O0 Q1 A0 }" R' s
\end{tabu}                / m/ D5 r8 W4 T) k- I

* X% P) ^1 h; h& s5 P- c(4)其他操作/ S! @4 u. I, @" V: a
在tabu环境中合并与tabular环境不一样,前\extrarowsep后要在\end{tabu}之前添加命令 \tabuphantomline。) M; X3 `) ^* G2 K7 X7 a
\extrarowsep可以在每行垂直方向上添加额外空白,得到相同的行高。# ?8 Z8 z7 H* w6 T! o
使用示例:
4 ?# j& c5 b1 X8 N, O\begin{tabu}{| X | X |} \hline
' \; X+ R6 d. f7 _$ S( i; j: i\multicolumn 2 {|c|}{Hello}&World \\ \hline
& ~# Q4 ^5 f7 K1 @/ W) {$ u\tabuphantomline                                                %阿汪先生的博客7 \' @- {/ }' a, ]
\end{tabu}                                                            %表格中不能有空行5 U% \- E3 g' J. H0 i- u
  w' E# I" ?8 V: {; `& F- x
————————————————
! N  m6 k7 |, ~9 f/ U' d版权声明:本文为CSDN博主「阿汪先生」的原创文章。
: Q$ E) ]$ w4 _8 U( {( Q原文链接:https://blog.csdn.net/qq_43499622/article/details/96894437
+ O- G; w/ i+ Y9 C6 M
作者: 925865807    时间: 2020-2-16 11:27
: _( @; L, ]- P+ F6 S* d. Z1 }
2 i% i8 B2 K) }  q: g2 Z

( y/ \7 b! z5 m+ T9 p2 Q# z谢谢分享. G( ^% t, [8 r' c





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