我正在开发一个自定义的.cls
简历排版工具。我正在尝试创建一个自定义环境来提供工作/教育经历的格式。我想指定如下内容:
\begin{cvsection}
\cvdate{xx-xx-xxxx}
\cvcompany{Some company & Co.}
\cvposition{Toilet cleaner}
\cvcomment{I love cleanin' dem toilets!}
\end{cvsection}
因此,我定义了我的环境并尝试\newcommand...
在环境定义内使用。LaTeX 不喜欢这样,那么解决这个问题的最佳方法是什么?
答案1
以这种方式组织环境的一个目的是允许输入的灵活性。
您不需要在环境中定义命令;经常使用的策略如下:
\newcommand{\cvdate}[1]{\renewcommand{\givencvdate}{#1}}
\newcommand{\cvcompany}[1]{\renewcommand{\givencvcompany}{#1}}
\newcommand{\cvposition}[1]{\renewcommand{\givencvposition}{#1}}
\newcommand{\cvcomment}[1]{\renewcommand{\givencvcomment}{#1}}
\newcommand{\givencvdate}{REQUIRED!}
\newcommand{\givencvcompany}{REQUIRED!}
\newcommand{\givencvposition}{REQUIRED!}
\newcommand{\givencvcomment}{} % this is optional
\newenvironment{cvsection}
{\begin{flushleft}}
{\textbf{\givencvdate}\\
\givencvcompany\\
\givencvposition
\ifx\empty\givencvcomment\else\\[.5ex] \textit{\givencvcomment}\fi
\end{flushleft}}
这样,在环境中指定数据的顺序就无关紧要了。让我们看几个例子
\begin{cvsection}
\cvdate{xx-xx-xxxx}
\cvcompany{Some company \& Co.}
\cvposition{Toilet cleaner}
\cvcomment{I love cleanin' dem toilets!}
\end{cvsection}
\begin{cvsection}
\cvposition{Toilet cleaner}
\cvdate{xx-xx-xxxx}
\cvcompany{Another company \& Co.}
\end{cvsection}
当然,你必须调整的定义来cvsection
满足你的需要。