多行长文本的反向对齐不超过 \linewidth

多行长文本的反向对齐不超过 \linewidth

我正在尝试使用抽认卡宏,我希望文本按如下方式对齐

    ____________________________________
   | |
   | 一个字符串 一个超长的字符串 |
   | B 字符串 C 字符串 |
   | 一条超长弦 2 D 弦 |
   | |
    ------------------------------------

我尝试使用tabular*环境,看起来相当合适,使用方法如下:

\begin{tabular*}
A string               & An Xtra long string \\
B string               & C string \\
An Xtra long string 2  & D string
\end{tabular*}

不幸的是,结果水平溢出,如下所示:

    ____________________________________
   | |
   | 一个字符串 一个超长的字符串
   | B 字符串 C 字符串
   | 超长弦 2 D 弦
   | |
    ------------------------------------

因此我尝试使用makebox,如下所示:

\makebox[.48\linewidth][l]{A string} 
\makebox[.48\linewidth][r]{An Xtra long string} \\
\makebox[.48\linewidth][l]{B string} 
\makebox[.48\linewidth][r]{C string} \\    
\makebox[.48\linewidth][l]{An Xtra long string 2} 
\makebox[.48\linewidth][r]{D string}

但这会导致垂直填充过多,如下所示:

     ____________________________________
    | |
    | 一个字符串 一个超长的字符串 |
    | |
    | B 字符串 C 字符串 |
    | |
    | 一条超长弦 2 D 弦 |
     ------------------------------------

这也不是期望的结果。

我认为(希望)我已经清楚地展示了我想要的结果。到目前为止,我一直在胡乱摸索,但我认为有一种相对简单的方法可以实现这一点。

如果您能提供任何有帮助的反馈或建议,我将不胜感激。

答案1

这是一个选项...使用 \hfill。

\documentclass{article}
\begin{document}
\noindent
\parbox{2in}{%
A string \hfill An Xtra long string \\
B string \hfill C string \\
An Xtra long string 2 \hfill  D string
}
\end{document}

(您实际上不需要 parbox;只是宽度较窄的点最容易被看到。)

替代文本

我还有另一个选项,我会单独发布,以便可以单独投票或单独接受/不接受。

答案2

另一种选择是使用制表环境:

\documentclass{article}
\begin{document}
\parbox{2in}{%
\begin{tabbing}
A string \` An Xtra long string \\
B string \` C string \\
An Xtra long string 2 \` D string
\end{tabbing}
}
\end{document}

我本来要发布另一张截图,但我无法分辨这个输出和我之前发布的输出之间的区别,所以......

相关内容