来自一个 TeX 文件的同一篇论文的网络版和印刷版

来自一个 TeX 文件的同一篇论文的网络版和印刷版

我正在用 LaTeX 写一篇学期论文,其中包含一些使用外部工具创建的图表。这些图表有位图和矢量格式。当然,理想情况下我想使用矢量版本,但这些版本相当大(每个版本高达 40 MiB),如果我包含这些版本而不是位图版本,那么论文的最终 PDF 将远远超过 100 MiB。

这本身不是问题。但是,我必须以纸质和电子形式(通过电子邮件)提交论文,而通过电子邮件发送如此大的文件可能会有问题。因此,我想知道是否有一种简单的(!)方法可以从同一个 TeX 文件生成两个版本的论文,一个用于打印(使用矢量图形),一个用于通过电子邮件发送(“网络版本”,使用位图图形)。TeX 文件已经准备好了,我只需要“拨动开关”即可生成任一版本,但我无法同时生成两个版本,并使用不同的名称。

我想避免使用 makefile 等;我的工作流程基于 Windows 上的 TeXstudio,因此纯 TeX(当然,LaTeX 也可以)是最好的。我看过\input\include,但我想知道是否有任何技巧或最佳当前实践,理想情况下,我只需要运行xelatex termpaper.tex左右即可获得termpaper-web.pdftermpaper-print.pdf

对于这个相对开放的问题,我深表歉意。提前致谢!

答案1

您可以尝试这样的方法。

\newcommand{\printversion}[1]{
   \includegraphics[width=whatever]{#1.bmp}
}

\renewcommand{\printversion}[1]{
    \includegraphics[width=whatever]{#1.pdf}
}

然后,无论您想将文件包含在哪里,您都可以调用\printversion{filename_without_extension}它,它会打印其中之一。\renewcommand如果您想使用 bmp,只需注释掉它,或者保留它以使用 pdf。

您需要将矢量图形从 SVG 转换为 PDF。如果您愿意付出所有努力,您可以安装 inkscape 并使用它\usepackage{SVG}自动将 SVG 转换为 pdf,但设置过程有点麻烦。如果您只有少量图形,我建议您首先使用您制作 SVG 时使用的任何工具手动完成。


编辑:

寻找一个更漂亮的解决方案,你可以将其嵌套到 if 语句中,例如

\newif\ifvectors%name of conditional is 'vectors' appended to 'if'

\vectorsfalse%the conditional 'vectors' to 'false' or 'true'

\ifvectors
   \def\printext{.pdf}
\else
   \def\printext{.bmp}
\fi

\newcommand{\printversion}[1]{
   \includegraphics[width=whatever]{#1\printext}
}

相关内容