我正在学习当老师,我正在准备一份文件,这是一门针对学校学生的课程。经验丰富的老师会对我的工作和教学技能进行评估。我的课程必须为他们提供额外的信息,
- 我的学生将看不到
- 我的老师可以方便地与课程一起阅读,以了解有关我为什么/如何以某种方式组织课程的更多信息
起初,我考虑编写双页 PDF:所有正面都包含学生课程,所有反面都包含教学和额外注释。这样,如果我只打印两页,我就能得到我的课程的学生版本!打印所有页面的正面和反面将在每个“反面”页面上提供关于下一个正面内容的更丰富的视图。
但手动执行此操作非常麻烦:我需要手动完成课程页面(清除页面),然后添加教学笔记,然后再次清除页面以继续课程。如果我必须添加超过 1 页的额外内容,则必须重新考虑我的所有页面逻辑。
您能否推荐一些方法,让我可以专心编写课程,只包括额外的教学笔记,并能够“隐藏”它们,不让学生看到,同时为教师提供更“完整”的版本?手动分页符是唯一的选择吗?设想一些可以“放在一边”并启用/禁用的脚注格式?
非常感谢!
答案1
新版本(教师注释在单独页面上)
我使用newfile
包将教师评语的文本(在环境中给出teachersonlyBox
)写入单独的文件\jobname.teachers
。其内容使用命令插入\instertteacherspages
,并使用 before 和 after 将其放在单独的页面上\clearpage
。也可以有多页教师笔记(见下面的示例)。当然,您也可以只使用\instertteacherspages
末尾的一次将所有笔记一次性插入到末尾。
您还可以定义除盒子之外的其他东西,就像我在下面的旧版本中所做的那样。
代码
\documentclass{article}
\usepackage{lipsum}
\usepackage{environ}
\usepackage{tcolorbox}
\usepackage{newfile}
\newoutputstream{teachers}
\newtoggle{teachersversion}
\toggletrue{teachersversion} % comment out for students version
\iftoggle{teachersversion}{%
\openoutputfile{\jobname.teachers}{teachers}
\NewEnviron{teachersonlyBox}{
\addtostream{teachers}{
\begin{tcolorbox}[
colframe = red!20,
colback = red!10,
coltitle = black,
title = {comment for teachers},
]
\BODY
\end{tcolorbox}
}
}
}{
\NewEnviron{teachersonlyBox}{}
}
\newcommand{\instertteacherspages}{
\iftoggle{teachersversion}{%
\closeoutputstream{teachers}
\clearpage
\input{\jobname.teachers}
\clearpage
\openoutputfile{\jobname.teachers}{teachers}
}{%
}
}
\begin{document}
\lipsum[1-3]
\begin{teachersonlyBox}
\lipsum[2]
\end{teachersonlyBox}
\lipsum[3-5]
\begin{teachersonlyBox}
\lipsum[5]
\end{teachersonlyBox}
\instertteacherspages
\lipsum[6-7]
\begin{teachersonlyBox}
\lipsum[8-11]
\end{teachersonlyBox}
\lipsum[8]
\begin{teachersonlyBox}
\lipsum[9]
\end{teachersonlyBox}
\instertteacherspages
\end{document}
结果
老师版本:
学生版本:
旧版本(中间有老师的注释)
一个简单的方法是,为教师版本的文本块定义一个命令\teachersonly
,然后根据您想要的版本更改定义。使用一些突出显示(如颜色或框)可能会很有用,因此我在示例中使用了红色文本。
我还添加了一个teachersonlyBox
环境,用 围绕文本添加一个框。如有必要,tcolorbox
我使用包来排除环境内容。comment
或者使用\teachersfootnote
使脚注仅对教师可见。
代码
\documentclass{article}
\usepackage{tcolorbox}
\newtoggle{teachersversion}
\toggletrue{teachersversion} % comment out for students version
\iftoggle{teachersversion}{%
\newcommand{\teachersonly}[1]{\textcolor{red}{#1}}
\newenvironment{teachersonlyBox}{
\begin{tcolorbox}[
colframe = red!20,
colback = red!10,
coltitle = black,
title = {comment for teachers},
]
}{
\end{tcolorbox}
}
\newcommand{\teachersfootnote}[1]{%
\textcolor{red}{\footnote{\textcolor{red}{teacher's note: #1}}}%
}
}{%
\usepackage{comment}
\newcommand{\teachersonly}[1]{}
\excludecomment{teachersonlyBox}
\newcommand{\teachersfootnote}[1]{}
}
\begin{document}
visible for all
\teachersonly{comments for teachers}
visible for all\teachersfootnote{foo}
\teachersonly{comments for teachers}
\begin{teachersonlyBox}
comments for teachers
comments for teachers
\end{teachersonlyBox}
\end{document}
结果
教师版:
学生版本:
答案2
我实际上会推荐一种不同的解决方案。通常,.tex
格式不是一种很好的源格式(因为没有 TeX 就无法正确解析它)。因此,如果您需要两个.pdf
s,则需要两个.tex
-files。我个人的建议如下:以不同的格式存储信息,例如.xml
或.dtx
(参见下面的示例),然后使用它们生成两个不同的.tex
-files,然后分别进行编译。
例如.dtx
: .dtx
是.tex
可用于生成多个源文件的格式文件。您可以找到更多在这篇 TUG 文章中,这里,这里以及 Google 上的更多信息。
步骤1。创建一个名为enr.dtx
:
\documentclass{article}
\begin{document}
\textbf{Problem 1.} What is ${ 2+2 }$?
% \iffalse
%<*teacher>
% \fi
\textbf{Answer.} 4.
% \iffalse
%</teacher>
% \fi
\textbf{Problem 2.} What is ${ 3 + 3 }$?
% \iffalse
%<*teacher>
% \fi
\textbf{Answer.} 6.
% \iffalse
%</teacher>
% \fi
% \iffalse
%<*stud>
% \fi
This is something only the students will see.
% \iffalse
%</stud>
% \fi
\end{document}
%\Finale
标签包围的所有内容<*teacher>...</teacher>
只有老师才能看到。
第2步。创建文件enr.ins
:
\input l3docstrip
\keepsilent
\askforoverwritefalse
\generate{\file{\jobname-stud.tex}{\from{\jobname.dtx}{stud}}}
\generate{\file{\jobname-teacher.tex}{\from{\jobname.dtx}{teacher}}}
\endbatchfile
步骤3..ins
像这样运行文件: pdftex enr.ins
。这将产生两个文件:enr-teacher.tex
\documentclass{article}
\begin{document}
\textbf{Problem 1.} What is ${ 2+2 }$?
\textbf{Answer.} 4.
\textbf{Problem 2.} What is ${ 3 + 3 }$?
\textbf{Answer.} 6.
\end{document}
和enr-stud.tex
:
\documentclass{article}
\begin{document}
\textbf{Problem 1.} What is ${ 2+2 }$?
\textbf{Problem 2.} What is ${ 3 + 3 }$?
This is something only the students will see.
\end{document}
请注意,我从文件中省略了一些注释。
步骤4。.tex
现在像平常一样编译这两个文件。
笔记。如果你是 TeX 新手,这可能有点复杂,但我真的建议使用与此类似的方法。你也可以使用.xml
或.html
文件格式,然后使用例如名为的 Python 库来处理它们Beautiful Soup