我目前正在为我的简历定义一个自定义列表环境。在这个社区的大力帮助下,我设法获得了所需的列表环境,并且它运行良好。但是,现在编译会产生错误。我非常震惊,因为自上次成功编译以来我没有改变任何东西(至少没有故意改变)。因此,我完全不知道是什么导致了错误。我得到的错误是“缺少数字,视为零”。以下 MWE 复制了错误。
\documentclass{article}
\usepackage{ragged2e}
\pagestyle{empty}
\newenvironment{entrylist}{%
\noindent
\begin{tabular*}{}{@{\extracolsep{\fill}}rl}
}{%
\end{tabular*}
}
\renewcommand{\bfseries}{}
\newcommand{\entry}[4]{%
\parbox[t]{2cm}{#1\raggedleft}&\parbox[t]{\dimexpr\textwidth-2\tabcolsep-2cm}{\strut%
\textbf{#2}%
\hfill%
{\footnotesize #3\par}\\%
#4\vspace{\parsep}%
}\\}
\begin{document}
\begin{entrylist}
\entry
{Office}
{A very fancy building in a very fancy place}
{}
{}
\entry
{Website}
{www.somename.com}
{}
{}
\entry
{Email}
{somename a aaa}
{}
{}
\entry
{Phone}
{+00 0000 000000}
{}
{}
\end{entrylist}
\end{document}
如能得到任何帮助并找到并纠正错误的根源,我们将不胜感激。
非常感谢大家抽出时间。
答案1
有二您的代码中有错误。
环境的第一个参数
tabular*
不能为空。相反,它必须是一个可用的,即正长度。因此,我建议你替换\begin{tabular*}{}{@{\extracolsep{\fill}}rl}
和
\begin{tabular*}{\textwidth}{@{\extracolsep{\fill}}rl}
实际上,列的内容被硬编码为固定宽度的
\parbox
实体。因此,该tabular*
机制根本没有做任何有用的事情。因此,只需编写\newenvironment{entrylist}{% \noindent \begin{tabular}{@{}rl@{}} }{% \end{tabular} }
其次,
\\
在{\footnotesize #3\par}\\%
since
\par
已经产生了换行符。
总而言之,我认为您可能希望按如下方式定义环境entrylist
和宏:\entry
\newenvironment{entrylist}{%
\noindent
\begin{tabular}{@{} r l @{}}}{%
\end{tabular}}
\newcommand{\entry}[4]{%
\parbox[t]{2cm}{#1\raggedleft} &
\parbox[t]{\dimexpr\textwidth-2\tabcolsep-2cm\relax}{\strut%
#2%
\hfill%
{\footnotesize #3\par}
#4\vspace{\parsep}%
}\\}