表格内部对齐不稳定

表格内部对齐不稳定

我的简历中有以下两栏longtable内容:

\begin{longtable}{ r l }
...
\end{longtable}

现在的问题是:包含职位描述的第二列对齐得很好,而第一列不尊重其右对齐,尽管它只包含由某些\ifstrequal命令生成的简单文本(日期)以允许特殊情况(如(.. - 现在)。

有人能给我指出正确的方向吗?

\documentclass[11pt]{article}

\usepackage{color}
\usepackage{xifthen} % provides \ifthenelse and \isempty
\usepackage[none]{hyphenat}
\usepackage{geometry} 
\usepackage[parfill]{parskip}
\usepackage{sectsty} 
\usepackage{array}
\usepackage{etoolbox}
\usepackage{longtable} 

\geometry{a4paper} 
\geometry{margin=2cm} 
\pagestyle{empty} 

\providecommand*{\cvitem}[4][]{
    \ifstrequal{#3}{-}{#2 – present}{
            \ifstrequal{#2}{#3}{#2}{
                #2 – #3
            }
    } & \parbox[t]{12.3cm}{ \raggedright
                \textbf{#4} 
                    \ifthenelse{\isempty{#1}}{}{  \\ #1 } % Only output second line if optional parameter given
            \\[0.5cm] }  \\
}

\begin{document}

\begin{longtable}{ r l }
    \cvitem[foobar]{08/2011}{-}{foobar}
    \cvitem[foobarfooba]{04/2008}{08/2011}{foobar}
    \cvitem[foobar]{09/2006}{08/2007}{foobar}
    \cvitem[foobar]{08/2005}{08/2005}{foobar}
    \cvitem[foobar]{03/2005}{03/2005}{foobar}
    \cvitem[foobar]{05/2004}{05/2004}{foobar}
    \cvitem[foobar]{03/2004}{12/2005}{foobar}
\end{longtable}

\end{document}

答案1

正如评论中所预测的,您的宏添加了很多空格。

\providecommand*{\cvitem}[4][]{
    \ifstrequal{#3}{-}{#2 – present}{
            \ifstrequal{#2}{#3}{#2}{
                #2 – #3
            }
    } & \parbox[t]{12.3cm}{ \raggedright
                \textbf{#4} 
                    \ifthenelse{\isempty{#1}}{}{  \\ #1 } % Only output second line if optional parameter given
            \\[0.5cm] }  \\
}

添加许多空间令牌,需要

\providecommand*{\cvitem}[4][]{%
    \ifstrequal{#3}{-}{#2 – present}{%
            \ifstrequal{#2}{#3}{#2}{%
                #2 – #3%
            }%
    } & \parbox[t]{12.3cm}{\raggedright
                \textbf{#4}%
                    \ifthenelse{\isempty{#1}}{}{\\ #1}% Only output second line if optional parameter given
            \\[0.5cm]}%
}

相关内容