更新

更新

我使用维他命LaTeX 模板(基于回忆录和模板的自定义样式)。我通过包大量使用尾注enotez。然后,我导出一个没有尾注的简短版本(全部注释掉,当然是手动的)。时不时地,我会在“完整”版本或简短版本中修饰各种细节。

保留一个来源以获取不同版本是明智之举(在当前情况下是“完整”版本和简短版本,尽管我可以在某些时候使用第三个版本的选项)。

我在完整版中使用的软件包是:

\usepackage{org-preamble-xelatex} % as per the original template
\usepackage{fontawesome,marvosym,url} % \Mobilefone looks better than \faMobile
\usepackage{ebgaramond}
\usepackage{lastpage} % use in header for full version
\usepackage{xcolor}
\usepackage{csquotes}
\usepackage{enotez,fnpct,footmisc}
\usepackage{multicol} % end-notes in two-columns

现在,在简短版本中,我不想使用上述某些内容,尤其是fnpctenotez和。我想消除所有出现的尾注标记(在文本中和末尾)。还有(甚至可能还有)更多与内容(文本)本身有关的更改(如在multicolfootmisc多个输出 PDF,但其中包含有限的信息)。

明显地,不是一个新问题!搜索并阅读以下相关问答:

但是,这些信息太多了,需要仔细阅读。对于初学者来说,有什么建议可以开始阅读吗?

更新

只是为了完整性,我使用http://www.scons.org/SConstruct以及编译文档的以下内容。它的工作方式很简单(另请参阅:https://tex.stackexchange.com/a/26573/8272)。

# make sure scons finds tex executables:
import os
environment = Environment(ENV=os.environ)

# xelatex
environment['PDFLATEX'] = 'xelatex'

# target and source:
pdf_short_cv = environment.PDF(target='cv_nikalexandris_short.pdf', source='short_cv.tex')
pdf_full_cv = environment.PDF(target='cv_nikalexandris_full.pdf', source='full_cv.tex')

# make sure that the pdf is reloaded properly (e.g., in Skim)
environment.Precious(pdf_short_cv)
environment.Precious(pdf_full_cv)

答案1

这是一个示意性的答案,因为您似乎渴望了解所涉及的原理,就像渴望得到答案一样。

对于简历,我喜欢将每个部分分成独立的文件,然后您可以\input根据需要添加或删除它们。您可以将其与一些布尔逻辑结合起来,以确定是否包含内容。在下面的示例中,您可以看到如何将条件子句添加到宏定义中以及如何\if直接使用 -constructions 进行操作。

因此,您需要在独立文件中添加一些“部分”:

% cv-associations.tex
\section{Associations}
\lipsum[1]

% cv-contact.tex
\section{Contact Info}
\lipsum[1]

% cv-education.tex
\section{Education}
\cvendnote{\lipsum[2]}%
\lipsum*[1]
\cvendnote{\lipsum[3]}%

% cv-outreach.tex
\section{Outreach}
\cvendnote{\lipsum[2]}%
\lipsum*[1]
\cvendnote{\lipsum[3]}%

% cv-presentation.tex
\section{Presentations}
\lipsum[1]

% cv-publications.tex
\section{Publications}
\lipsum[1]

% cv-teaching.tex
\section{Teaching}
\cvendnote{\lipsum[2]}%
\lipsum*[1]
\cvendnote{\lipsum[3]}%

然后你需要主文件:

\RequirePackage{etoolbox}% etoolbox's \bool*-related commands work with normal \if-related commands
\providebool{fullCV}% default: false
%\booltrue{fullCV}
%
\documentclass{article}
\usepackage{fontspec}
\usepackage{fontawesome,url,marvosym}

% An example of how you might conditionally load packages
\iffullCV
\usepackage{ebgaramond}
\else
\usepackage{libertine}
\fi

\usepackage{lastpage}
\usepackage{xcolor}
\usepackage{fnpct}
\usepackage{enotez}
\usepackage{multicol}
\usepackage{footmisc}
\usepackage{csquotes}
\usepackage{lipsum}% just for dummy text

% for things you sometimes want to \input
\newcommand{\cvinput}[1]{%
  \iffullCV
  \input{#1}
  \else\fi}

% conditionally include \endnotes
\newcommand{\cvendnote}[1]{%
    \iffullCV
    \endnote{#1}%
    \else\fi}


\begin{document}

% regular \input files will always be included
\input{cv-contact}

\input{cv-education}

\input{cv-publications}

% \cvinput files will only be included if \fullCVtrue is active
\cvinput{cv-presentations}

\input{cv-teaching}

\cvinput{cv-outreach}

\input{cv-associations}

\iffullCV
\printendnotes
\else\fi

\end{document}

现在您可以直接编译该文件,只需根据\booltrue需要取消注释该行即可。但之所以在行上方这样设置,\documentclass是因为您可以使用命令行通过一个命令编译两个文件。例如(假设文件名为multioutputCV.tex):

xelatex -jobname=CVfull "\newif\iffullCV\fullCVtrue\input{multioutputCV.tex}" && xelatex -jobname=CVshort "\newif\iffullCV\fullCVfalse\input{multioutputCV.tex}"

(但是,需要编译两次才能得到完整版本的尾注。)

应该会产生两个文件:CVshort.pdfCVfull.pdf。如果你愿意,你现在可以写一个Makefile,但这有点超出了这个问题的范围。

相关内容