Latex - 为什么注释环境在宏中不起作用?

时间:2017-10-30 13:04:17

标签: macros latex

我试图创建一个可以在简历中显示不同级别详细信息的宏,这个想法是能够说明特定主题并仅获取我简历中相关条目的详细信息。

我正在使用课程"回忆录"使用\ newcomment函数。我尝试过moderncv,但我并不相信。

这是我到目前为止所提出的:

\newcomment{Item}
\newcomment{Descr}
\newcomment{Details}

\newcommand{\cvitem}[3]{
    \begin{Item}\textbf{#1}\end{Item}
    \begin{Descr}\hspace{1cm} {#2}\end{Descr}
    \begin{Details}\\ {\small #3}\end{Details}\vspace{2em}
    }

\commentsoff{Item}
\commentsoff{Descr}
\commentsoff{Details}

它按原样运行,但如果我陈述

\commentson{Details}

然后我收到错误:

! File ended while scanning use of \next.
<inserted text>
\par
<*> cv_master.tex
I suspect you have forgotten a `}', causing me
to read past where you wanted me to stop.
I'll try to recover; but if the error is serious,
you'd better type `E' or `X' now and fix your file.

知道为什么吗?

1 个答案:

答案 0 :(得分:1)

你更善于使用传统意义上的条件。也就是说,使用\if - 类似于您可以打开/关闭的语句:

enter image description here

\documentclass{article}

\newif\ifItem
\newif\ifDescr
\newif\ifDetails

\newcommand{\cvitem}[3]{%
  \ifItem
    \textbf{#1}
  \fi
  \ifDescr
    \hspace{1cm} #2
  \fi
  \ifDetails
    \\ {\small #3}
  \fi
  \vspace{2em}
}

\Itemtrue
\Descrtrue
\Detailsfalse

\begin{document}

\cvitem{First}{Second}{Third}

\end{document}

为什么呢?它更容易,适用于所有环境/类。