2017-10-30 14 views
1

私は履歴書にさまざまなレベルの詳細を表示できるマクロを作成しようとしています。そのアイデアは特定のテーマを述べ、自分の履歴書の関連するエントリのみを取得することができます。ラテックス - マクロでコメント環境が動作しないのはなぜですか?

私は\ newcomment関数を使用するために "memoir"クラスを使用しています。私は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

伝統的な意味での条件文の使用が優れています。

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} 

理由:それはあなたがオン/オフを切り替えることができ\if様の文を使用して、ありますか?それはより簡単で、すべての環境/クラスで機能します。

+0

Waww super nice!ありがとう@Werner、私はある時点でifステートメントに飛び込むことを考えていた、私は間違いなく! –

関連する問題