【问题标题】:automated line breaks in LaTeX tablesLaTeX 表格中的自动换行符
【发布时间】:2009-12-16 22:47:58
【问题描述】:

在我的论文中,我有一个词汇表来解释我使用的一些缩写词。我把它放在一张桌子上让它看起来更好看。但是,LaTeX 不会在页面末尾换行。

我知道我可以在表格中的任何位置强制换行,但它是一个很长的表格(很多工作!),手动换行会使文本看起来参差不齐且难看。有没有一种很好的方法来制作漂亮的词汇表或让 LaTeX 在表格中自动换行?

...如果 LaTeX 不经常做这些事情,我会非常喜欢它。就这样,我经常在爱和愤怒之间切换……

【问题讨论】:

    标签: latex


    【解决方案1】:

    为什么要使用表格作为词汇表?你知道glossaries 包吗?它可以让您轻松创建精美的词汇表。

    如果您仍想使用表格,我建议您使用tabularx,它定义了X 列类型,该列类型创建可调整宽度的列,并带有自动换行。

    例如:

    \usepackage{tabularx}
    
    ...
    
    \begin{tabularx}{\textwidth}{ |l|X| }
      \hline
      word1 & long definition... \\
      \hline 
      word2  & long definition...  \\
      \hline
    \end{tabularx}
    

    【讨论】:

    • 通过 Google 找到此页面...此解决方案对我来说非常有用!
    • 我需要一个简单的表格,没有词汇表。这个答案是完美的,这个例子可以直接运行!
    • 对于所有使用booktabs 并且不想要竖线的人,请改用\begin{tabularx}{\textwidth}{ lX }
    【解决方案2】:

    查看longtable 包。它会自动处理分页符。 http://ctan.org/tex-archive/macros/latex/required/tools/longtable.pdf

    【讨论】:

    • 很抱歉投了反对票,但我的问题是关于换行符,而不是分页符
    • 在这种情况下,您可以说:begin{longtable}{l >{\raggedright}p{0.75\textwidth} },您的行将在表格边缘和分页符处自动换行;)
    • 哦,我不知道!谢谢!
    • 你打赌。您可以使用 p{width} 定义表格单元格的宽度,然后在其之前的 >{\raggedright} 使该列中的所有文本都位于右边。
    • 因为我无法撤回我的反对票,但 longtable 处理换行符 分页符,而 tabularx(见下文)仅处理换行符。所以,你的答案是最好的!如果您编辑您的回复以包含您在 cmets 中写的详细信息,我什至会支持它!
    【解决方案3】:

    尝试:

    \begin{tabular}{|p{3cm}|p{4cm}|p{4cm}|}
    Long text here & Long text here & Long text here \\
    \end{tabular}
    

    【讨论】:

      【解决方案4】:

      此解决方案适用于我的情况:

      \begin{tabular}{ll}
      one line& \parbox[t]{5cm}{another\\column}\\
      second line here& and here
      \end{tabular}
      

      (在answer to a similar question on TeX Stack Exchange上找到。)

      【讨论】:

        【解决方案5】:

        在每个\\(或\cr)之后插入以下内容:

        \noalign{\penalty -100 }
        

        例子:

        \def\penlt{\noalign{\penalty-100 }}
        
        \halign{&\hfil\ (#)\ \hfil\cr
        1&2&3\cr \penlt
        1&2&3\cr \penlt
        1&2&3\cr \penlt
        1&2&3\cr \penlt
        1&2&3\cr \penlt
        1&2&3\cr \penlt
        1&2&3\cr \penlt
        1&2&3\cr \penlt
        1&2&3\cr \penlt
        1&2&3\cr \penlt
        1&2&3\cr \penlt
        }
        

        如果你想在每一行之后使用规则然后写

        \def\penlt{\noalign{\hrule \penalty-100 \hrule height -.4pt \hrule}}
        

        【讨论】:

          猜你喜欢
          • 2011-03-05
          • 1970-01-01
          • 2010-10-21
          • 2010-11-18
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          相关资源
          最近更新 更多