数组、表、表格、tabularx、longtable、supertabular、longtabu 等之间的一般差异

数组、表、表格、tabularx、longtable、supertabular、longtabu 等之间的一般差异

LaTeX 的各种表格环境之间有什么一般区别?我的意思是:它们的基本用途是什么?对于新用户来说,哪些是最重要的?哪些更高级,只应由高级 LaTeX 用户使用?表格的外观有区别吗?软件包booktabs在这方面如何发挥作用?

简而言之,你会在什么情况下使用它们,它们各自的优缺点是什么。这个问题对于 LaTeX 新手来说尤其有用,因为他们可能会觉得选项太多了。

答案1

array和之间的区别tabulartabular和之间的区别array环境,但我也会在这里引用它:

  • array可能是 TeX 中允许水平和垂直堆叠东西的基本tabular结构。你不需要包含array包裹以便使用array。该包仅向列规范添加了功能。

  • tabular是 的文字版本array

还有一个带星号的版本tabular*,它以长度作为附加参数,例如

    \begin{tabular*}{<len>}[<vpos>]{<colspec>}

    \end{tabular*}

设置tabular*<len>水平放置。它通常与@{\extracolsep{<width>}}中的结合使用<colspec>(通常<width>\fill),以展开 中的列 <len>

另请参阅tabularx下文。

  • table是一个浮点数,它不知道其中包含什么。虽然大多数人将tabular类似结构放在浮动的 中table,但它几乎可以包含任何东西。浮动的放置可能很棘手,但这在如何影响LaTeX 中浮动环境(如figure和)的位置?table将表格/图片放在靠近提及的地方与此相反,arrays 和tabulars 在文本中按原样放置在它们被编码的位置。

  • tabularx是一个通过添加 -column 扩展星号版本tabular*(需要指定长度)的包X。这种新的列类型会延伸,tabular使其适合指定的固定宽度边界。它避免了用户试图弄清楚 -columnp应该有多宽,以便最终的tabular宽度适合某个固定边界。

    下面的示例旨在突出上述内容,从而产生两个类似的表格:

    \begin{tabular}{| p{\dimexpr0.5\linewidth-1.5\arrayrulewidth-2\tabcolsep} 
                    | p{\dimexpr0.5\linewidth-1.5\arrayrulewidth-2\tabcolsep} |}
      A & B
    \end{tabular}
    
    \medskip
    
    \begin{tabularx}{\linewidth}{| X | X |}
      A & B
    \end{tabularx}
    

    在此处输入图片描述

  • longtable为想要跨页面边界拆分的过大表格提供了一个混合用例。有点类似于想要一个非浮动table环境(换句话说,有一个\caption),但也允许表格跨越多个页面。这绝对是一个优势,因为分页附带的好处是可以自动重复列标题。它可能需要多次编译才能确定列宽。

  • supertabular是的前身longtable并且仍然存在(并未过时),因为它提供了一种替代语法。

  • tabu尝试通过新的界面/语法为所有上述结构提供支持。

  • longtabu- 该tabu包还提供了longtable版本表tabu 。

  • ltxtable在环境内部共同提供longtable和的功能 。tab­u­larxlongtable

  • booktabs在放弃使用垂直线的前提下,定义了一组新的水平线供array和环境使用; /的列结构必然需要在列之间有水平分隔,因此不需要额外的(垂直)线。事实上,tabulararraytabularbooktabs文档提及:

    如果你始终记住两个简单的指导原则,就不会犯大错:

    1. 永远不要使用垂直规则。
    2. 切勿使用双重规则。

    该软件包旨在提供book高品质的tab文件s,因此得名 booktabs

  • tabularray重新定义表格在代码中的设置方式,使其结构类似于具有前言和内容的常规文档。与常规表格不同,它不会将代码与内容混合在一起,而是通过结构“前言”中的键值设置格式和布局样式/选项,从而将代码与内容分开,使更新/更改元素更加容易。

    此示例取自tabularray文档

    \begin{tblr}{
      colspec = {rX},
      colsep = 8mm,
      hlines = {2pt, white},
      row{odd} = {azure8},
      row{even} = {gray8},
      row{1} = {6em,azure2,fg=white,font=\LARGE\bfseries\sffamily},
      row{2-Z} = {3em,font=\Large},
    }
      Tabularray & Typeset Tabulars and Arrays with \LaTeX3 \\
      Author & Jianrui Lyu ([email protected]) \\
      Version & \myversion\ (\the\year-\mylpad\month-\mylpad\day) \\
      Code & \url{https://github.com/lvjr/tabularray} \\
      Code & \url{https://bitbucket.org/lvjr/tabularray} \\
      Support & \url{https://github.com/lvjr/tabularray/discussions} \\
      Support & \url{https://topanswers.xyz/tex} \\
      Issue & \url{https://github.com/lvjr/tabularray/issues} \\
    \end{tblr}
    

    并产生

    在此处输入图片描述

相关内容