我迫切需要有人的帮助。在过去的一个小时里,我一直在尝试完成一项极其困难的任务,甚至连大力神本人都无法完成:更改表格中的字体。
我的表格看起来像这样:
\begin{tabular}{|p{0.14\textwidth}|p{0.12\textwidth}|p{0.62\textwidth}|} \hline
something & something & something wider\\
lather & rinse & repeat \\
\hline
\end{tabular}
我希望此表格采用逐字字体。我尝试将整个表格放入texttt{ }
,但它在 Kile 中生成9000 badboxes
。为什么?我不知道,它看起来不错。将整个表格放入
\begin{verbatim}
\end{verbatim}
不起作用。
然后我发现可以设置某一列的字体:
\begin{tabular}{|>{\ttfamily}p{0.14\textwidth}|p{0.12\textwidth}|p{0.62\textwidth}|} \hline
你知道吗?它真的有效!第一列是逐字逐句的。所以,我尝试了第二列
\begin{tabular}{|>{\ttfamily}p{0.14\textwidth}|>{\ttfamily}p{0.12\textwidth}|p{0.62\textwidth}|} \hline
而且也成功了!我尝试了最后一个
\begin{tabular}{|>{\ttfamily}p{0.14\textwidth}|>{\ttfamily}p{0.12\textwidth}|>{\ttfamily}p{0.62\textwidth}|} \hline
这当然会产生 badboxes。我那成功了,而烦人的 LaTeX 却出了问题。我读到过你可以设置一个全新的环境来更改字体,坦率地说,这似乎太过分了。
那么,我怎样才能实现我想要实现的目标,而又不让整个世界天翻地覆呢?
答案1
窄列总是难以排版,而且对于打字机类型来说也没有什么意义。
因此,我们可以添加\raggedright
避免对齐:它会使单元格中的文本与左边距齐平,但不与右边距齐平。
因此你可以这样做
\begin{tabular}{
|>{\ttfamily\raggedright}p{0.14\textwidth}
|>{\ttfamily\raggedright}p{0.12\textwidth}
|>{\ttfamily\raggedright\arraybackslash}p{0.62\textwidth}
|}
\hline
...
\end{tabular}
\arraybackslash
最后一列的规范是必需的,因为否则您无法用(重新定义它)结束该行。\\
请\raggedright
参阅软件包手册array
。
如果要将所有表格都排版为打字机类型,也\ttfamily
可以在它之前添加声明并在组中进行保护,但我认为这种方式更好,因为它允许更大的灵活性;例如,您可能想要添加具有不同类型的新列。