1 次编译,多次输出

1 次编译,多次输出

我是一名教师,使用 PdfTeX 编写课程。我的问题如下:如何编译我的 .teX 文件并生成 Pdf 文件:课程本身,以及同一文档的一两个摘录(我选择的)。通常,我会编辑整个课程,并在整个文档中为自己添加注释,但我想只向我的学生提供其中的部分内容(并且不带注释)谢谢

附录帖子评论:让我更具体一点:假设有这样一个文档:

\begin{document}

    \begin{tabular}
        Big array
    \end{tabular}

\begin{note for self}
  here should be done ex 2 p75
\end{note for self}

bla bla bla
\end{document}

然后编译。所需输出的性质(.pdf):

1) 正常(包含文档中提供的所有内容)供我个人使用。

2) 相同的文件,但不包括“自备便条”。供学生使用。

3) 如果可能的话,第三个输出仅包含数组。其他学生可以剪下来并贴在笔记本上。(在代码中我没有使用虚构的代码,因为我不知道如何引用它)。

我希望我的情况现在更清楚一点了。

答案1

multiaudience包可以作为包的替代品。除非你将它们隐藏在或任何其他脚本系统comment中,否则你还需要几个编译才能获得任何 pdf 版本。但提供了前面的优势,因为你可以makefilemultiaudiencecomment合并/丢弃不同的受众,而不仅仅是选择其中一个。

下面是一个小例子。

\documentclass{article}
\usepackage{multiaudience}

% Declare all possible audience groups
\SetNewAudience{teachers}
\SetNewAudience{students}
\SetNewAudience{public}

%You can decide the desired audience inside the document
%\DefCurrentAudience{public}

\begin{document}

% this array is always included
\begin{tabular}{c}
  All: First sentence seen by all audiences
\end{tabular}

% only for teachers
\begin{shownto}{teachers}
  Teachers: This text is seen only by teachers
\end{shownto}

% only for teachers and students
\begin{shownto}{public, students}
  Public,students: This text is seen by public and students but not teachers.
  \begin{shownto}{-,students}
  -students: But this one only by public
  \end{shownto}
\end{shownto}

% for all audiences except teachers
\begin{shownto}{-, teachers}
  -teachers: all except teachers.
\end{shownto}

\end{document}

.tex您可以将其作为编译参数传递,而不必在文件内部固定受众:

pdlatex "\def\CurrentAudience{students}\input{your-tex-file}"

答案2

可以使用comment如下包来完成:

\documentclass{article}
\usepackage{comment}

% Include custom environments before they are included/excluded
\specialcomment{teachersnote}{}{}
\specialcomment{notinsummary}{}{}

% Comment out as needed
\excludecomment{teachersnote}
\excludecomment{notinsummary}

\begin{document}

% this array is always included
\begin{tabular}{c}
  Big array
\end{tabular}

\begin{teachersnote}
  here should be done ex 2 p75
\end{teachersnote}

\begin{notinsummary}
  bla bla bla
\begin{teachersnote}
  this is a note inside a non-summary section.
\end{teachersnote}
\end{notinsummary}
\end{document}

以独立于平台的方式创建 3 个 pdf 的最简单方法可能是创建 3 个不同的文件并用来\input放置文档正文。


例子:

编译(放入 shell 脚本/批处理文件,或手动完成):

pdflatex teachersversion.tex
pdflatex studentsversion.tex
pdflatex studentssummaryversion.tex

序言.tex:

\documentclass{article}
\usepackage{comment}

% Include custom environments before they are included/excluded
\specialcomment{teachersnote}{}{}
\specialcomment{notinsummary}{}{}

正文.tex:

\begin{document}

% this array is always included
\begin{tabular}{c}
  Big array
\end{tabular}

\begin{teachersnote}
  here should be done ex 2 p75
\end{teachersnote}

\begin{notinsummary}
  bla bla bla
\begin{teachersnote}
  this is a note inside a non-summary section.
\end{teachersnote}
\end{notinsummary}
\end{document}

教师版本.tex:

\input{preamble}

% Comment out as needed
% \excludecomment{teachersnote}
% \excludecomment{notinsummary}

\input{body}

学生版本.tex:

\input{preamble}

% Comment out as needed
\excludecomment{teachersnote}
% \excludecomment{notinsummary}

\input{body}

学生摘要版本.tex:

\input{preamble}

% Comment out as needed
\excludecomment{teachersnote}
\excludecomment{notinsummary}

\input{body}

答案3

一些无耻的自我推销:还有我的commenting套餐,可在

https://github.com/bordaigorl/latex-commenting

您可以声明多个作者

\declareauthor{jon}{Jonathan}{blue}

并使用各种命令在文本中添加注释:

\comment[jon]{bla}% Inline comment
\annot[jon]{bla}% Margin comment

和别的。

draft然后,你可以使用类选项或更细粒度的宏来控制显示的内容,例如

\onlyauthors{jon}

相关内容