垂直放置的文本,字母在表格列中水平排列

垂直放置的文本,字母在表格列中水平排列

在下面的示例代码中,我想要定位 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}

在此处输入图片描述

您可能还知道,您的表格目前的形式太宽了。

相关内容