数学建模社区-数学中国

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

作者: zhangtt123    时间: 2020-2-12 15:18
标题: LaTeX论文写作系列之表格插入
一、常用的表格宏包
/ }6 _% c& L# x" K* n3 S        dcolumn                                对齐小数点9 g* K+ Z4 U: b
        makecell                        单独控制单元格格式
3 X* q9 f, A, l6 J5 z* Y, H: V        diagbox                                对表格进行斜线分割
- ?/ L4 L8 I5 b8 ~3 d) C*        longtable                        长表格,可用于处理分页表格(表格超过一页时使用)6 W" H& F6 W* I( k5 {- J4 V
        ltxtable                        longtable和tabularx的结合体
% `4 W! D( `. C  w# S9 r        array                                各个表格宏包都依赖于它
. Q; R* m: d3 ^# W, K% z*        tabu                                命令简单、功能强大' s, Z; @! p2 f+ l/ F  [

9 c+ w7 Z0 F- U# C" M: h* j二、输入格式及说明5 ]5 J3 s3 r! m, d  v* D2 K" G0 t
1、一般输入格式$ t- C" \8 Q" ^" `6 p# }  \4 N# G
\begin{tabular}[<垂直对齐方式>]{<列格式说明>}  Y, c  M4 K3 O! x4 I; z9 m
        &        &        &        &        \\5 [$ K' C; j; v) N$ u, m
\end{tabular}
3 n* b9 h. D, Z' M" C7 i5 ?9 ]
( m9 o5 \9 z8 F2、一些说明
* s, }' S8 A. C0 m9 p' e(1)特殊符号:
; F( G; t7 b1 ^6 Y  Z* U7 i7 O           \\          表示换行1 m3 O- I" A6 v4 ^( a/ \" P
           &   表示分隔单元格
) G  k: S+ @" I$ {# O3 Y* q: X, z! }, S  A: c- L! l
(2)垂直对齐方式:
1 k( Y3 m  [8 B4 _$ a4 j# h! s           t  表示按表格顶部对齐
. T  |* i: r* Z! T           b   表示按表格底部对齐
6 T1 ^* ~. H% S' g& v          默认为:垂直居中,非t和b的参数都看作居中5 a5 y1 H! q+ Y# e" s5 c
# d% E6 e5 {" A1 J& E
(3)列格式:/ x6 t, j: v/ b9 \
           l  表示列左齐 (小写的 L)
  d4 j& G9 K4 O8 x5 }- B; ?           c  表示列居中对齐: ?( w5 [- X: ~  `9 N* b
           r  表示列右对齐" _; M$ s- h; U0 {! R/ G) V* I
4 p. N( E8 E: n8 h3 p
三、单元格的合并
3 {- f! |! Y% A2 B" b1、行内单元格合并命令
( q* t6 R$ r% v( p: R7 j# y$ @4 M\multicolumn{<项数>}{<新列格式>}{<内容>}     %<内容>为合并后的新内容                                                    
, {3 Y  ~4 @& z& q: W# e7 B; R" h% B4 {$ e- O
(1)基础模板:5 }) l5 H# @; Z* ~& y
            \begin{tabular}{ | c | c | }8 h% C0 }' W! {( p8 C) Q
                   \hline
/ Q4 T" n5 p; s" D4 L# W                   \multicolumn{2}{ | c | }{成绩} \\5 C+ N5 K3 W& H: S/ j
                   \hline
/ E* u/ q$ N* a# o, A8 ~                   语文 & 数学   \\  \hline
( {7 W+ [) U& \                   100 &  100          \\  \hline: Y7 w4 \7 b+ p% t7 ?# }
                   %阿汪先生的博客
7 o! @  L3 z- B2 ^6 Q5 _           \end{tabular}$ X$ W+ p7 w/ \" c  v( H
                    
; C* ^9 k% J: N: J) |4 G& m(2)进阶模板:
% X& R2 o9 {+ K+ [0 N1 L% Z          \begin{tabular}{ | c | r | r | }
7 w' }& O4 i% o/ E                 \hline0 x# B& y( S6 d8 C; d5 U2 B
                &\multicolumn{2}{  c | }{成绩} \\6 I7 ?4 A. M% Y( e8 p& W/ J* O
                \cline {2-3}
" W% `( N: ?, `, U' n                 姓名 & 语文 & 数学   \\  \hline; v7 G& J9 m$ }4 A0 y3 h& S
                阿汪 & 93 &  97          \\  \hline        . Y$ {' Z. j. e/ ^2 [/ O$ G
                %阿汪先生的博客6 R. v- N1 Q; R, ^
        \end{tabular}
- b7 q& R: I9 S  s& I/ F                          9 w! h1 R' I6 @' W; ]$ n
语句技巧:画水平表格线需要指定线的起始和终止列号。& u. p5 q4 B+ L' ~) L* z4 F! s
用 \cline {<起始位置> - <终止位置>} ,如\cline{2-3} 。
' P% S$ b  ?8 [/ N
* p* o- \" h8 n2、列内单元格合并命令/ L& |3 C2 I0 ^$ G
需要用 multirow宏包
4 v# Q2 n( Q' i2 v3 x' o\multirow{<行数>}{<宽度>}{<内容>}:内容达到指定宽度后自动换行- s; k3 V; G1 x+ R" I
\multirow{<行数>}*{<内容>}:单元格的宽度即为输入内容的宽度
. h& L8 \. f6 X8 j/ c
* [! X2 b7 n# z8 Q" D! j( w# f0 l基础模板:
2 E) I7 w+ i, j%导言区   \usepackage{multirow}% p3 T" N: _' C0 E4 Y5 m: u! l9 F6 v
         \begin{tabular}{ | c | r | r | }
* O% k8 Q: {8 N* z: t/ S                \hline- t& I' N0 Y6 P" V+ C
                \multirow{2}*{姓名}&9 U) a: {. s. P  ~3 t- X
                \multicolumn{2}{  c | }{成绩} \\
) t' H* p+ `, g" w" T" \+ I. S                \cline {2-3}! h5 {- a+ b. S# b( w1 z+ O. b
                        & 语文 & 数学   \\  \hline- H6 J* e/ Z, x
                阿汪 & 93 &  97          \\  \hline
4 d# v: j- F( t- P            %阿汪先生的博客
5 v# k/ w3 K& d' A/ n3 H6 W        \end{tabular}
& b6 v( u9 K. T) A% m/ R& Q& b
* C; ^) U) V* R  j: c- `四、特殊表格- K: n4 m3 w* g
1、定宽表格—tabularx! H/ S. }, G: T" v
(1)注意点:
$ ]+ e/ Y- u" a: u) n# k          tabularx宏包提供tabularx环境
' }4 L% U5 j" ~          X为列格式说明符(列宽自动延伸),单元格内部默认左对齐,使其居中需要array宏包支持。0 O+ c. T  _7 p. L6 F
+ o" [, t1 J" C% e. E
(2)使用示例:0 F+ c6 @$ N9 i; ?6 h
%导言区   \usepackage{tabularx}
) P$ f' |( t; V2 z0 w        \begin{tabularx}{400}{ | c | X | X | X | X | X |}/ o' A8 X1 @6 `, |: ~0 f
                \hline
7 W% H& u6 ?5 i, Y; r/ Z9 U3 T" G                数字 & 1 & 2 & 3 & 4 & 5    \\  \hline+ L6 G5 K- h1 A! d) |% U" n8 z
                汉字 & 一 & 二 & 三 & 四 & 五    \\  \hline6 o! N: F" i$ h
                %阿汪先生的博客0 u2 R8 J( ]/ _5 U2 Z% o
        \end{tabularx}" B- H4 a, S& \/ W4 U' _4 T- r
                ( `& G& T4 u$ i2 T
2、三线式表格—booktabs' g% T' k, m- {* l
(1)booktabs提供了如下命令:
4 a/ q4 d% f% w! ?8 Z          \toprule ,画表格顶部粗线。9 @) Q+ ~! A: d: f! i
          \midrule,画表格中部粗线。
7 \9 i: w, b/ {% C1 q# z- L          \bottomrule,画表格底部细线。: b2 }2 C  G1 a5 |, H+ [
          \cmidrule 与 \cline命令相似。. m! u6 D. _- L$ C0 k' w7 ]! L
- T# u; Z( ~" _6 ^: W
(2)使用示例:
* I$ I: M5 i* V6 U- |%导言区  \usepackage {booktabs}8 h; h8 g6 O( r9 n, X6 Y
        \begin {tabular}{c c c}
! `* x: d0 p: N. b# m: O9 \          \toprule
/ G# r4 m3 G/ c" a. ]# Z$ Q) V          姓名 & 语文 & 数学 \\ \midrule
  t+ {6 t8 a! q          阿汪 & 93 &97   \\ \cmidrule {2-3}
; o* A' N; E/ E+ l; X6 J2 ?          阿喵 & 98 &92   \\
2 g" T3 m5 R* v* S          \bottomrule                                                        ! S6 s* C8 H) e/ a
          %阿汪先生的博客8 q/ E& O7 o9 o" T% T8 m
\end{tabular}" G0 s0 g4 O8 p$ \0 H* ?9 ]% x

& E8 ^8 Q4 H9 c五、常用表格参数的设定5 _! W& F* Q6 |  j8 f1 F2 ~
1、表格浮动环境/ ?+ q1 u+ S' d7 a7 [5 W8 V! @
控制表格(浮动)在本页中的显示位置需要table环境。! j4 u, y& `8 q; M; R0 m
位置参数有htbp四种:here 、top 、bottom 、float page。
: m1 U0 U/ Q) C% G, O- Ztable环境中可以通过 \caption 命令表格的标题。, p+ `+ M. U! }4 |2 A, A9 q

) e9 `+ A+ Y9 ~4 x! }+ V(1)位置参数htbp释义:
" X- a' K5 ]" N+ o& r  K  P' rhere:在输入表格的位置排版
* K3 F$ ]4 U8 u: N. Q1 g9 Ctop:在输入页面的顶部排版! }2 E$ F) R3 T% j' `  T) l# S8 W
bottom:在输入页面的底部排版
% v1 ?) C1 f# a) rfloat page:在单独的浮动页面排版
$ n4 P) J' M* a' O(2)使用模板:7 A' r. l2 |; X( A+ L3 ~
\renewcommand\tablename{表}: V1 X. g4 R7 x# ?( q; ~
   \begin {table}[htbp]4 D/ U* e% ~, l( e# J
            \centering \caption{成绩一览表}
( b* o- y( x% i/ F                   \begin {tabular}{c c c}
3 K6 ~9 Y/ |+ h" |! ]$ Y                           \toprule          k  H8 Q5 k' C$ D$ t8 F. d+ O
                           姓名 & 语文 & 数学 \\ \midrule% [: K& B8 w0 ?$ ?4 T- v
                           阿汪 & 93 &97   \\ \cmidrule {2-3}
- x' _0 X0 I' |0 I2 j* F: i3 v                           阿喵 & 98 &92   \\ " b, Y  d- \1 ^* Q- A
                           \bottomrule
) m, U( [! E0 g' e, J- |* {9 z                   \end{tabular}
3 q& \( r3 |+ Q7 }+ X                   %阿汪先生的博客
& L& o# ?7 m( r% }- w! J( S& V   \end {table}       
# P( }$ I; E2 v# H( O9 K0 V' v& F3 @/ i% w
2、功能强大的tabu宏包6 F/ e, X4 V5 T: q: w- l
(1)tabu宏包提供的基本表格环境% u# D! L- U9 y+ H+ v
\begin{tabu}[<垂直对齐方式>]{<tabular列格式说明>}9 {% T: |1 Z! x# [
\begin{tabu} to <尺寸>[<垂直对齐方式>]{<tabularX列格式说明>}% m0 _* @7 Z5 h0 u
\begin{tabu} spread <尺寸>[<垂直对齐方式>]{<tabularX列格式说明>}
$ S; d3 a- g; e% c8 p! f7 _, 其中**spread <尺寸>**表示:在表格的自然宽度下再增加一个<尺寸>。
% C' K1 R. c  ~* k(2)画线格式
0 v( ]2 u" o3 M: b) {# z! } tabu环境中的画线命令:竖线|有一个可选项,可用来设置表格竖线的宽度。
/ {& Y0 F& m5 g3 ]3 N9 P          \begin{tabu}{|[2pt]c|c|[2pt]}: D% `( O7 C. x" r9 Y
          \tabucline[<尺寸>]{-}用来画横线,<尺寸>设置横线厚度,- f' _/ I& L! F" X( X+ m
          {-}指从本行起到本行末尾画一条横线," x1 q3 Q+ Q+ R  Q2 q/ I* O3 l
          {2-}指从第二个单元格开始画线至行尾。/ h! {7 R/ E6 i
; D8 @4 b% \! e" K( r0 P- k
(3)单独设置一行的格式
. n  R. K  t4 a/ A          \rowfont[<对齐方式>]{<字体格式>} 可以设置一行单元格字体的格式。
6 ^/ ], S) z9 L4 V! U使用示例:1 [8 E( g5 a5 W9 b0 d$ m0 g) C0 E
$ |. o" a1 U, E+ N  o( q: d1 U2 h
\begin{tabu}{|X|X|}
8 i/ h5 G0 j9 l" }3 G        \tabucline-            %“-”表示无厚度等参数0 D6 B- r2 K7 r, i4 M9 N# t5 ?
        \rowfont[c]{\bfseries} This & is \\ \tabucline-
) i7 ]4 W) V$ M& w% d: c        for & everyone \\ \tabucline[2pt]-  p+ ^, [* R. q
        \rowfont [r]{\itshape} Mr & Wang \\ \tabucline-        . i+ p  W% G. [
        %阿汪先生的博客: e, F5 n# i  j" s$ Y
\end{tabu}               
4 B8 X% d0 z" \* g' G8 A
% J0 M' y. n7 }; N$ A(4)其他操作) E- i, a: {* t1 ]* }
在tabu环境中合并与tabular环境不一样,前\extrarowsep后要在\end{tabu}之前添加命令 \tabuphantomline。# b& {, c  E* g% @8 k% O
\extrarowsep可以在每行垂直方向上添加额外空白,得到相同的行高。- N( x2 k" o3 z; Y. u4 y+ M
使用示例:
& m, k, P; {; H: b4 |\begin{tabu}{| X | X |} \hline+ ^/ k/ \9 W# i
\multicolumn 2 {|c|}{Hello}&World \\ \hline
7 c, w3 s8 ?- r# z\tabuphantomline                                                %阿汪先生的博客
( [, X; D2 U) x/ E% X\end{tabu}                                                            %表格中不能有空行+ T5 g/ s" D* x+ z# i' i( S+ E

" |" `) s* C. h' D' e/ V( y————————————————
0 @# J+ R7 _& F7 p: l2 T版权声明:本文为CSDN博主「阿汪先生」的原创文章。
* v6 w3 u6 q+ y) x原文链接:https://blog.csdn.net/qq_43499622/article/details/96894437" F& N8 h6 |! I: O7 [# I

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

! l0 n6 n/ V1 W, W
( m( ~) D! F9 F. n/ E( y# {9 F
$ D" g( g- y" H谢谢分享4 O1 Q4 |- X" B2 t8 }& Q





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