更改表格中的字体

更改表格中的字体

我迫切需要有人的帮助。在过去的一个小时里,我一直在尝试完成一项极其困难的任务,甚至连大力神本人都无法完成:更改表格中的字体。

我的表格看起来像这样:

\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可以在它之前添加声明并在组中进行保护,但我认为这种方式更好,因为它允许更大的灵活性;例如,您可能想要添加具有不同类型的新列。

相关内容