如何在单个 LaTeX 文件中维护文档的多个版本?

如何在单个 LaTeX 文件中维护文档的多个版本?

我想在单个 LaTeX 文件中维护我的简历的多个版本,例如:

  • 版本“period1”:从 2014 年到 2016 年
  • 版本“period2”:从 2017 年到 2019 年
  • 版本“全部”:从 2014 年到 2019 年

到目前为止,我一直为每个时期保存单独的文件,但这是一项繁琐的任务。我希望将所有内容放在一个文件中,但我不知道如何以简单的方式实现这一点,因为我的简历必须遵循非常具体的结构才能进行评估。

我一直在尝试使用“可选”包,但它不容易维护,而且我无法获得所需的输出。例如,在以下 MWE 中:

\documentclass[a4paper,10pt]{article}
\usepackage[utf8]{inputenc}

\usepackage[all]{optional} % change "all" to get a specific period
% options:
%   all = period1 + period2
%   period1 = only activities in period 1
%   period2 = only activities in period 2

% allow enumerate without items inside, otherwise compilation might fail
\makeatletter
\let\@noitemerr\relax
\makeatother


\begin{document}

\section{Curriculum Vitae -- \opt{all}{All}\opt{period1}{Period 1}\opt{period2}{Period 2}}

    \begin{itemize}
        \item Activity category A:
        \begin{enumerate}
            \opt{all,period1}{
                \item activity 1
            }

            \opt{all,period2}{
                \item activity 2
                \item activity 3
            }

            \opt{all,period3}{
                % nothing 
            }
        \end{enumerate}


        \item Activity category B:
        \begin{enumerate}
            \opt{all,period1}{
                \item activity 1
                \item activity 2
            }

            \opt{all,period2}{
                % nothing 
            }

            \opt{all,period3}{
                \item activity 3
            }
        \end{enumerate}

        \item Activity category C:
        \begin{enumerate}
            \opt{all,period1}{
                % nothing 
            }

            \opt{all,period2}{
                \item activity 1
                \item activity 2
            }

            \opt{all,period3}{
                \item activity 3
            }
        \end{enumerate}

    \end{itemize}

\end{document}

“全部”选项效果很好。但是,“period1”和“period2”选项可能会显示“活动类别 X”,但没有任何项目——我想避免这种情况:

“period2” 的当前输出(来自 MWE):

  • 活动类别 A:
    1. 活动 2
    2. 活动 3
  • 活动类别 B:
  • 活动类别 C:
    1. 活动 1
    2. 活动 2

所需的输出将是没有空的“活动类别 B:”:

  • 活动类别 A:
    1. 活动 2
    2. 活动 3
  • 活动类别 C:
    1. 活动 1
    2. 活动 2

有没有一种方法可以实现这种输出,并且能够在具有多个时期的大型 CV 中易于维护?

答案1

例如,以下工作:

     ...
     \opt{all,period1,period3}{ % mention all cases here, except "empty" ones
        \item Activity category B:
        \begin{enumerate}
            \opt{all,period1}{ % don't need "all" here
                \item activity 1
                \item activity 2
            }

            \opt{all,period2}{
                % nothing 
            }

            \opt{all,period3}{
                \item activity 3
            }
        \end{enumerate}
     }
     ...

相关内容