我正在tabular
用 LaTeX 创建一个。
我希望一列尽可能小,没有列间距,这样刚好可以容纳文本。我知道这个问题的答案:我需要使用@{}c@{}
。
我还希望能够在我的单元格中的任何位置进行换行。我也知道这个问题的答案:我需要tabular
在我的 中使用tabular
。
问题是我无法让这两个解决方案协同工作:当我尝试在一个单元格内包含两行时,该列会超出文本的大小。
以下是一个例子:
\begin{small}
\begin{tabular}{|@{}c@{}|}
A\\B\\C\\
\end{tabular}
\end{small}
与以下代码进行比较(其中存在不需要的额外空格):
\begin{tabular}{|@{}c@{}|}
\begin{small}
\begin{tabular}{@{}c@{}}
A\\B\\C\\
\end{tabular}
\end{small}
\end{tabular}
答案1
您的代码中有两个虚假空格:一个在 之后\begin{small}
,另一个在内部 之后\end{tabular}
;您可以%
在行尾使用 删除这些空格。比较以下示例中显示您的代码和删除空格后的版本的结果:
\documentclass{article}
\begin{document}
\noindent Undesired blank spaces:
\begin{tabular}{|@{}c@{}|}
\begin{small}
\begin{tabular}{@{}c@{}}
A\\B\\C\\
\end{tabular}
\end{small}
\end{tabular}
\noindent Spurious spaces removed:
\begin{tabular}{|@{}c@{}|}
\begin{small}%
\begin{tabular}{@{}c@{}}
A\\B\\C\\
\end{tabular}%
\end{small}
\end{tabular}
\end{document}
\small
是一个开关而不是环境;使用这个:
\begin{tabular}{|@{}c@{}|}
\small
\begin{tabular}{@{}c@{}}
A\\B\\C\\
\end{tabular}
\end{tabular}
通过此输入,不会出现虚假空格,因为tabular
忽略了单元格开始和结束处的空格(并且\small
因为它是一个命令名称,所以忽略之后的结束行)。
嵌套时tabular
通常使用括号将内部括号括起来很方便;但在这种情况下,这不是必需的,因为内部括号tabular
只有一列。
答案2
以下对我有用:
\documentclass{article}
\begin{document}
\begin{tabular}{cl}
\small
\begin{tabular}{|@{}c@{}|}
A\\B\\C
\end{tabular}&
Some more text
\end{tabular}
\end{document}
注意垂直规则位于最里面tabular
使用换行符的最里面。您还可以考虑makecell
包裹执行的操作类似。下面是一个产生类似输出的简短示例:
\documentclass{article}
\usepackage{makecell}% http://ctan.org/pkg/makecell
\begin{document}
\begin{tabular}{|@{}c@{}|l}
\small
\makecell{A\\B\\C}&
Some more text
\end{tabular}
\end{document}