数学建模社区-数学中国

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

作者: zhangtt123    时间: 2020-2-12 15:18
标题: LaTeX论文写作系列之表格插入
一、常用的表格宏包
/ q) s; y' ~; v8 t2 [        dcolumn                                对齐小数点9 g! V5 B2 r! V! ]( i- ]8 H
        makecell                        单独控制单元格格式( B: d+ x" q9 v9 J. p/ o
        diagbox                                对表格进行斜线分割
7 r# t) B* \2 a. c: w*        longtable                        长表格,可用于处理分页表格(表格超过一页时使用)
8 q9 g0 O5 A& `# A2 E+ c  e        ltxtable                        longtable和tabularx的结合体
" V7 k$ t( p( b7 ~! A6 ]5 X        array                                各个表格宏包都依赖于它
9 O7 P. h' h3 Y5 c: X5 D% H8 ^6 f*        tabu                                命令简单、功能强大. y$ y" {; `8 _! |
" N( Q7 k  a  Q! i6 ^3 ^9 }
二、输入格式及说明; v" e; r% T8 p* q4 P0 B+ J1 P  Y/ h
1、一般输入格式
' L: _3 R. r" A3 b( F6 S7 T: U\begin{tabular}[<垂直对齐方式>]{<列格式说明>}
- p: J2 Y/ M) k7 W. K2 @$ w, t1 e        &        &        &        &        \\( y" y8 y& F5 b# `1 Z! m' P" {
\end{tabular}
$ `$ R: Q0 i$ D& k7 s" q& ?5 o0 I* h- B& K- {% J8 F6 I' A
2、一些说明8 |* f- D4 }* ~( c6 |( ^, Z
(1)特殊符号:
; V$ ~  F1 D4 g0 `2 |           \\          表示换行% K, t9 B0 @% g( c
           &   表示分隔单元格% y* {) c) M" c/ s+ z2 p

+ t4 z, \! b/ O0 g& v- _, u(2)垂直对齐方式:
& y9 R4 Y* ^/ E$ E' a$ p5 p           t  表示按表格顶部对齐  T3 H% O  K1 d1 t( C4 s
           b   表示按表格底部对齐2 d. X  k" N/ \, ~4 ^# y( g
          默认为:垂直居中,非t和b的参数都看作居中$ R" ^& m& ^$ V, Z$ r- x
3 j/ u, L0 T' K! o
(3)列格式:5 @6 s, X, _% r+ U4 N1 Q. J2 c4 x
           l  表示列左齐 (小写的 L)
) j& S; e- i7 P+ l  X           c  表示列居中对齐! U3 Y7 U, _* s
           r  表示列右对齐2 z/ n8 z) f8 w8 P7 R
! x# a1 b7 m* Z( Y9 e3 z! e
三、单元格的合并' ^; W' a) ~5 T( m0 }& q
1、行内单元格合并命令! _& n6 Z! H! E3 Z& \3 v3 D3 ^
\multicolumn{<项数>}{<新列格式>}{<内容>}     %<内容>为合并后的新内容                                                    
, m) M! Y9 O2 Q8 z# E1 q& Q  r4 i) b! l; y1 t& H
(1)基础模板:* ~4 T7 o; I8 v+ h' l0 J" n
            \begin{tabular}{ | c | c | }
5 R) t' @' m5 U                   \hline! y8 g+ ?+ o' o* j, h
                   \multicolumn{2}{ | c | }{成绩} \\. ^  ~. t" V- `& c4 Y$ f
                   \hline5 U8 U$ V& u, C* l
                   语文 & 数学   \\  \hline& u* O1 J5 r" }5 v
                   100 &  100          \\  \hline: g# o/ ?4 z/ ?2 f
                   %阿汪先生的博客- t: c! k7 [3 N; C; i" m+ h6 y" p  ]6 \
           \end{tabular}
5 p0 w+ ~# g4 O, s& Q2 }; ~) l6 ^  m# n                    
, ^' K9 n  X9 p6 o0 M: y0 ~' l(2)进阶模板:" a! I3 n( v+ g; X' F
         \begin{tabular}{ | c | r | r | }7 f( n7 [3 d8 n
                \hline
. x" M' F* L3 \% L( n                 &\multicolumn{2}{  c | }{成绩} \\9 u$ f. o; y2 E+ ]# f$ X/ y  ^" A+ D( E
                \cline {2-3}
; g% Q$ d. f7 X7 l4 [" B& Z; n* x                 姓名 & 语文 & 数学   \\  \hline7 @' z  M- C+ s  {
                阿汪 & 93 &  97          \\  \hline        + P) w" n. |! p+ `& B& k1 L
                %阿汪先生的博客8 J6 R+ X/ F% x. b' R
        \end{tabular}
' B& X- V% i) r# W2 G/ x                          4 d$ k1 r: p# R' ]
语句技巧:画水平表格线需要指定线的起始和终止列号。& a1 d( j; g- w0 ^" ?. [
用 \cline {<起始位置> - <终止位置>} ,如\cline{2-3} 。! `, c6 I$ S* B% e. q' T+ ]* `

; i/ N% S8 W' Z& {2 ]2、列内单元格合并命令: C  t+ }1 s' D3 v
需要用 multirow宏包
. T/ m* ~* W) T9 {, a" e\multirow{<行数>}{<宽度>}{<内容>}:内容达到指定宽度后自动换行
1 W) J3 I$ c; K! f1 l4 w% |: Y3 P  Y\multirow{<行数>}*{<内容>}:单元格的宽度即为输入内容的宽度# p, ?" {6 q. }/ i, x8 j8 ?8 T
& Z% j: s& ]/ c/ t  E; @$ A9 C
基础模板:
+ |( ~, y# l) \+ c2 ^%导言区   \usepackage{multirow}# L; z) z! i2 p6 |2 N6 i
         \begin{tabular}{ | c | r | r | }
2 C- C. W" K( J  g                \hline
+ b9 O0 F% h) ~: x% _2 \& P, n9 {                \multirow{2}*{姓名}&. B8 {* L; x6 M. D
                \multicolumn{2}{  c | }{成绩} \\
1 G3 X/ ?7 r. ^0 g- a                \cline {2-3}
3 J/ Y. M2 d8 |                        & 语文 & 数学   \\  \hline
9 L3 t( w7 a2 P+ \7 A6 ~7 L                阿汪 & 93 &  97          \\  \hline
9 g8 @2 Q) \+ b9 s            %阿汪先生的博客
) l  ^# H; Q" o5 E        \end{tabular}3 X7 _* r, p8 G7 U

/ M' R* F, G" V, L1 D* T+ X四、特殊表格
; v7 c7 Y% H0 E8 v1、定宽表格—tabularx
+ F! E5 Z  ~# u' l( i5 Q5 K3 P(1)注意点:; y3 d) B" Y# E: c3 n
          tabularx宏包提供tabularx环境
6 H' z3 X9 f' Y+ f          X为列格式说明符(列宽自动延伸),单元格内部默认左对齐,使其居中需要array宏包支持。( b  V6 f  f* y) e8 B- C& c3 P

, [  |. \/ |: M8 ?. ?) |" g7 s(2)使用示例:; K- |0 ]  [& t0 H8 F+ n+ p+ N5 h
%导言区   \usepackage{tabularx}
& W+ V) [( a# N6 x. H. o        \begin{tabularx}{400}{ | c | X | X | X | X | X |}
" H. X' ?4 O  B/ P# G                \hline& R" v' r0 X( u6 O) W( |+ G; `
                数字 & 1 & 2 & 3 & 4 & 5    \\  \hline
% p* I$ a) S5 H* j; B  y                汉字 & 一 & 二 & 三 & 四 & 五    \\  \hline, @; z& W6 r1 N  |) T2 ~6 \
                %阿汪先生的博客
' f3 }2 L6 v9 `5 l( M* ?        \end{tabularx}
9 ^( o5 A: }# s$ _                : Y7 C9 g5 E- L  i
2、三线式表格—booktabs' f! Y. b: P9 C9 g
(1)booktabs提供了如下命令:
6 c) M" O+ G. u  O6 n9 R1 C3 O6 a5 D+ d          \toprule ,画表格顶部粗线。& x6 c8 D# @: C8 i% b5 H9 W
          \midrule,画表格中部粗线。
; ~- b7 \3 Q1 Y3 s. v" F9 e! ~          \bottomrule,画表格底部细线。
' @' F' E0 J# P, h          \cmidrule 与 \cline命令相似。3 u  Z+ h: c" Y2 H1 \/ I
: S9 x/ R/ Q, L
(2)使用示例:
7 b7 C& }$ x/ e5 ~/ {: R2 K/ F6 P5 S%导言区  \usepackage {booktabs}
: C. o5 ?7 F  [1 n9 U) {1 g        \begin {tabular}{c c c}
) X" T. R, G( c9 f* `) |          \toprule+ z+ a% ^  D0 m+ h! l3 m+ I
          姓名 & 语文 & 数学 \\ \midrule2 f! a* P4 Q0 Z) l0 F
          阿汪 & 93 &97   \\ \cmidrule {2-3}
3 [; Q9 M$ x# W6 |/ [9 P          阿喵 & 98 &92   \\
9 j- T. G+ ^9 ]* ]          \bottomrule                                                        ) A/ D# n# w  S' H& a
          %阿汪先生的博客
+ A' E" f1 s  {0 \8 C$ L\end{tabular}* q( D/ L" Y1 |& e) o
) o5 K  M+ n8 Q" P; w4 a
五、常用表格参数的设定
5 s/ o- t$ g% c- I" j1、表格浮动环境
, H3 N. d( E: p1 j控制表格(浮动)在本页中的显示位置需要table环境。; E6 M/ e  j( Z: o& G
位置参数有htbp四种:here 、top 、bottom 、float page。
% M8 Q0 Z6 b) ]5 G# Z6 w/ Rtable环境中可以通过 \caption 命令表格的标题。, A( J7 M, b( J% f& V
8 |* K0 l! K, f% R# Y
(1)位置参数htbp释义:
7 T8 q2 |' e: u! k3 A+ ]: F5 Xhere:在输入表格的位置排版% `' J9 P. w% }6 a& }/ J( C9 X
top:在输入页面的顶部排版$ n% M. E4 x, p, |
bottom:在输入页面的底部排版" N6 B* {' T3 Y5 D2 [
float page:在单独的浮动页面排版
) \& r+ {$ ?$ P$ _* ~( f(2)使用模板:
5 P+ _$ \/ H+ e' u; B\renewcommand\tablename{表}, W2 G( c& O1 f- p1 Q% n
   \begin {table}[htbp]
- B  [+ V+ M. ?            \centering \caption{成绩一览表}
# |8 R6 D9 V/ U+ ]' @                   \begin {tabular}{c c c}0 ]! [# ?" q1 A* o8 |5 |
                           \toprule        5 k  h% [4 @4 d2 z' G
                           姓名 & 语文 & 数学 \\ \midrule
, M7 B! g7 d& {                           阿汪 & 93 &97   \\ \cmidrule {2-3}9 C3 T" }4 o- o* _8 [
                           阿喵 & 98 &92   \\   l( w+ e! R* Q' Z
                           \bottomrule
$ M5 d" E9 `" q3 Q                   \end{tabular}
( D! |1 A# F* y( K: C! a; T+ M1 I7 Y2 V                   %阿汪先生的博客# `; c) t# Z, D
   \end {table}       
7 Y# F7 Z/ w  I4 u
% X# j& X9 V" v- J# {6 q2、功能强大的tabu宏包# u. w6 }8 c: c# M4 W4 w
(1)tabu宏包提供的基本表格环境
/ D# l" j7 ]4 L" S; W2 z\begin{tabu}[<垂直对齐方式>]{<tabular列格式说明>}
6 ]$ K) c: O* U  ]\begin{tabu} to <尺寸>[<垂直对齐方式>]{<tabularX列格式说明>}
1 }) M6 X" O$ E\begin{tabu} spread <尺寸>[<垂直对齐方式>]{<tabularX列格式说明>}
2 }* w9 u1 o& S- `0 x, 其中**spread <尺寸>**表示:在表格的自然宽度下再增加一个<尺寸>。0 Q# h; a* H, K: k9 q% b
(2)画线格式/ l4 O; u, X7 `1 |+ v
 tabu环境中的画线命令:竖线|有一个可选项,可用来设置表格竖线的宽度。
) o0 f7 p& K3 Y# t7 O          \begin{tabu}{|[2pt]c|c|[2pt]}
+ o, |7 O: [, @, ]; ^          \tabucline[<尺寸>]{-}用来画横线,<尺寸>设置横线厚度,- a! c) @) Y* Y% ]+ @2 p& |. ^
          {-}指从本行起到本行末尾画一条横线,
' Y1 h2 V9 X, ~4 r$ C2 L) D          {2-}指从第二个单元格开始画线至行尾。! Q; c) x6 g8 R% r; O
( Z! s0 f6 g$ u/ O# c/ \- c+ F
(3)单独设置一行的格式: |! _. a6 r8 D$ e% W
          \rowfont[<对齐方式>]{<字体格式>} 可以设置一行单元格字体的格式。8 v+ |. ]% X& G% V% e
使用示例:
! b& H- U2 y" U: J7 Z/ e# e: f
* u$ N' s# n9 H9 W, b4 b4 R8 z$ `\begin{tabu}{|X|X|}
7 g8 ~1 t! S0 j& z) D        \tabucline-            %“-”表示无厚度等参数! D5 p: c! \+ t0 X# D9 B* t
        \rowfont[c]{\bfseries} This & is \\ \tabucline-
. |0 ~  R" B% f. T        for & everyone \\ \tabucline[2pt]-0 D. g* |/ j9 E. T! {
        \rowfont [r]{\itshape} Mr & Wang \\ \tabucline-        ) `  g+ }2 n3 T" U; |
        %阿汪先生的博客! ~& _4 [& W9 p' K2 \# F
\end{tabu}               
! H& E( M  [7 c7 E- L9 Y  L) ^. ~5 b" |' D# d7 A
(4)其他操作
# b8 ?/ ?, ~7 e8 E在tabu环境中合并与tabular环境不一样,前\extrarowsep后要在\end{tabu}之前添加命令 \tabuphantomline。
+ S. Y# C9 X! N1 b! |0 Q\extrarowsep可以在每行垂直方向上添加额外空白,得到相同的行高。. }. l1 m9 U0 j+ J
使用示例:
1 X7 m: f; }4 @: h\begin{tabu}{| X | X |} \hline
9 q' P! F% J0 ~/ X- S& h5 W" ]\multicolumn 2 {|c|}{Hello}&World \\ \hline
; d- Q! s3 g; `6 U4 A1 D' ^\tabuphantomline                                                %阿汪先生的博客
+ i* w6 t! ?' z  ]' V) J3 u. D\end{tabu}                                                            %表格中不能有空行! m9 Q% V0 o( Z+ ~0 d# v' e
& \/ ~. |$ n* J1 v
————————————————( {9 V+ s* g$ s+ w. c2 C  o; X
版权声明:本文为CSDN博主「阿汪先生」的原创文章。8 `" R8 {* K# d- e
原文链接:https://blog.csdn.net/qq_43499622/article/details/96894437/ w9 o# m$ l& M2 E& {/ \9 {  K* K# }  P

作者: 925865807    时间: 2020-2-16 11:27
  k6 {) w; T9 C3 U& ~5 `& u; }
3 o# ~( w3 r& L- |8 t) f
1 S3 x$ _* O3 Z3 S5 h7 j
谢谢分享
* I% `# V3 x6 h; a




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