前段时间我发了一个问题如何仅证明[a]用户定义表格环境的第一列。尽管 David Carlisle 给出了令人满意的答案,但他的答案仅在所讨论的列包含至少两个或更多单词时才有效。这是因为他提供的答案通过调整单词内空间来对齐文本。我现在需要一个解决方案来解决我的问题,该解决方案也适用于只有一个单词的情况。与我最初的问题一样,答案必须与兼容ragged2e
。
考虑以下 MWE:
\documentclass{article}
\usepackage{ragged2e}
\pagestyle{empty}
\setlength{\tabcolsep}{0pt}
\newenvironment{entrylist}{%
\noindent
\begin{tabular*}{\textwidth}{@{\extracolsep{\fill}}ll}
}{%
\end{tabular*}
}
\renewcommand{\bfseries}{}
\newcommand{\entry}[4]{%
\spaceskip0pt\xspaceskip0pt % for ragged2e document settting
#1\hspace*{0pt plus -1fil}\mbox{}&\parbox[t]{10.00cm}{\strut%
\textbf{#2}%
\hfill%
{\footnotesize #3\par}%no!\\%
#4\vspace{\parsep}%
}\\}
\begin{document}
\begin{entrylist}
\entry
{Office addr}
{A very fancy building in a very fancy place}
{}
{}
\entry
{Web addr}
{www.somename.com}
{}
{}
\entry
{Pers email}
{somename a aaa}
{}
{}
\entry
{Work email}
{veryfancyname2 a aaa}
{}
{}
\entry
{Phone}
{+00 0000 000000}
{}
{}
\end{entrylist}
\end{document}
我使用此 MWE 获得的输出是这样的:
问题出在单词“phone”上,它没有像其所在列中的其他单词一样对齐。我希望它像其所在列中的其他单词一样对齐。我想过不同的解决方案:
将文本向右刷新,但我担心这个解决方案可能看起来很糟糕,因为它意味着牺牲合理性……
确保相关列中的每个条目始终至少包含两个单词,这样字内空间就可以始终调整,以确保单元格的内容对齐。但是,有时不存在有意义的替代措辞……
调整字母间距,以确保相关列中的所有单词都对齐,无论单词数量多少。据我所知,如果没有太多空间需要纠正,这是一个不错的选择……
我想尝试选项 3,但我还没能找到方法。有人能帮我实现选项 3 吗(如果可能的话)?理想情况下,只要列中至少有两个单词,David Carlisle 的答案就应该保留为默认值,而只有当列中只有一个单词时,选项 3 才应该实现。
由于这是我正在更新的简历,因此我很乐意听取那些比我更精通 LaTex 的人提出的排版和文体建议。即使您无法帮助我按照我的意愿实现选项 3,也请随时提出您的意见。
非常感谢大家抽出时间。