从单个 LaTeX 文件创建课堂幻灯片的两个 PDF 版本:教师和学生

从单个 LaTeX 文件创建课堂幻灯片的两个 PDF 版本:教师和学生

有没有办法创建一个单一文档,以两种不同的方式(不同的前言)处理 LaTeX 文件并产生两个不同的输出。

具体来说,我想制作一套课堂幻灯片,一套供我使用,一套供学生使用。

学生版会将覆盖层压平,并在页面上放置 4 张幻灯片。我希望这有意义。

答案1

这个答案并没有解决你的特定的投影机问题,而是讨论了一般的问题:开发一种以两种截然不同的方式有条件地编译源文档的方法。

我们用我所在组织的报告模板来实现这一点。只需更改一个单词,就可以将组织报告(包含封面、强制性政府表格、分发清单、文本中的图表和表格)更改为手稿形式,该手稿形式消除了封面,删除了表格和分发清单,同时保留了关键字(也是政府表格的一部分)等内容,并在报告末尾收集了表格和图表。当然,页边距、字体等也都不同。

模板的基本结构将是这样的,它提供条件编译,取决于以下两个设置中的哪一项\PREPARETYPE

%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
% Choose desired document format HERE!:
\def\PREPARETYPE{\DOCTYPEA}%            choices: {\DOCTYPEA} or {\DOCTYPEB}
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
%% Set up for possible DOCTYPEA format:
\newcommand\DOCTYPEA{
  \documentclass{MyOrgClass}
  \usepackage{packages for DOCTYPEA}
  \def{settings peculiar to DOCTYPEA}
  \macros peculiar to initializing DOCTYPEA
}
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
%% Set up for possible DOCTYPEB format:
\newcommand\DOCTYPEB{
  \documentclass{article or whatever class is desired for DOCTYPEB}
  \usepackage{TYPEA2TYPEB} % <--- ESSENTIAL TO INTERCEPT/INTERPRET MyOrgClass MACROS
  \usepackage{packages for DOCTYPEB}
  \def{settings peculiar to DOCTYPEB}
  \macros peculiar to initializing DOCTYPEB
}
\PREPARETYPE
%...common preamble commands
\begin {document}
%... document text, figures, tables, etc.
\end {document}

然而,要使这种安排发挥作用,关键在于您需要开发一种风格,在本 MWE 中,这种风格被称为TYPEA2TYPEB.sty。具体来说,它的唯一功能是创建具有与 中出现的相同非标准名称的宏,MyOrgClass并提供 应如何解释它们\DOCTYPEB。在许多情况下,它可能是一个空定义{},就像\DOCTYPEA消除的功能一样\DOCTYPEB。在其他情况下,必须提供一个新的非空定义。

虽然我们的情况不需要它,但是如果所使用的类也使用非标准宏,我想可能还需要在宏定义TYPEB2TYPEA.sty中包含一种样式。\DOCTYPEA\DOCTYPEB

虽然这个答案不能解决您的问题,但它提供了一种生成两个格式截然不同的文档的方法,只需更改源文件中的一个单词即可实现。

我附上一张图,显示来自同一来源的两份文件。左边是手稿表格,右边是组织报告表格。我这样做只是为了强调使用这种方法可能产生的巨大结果差异。

在此处输入图片描述

相关内容