在下面的示例代码中,我想要定位 WIBBLE 文本,使得单词中的每个字母都是水平的,并且单词中的每个连续字母都出现在前一个字母的下方。
此外,WIBBLE 文本应与前一个文本对齐。即 WIBBLE 中的 W 应与其他两列中包含“The”的行对齐。
此外,如果可能的话,我更愿意避免使用 TikZ 或 MetaPost/MetaFun 等图形库。这个stackengine
包看起来很有前途,但它的命令似乎不太适合表格格式。也许是可能的,我没有使用正确的公式。
我在字母的垂直“堆叠”,其中每个字母都旋转到其下方字母的上方
@egreg 的\stack
回答看起来非常有前途,而且干净、简单、独立,但使用这个,第二列和第三列会向下移动。正如我已经说过的,我希望它排列整齐。我看到答案也使用表格,但我目前不明白如何使用。
\documentclass[12pt]{scrartcl}
\usepackage{stackengine}
\usepackage{longtable}
\usepackage{xparse}
\ExplSyntaxOn
\NewDocumentCommand{\stack}{O{c}m}
{
\begin{tabular}[#1]{@{}c@{}}
\tl_map_function:nN { #2 } \__tom_stack:n
\end{tabular}
}
\cs_new_protected:Nn \__tom_stack:n { #1 \\ }
\ExplSyntaxOff
\begin{document}
\begin{longtable}{p{2cm}p{8cm}p{8cm}}
& FOX & DOG \\
\stack{WIBBLE}
%\Longstack{W\\I\\B\\B\\L\\E}
& The quick brown fox jumped over the lazy dog
& The quick brown dog jumped over the lazy fox \\
\end{longtable}
\end{document}
答案1
您所指的答案只是逐个浏览字符并将它们放在 中tabular
。表格带有可选的对齐键。因此,如果您说\stack[t]{WIBBLE}
,这将创建\begin{tabular}[t]{...
而不是\begin{tabular}{...
,并将表格顶部对齐。
\documentclass[12pt]{scrartcl}
\usepackage{stackengine}
\usepackage{longtable}
\usepackage{xparse}
\ExplSyntaxOn
\NewDocumentCommand{\stack}{O{c}m}
{
\begin{tabular}[#1]{@{}c@{}}
\tl_map_function:nN { #2 } \__tom_stack:n
\end{tabular}
}
\cs_new_protected:Nn \__tom_stack:n { #1 \\ }
\ExplSyntaxOff
\begin{document}
\begin{longtable}{p{2cm}p{8cm}p{8cm}}
& FOX & DOG \\
\stack[t]{WIBBLE}
%\Longstack{W\\I\\B\\B\\L\\E}
& The quick brown fox jumped over the lazy dog
& The quick brown dog jumped over the lazy fox \\
\end{longtable}
\end{document}
您可能还知道,您的表格目前的形式太宽了。