我是一名教师,使用 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 版本。但提供了前面的优势,因为你可以makefile
multiaudience
comment
合并/丢弃不同的受众,而不仅仅是选择其中一个。
下面是一个小例子。
\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
套餐,可在
您可以声明多个作者
\declareauthor{jon}{Jonathan}{blue}
并使用各种命令在文本中添加注释:
\comment[jon]{bla}% Inline comment
\annot[jon]{bla}% Margin comment
和别的。
draft
然后,你可以使用类选项或更细粒度的宏来控制显示的内容,例如
\onlyauthors{jon}