处理超出文档边距的宽表

处理超出文档边距的宽表

我正在寻找“全局”和“本地”解决方案,以解决我有一个表格“远远”超出页面左右边距的情况(意思是:没有页面边距无法解决问题的情况)。

这种解决方案可以包括:

  • 减小表格内文本的字体大小。
  • 使表格单元格实现某种“自动换行”解决方案。(我找到了这样的解决方案这里

如果您能提供我可能忽略的其他解决方案以及如何实施上面提到的两个选项的帮助,我将不胜感激。

答案1

tabularx包裹为环境提供tabularx格式

\begin{tabularx}{<width>}{<col spec>}
  % tabularx contents
\end{tabularx}

它还提供了列类型,可以根据 中的其他元素X拉伸列以填充 的剩余长度。它最常与 (或 )一起使用,允许表格水平放置在文本块内。<width><col spec><width>\linewidth\textwidth

使用时存在类似的方法和界面tabulary包裹


另一种使表格适合文本块边距(水平)的方法是修改列之间插入的填充。这是由 给出的\tabcolsep。默认是6pt标准文档类的。但是,只有当表格略微过大时,减少填充才可能有帮助。

答案2

有一次我有一个包,它测量了表格,并依次尝试了正常、侧向、较小字体或长表,以查看哪种字体最合适。不知道发生了什么,我认为它在 ctan 的某个地方:-)。如果您希望列宽适应列中的数据量,那么 tabulary 可能比 tabularx 更好。

答案3

使用 tabularx 执行此操作:1. 在 lyx 上转到文档 -> 设置 -> Latex 序言。那里应该有一个文本框。将此文本放入框中:

%% Hack by Heiko Oberdiek (on de.comp.text.tex)
\usepackage{tabularx}

%% Redefine the standard table
\let\ORIGtabular\tabular
\let\ORIGendtabular\endtabular
\let\ORIGtabularx\tabularx
\renewcommand*{\tabularx}{%
  \def\tabular{%
    \let\endtabular\ORIGendtabular
    \ORIGtabular
  }%
  \ORIGtabularx
}

\renewcommand{\tabular}{%
%% The width of the table. Adjust if needed
  \tabularx{\linewidth}%
}

\renewcommand{\endtabular}{\endtabularx} 

现在单击“确定”。

  1. 创建你的表格。
  2. 右键单击表格,然后转到更多->设置->列设置下的表格设置,找到“latex 参数”旁边的框并在其中写入“X”。
  3. 您可能需要对表格的每一列重复此操作。

完成!这应该会均匀分布线宽内的所有列。

相关内容