latex 表格问题

latex 表格问题

我正在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}

相关内容