对齐列,但允许在列之间插入文本

对齐列,但允许在列之间插入文本

我需要帮助对齐跨多行的文本,其中我在文本之间有逐字代码。下面是一个模拟示例来说明我的意思:

Fruit        Amount
Apple        $3.00

\begin{verbatim}
... some code here.
\end{verbatim}

Orange       $4.00
Peach        $7.55

\begin{verbatim}
... more code.
\end{verbatim}

Grapes       $11.50

因此,基本上我需要 Fruit 和 Amount 列始终如图所示对齐,即使通过逐字代码也是如此。我的问题是,如何才能以最少的麻烦做到这一点?:)

答案1

您可以插入

\noalign{%
\begin{verbatim}
Some verbatim code, but I'm not inspired,
sorry.
\end{verbatim}
}

在表格或任何对齐方式中,紧接着\\(事实上,紧接着 TeX 的,在 LaTeX 中\cr隐藏在)。\\

在这种情况下,LaTeX 的表格可能是可行的方法:

\begin{tabular}{lr}% choose whichever column specification you like
  Fruit & Price \\
  Fruit & Price \\
  \noalign{%
    \begin{verbatim}
    Some code
    \end{verbatim}
  }
  Fruit & Price \\
  Fruit & Price
\end{tabular}

答案2

什么决定了水果的排列?你能写出类似

\begin{tabular}{@{}p{5cm}l@{}}
  Peach & \$4.00 \\
  Banana & \$6.77
\end{tabular}

为每个块匹配长度?否则,如果您需要根据列中最大的单词匹配文档的长度,请查看 eqparbox 包。例如,您可以这样写:

\documentclass{article}
\usepackage{eqparbox}
\begin{document}
\newcommand\fruit[2]{%
  \noindent\eqparbox[b]{fruit}{#1}\qquad\$#2 \par
}

\fruit{Apple}{1.00}
\fruit{Grapes}{7.00}
\begin{verbatim}
Some verbatim code, but I'm not inspired,
sorry. &*#^^7
\end{verbatim}
\fruit{Peach}{4.00}
\fruit{Banana}{3.00}

\end{document}

然后对该文档进行两次编译。

相关内容