我希望排版一份文档并且只在输出中包含一个特定环境的出现。
我尝试过使用comment
包并将 放在\begin{comment}
之后\begin{document}
和\end{comment}
之前\end{document}
。然后我重新定义了我想要包含的环境,使其以 开头\end{comment}
和以 结尾\begin{comment}
。这样,只有这个环境应该被取消注释。它编译得很好,但没有输出任何页面。
另一个选择可能是使用tagging
包,但据我所知,这可以让你排除某些部分。我想做相反的事情,只包括某些部分。
编辑:背景是我正在写一篇语言学论文,论文中有大量带注释和编号的例子(带有详细的词素逐个翻译的句子)。总共有大约 100 个例子分布在文本中,它们都位于包example
的环境中covington
。我想生成一个仅包含例子的文档,以便更仔细地校对它们,并根据转录的录音进行检查。
答案1
您可以使用xcomment
包。将要排版的环境放在\xcomment
宏的参数中,例如:
\xcomment{enumerate} %% only enumerate environment is typeset
代码:
\documentclass{article}
\usepackage{xcomment}
\xcomment{enumerate} %% only enumerate environment is typeset
\begin{document}
\begin{enumerate}
\item Enumerate item
\end{enumerate}
\begin{itemize}
\item itemize item
\end{itemize}
\begin{figure}
A figure
\end{figure}
\begin{table}
A table
\end{table}
\end{document}
答案2
如果你的文档不是那么大,你可以使用environ
包裹:
\documentclass{article}
\usepackage{environ}
% environ: 2013/04/01 v0.3 and earlier
\makeatletter
\providecommand{\env@itemize@save@env}{}
\providecommand{\env@itemize@process}{}
\providecommand{\env@figure@save@env}{}
\providecommand{\env@figure@process}{}
\providecommand{\env@table@save@env}{}
\providecommand{\env@table@process}{}
\makeatother
\RenewEnviron{itemize}{}% De-activate itemize
\RenewEnviron{figure}[1][]{}% De-activate figure
\RenewEnviron{table}[1][]{}% De-activate table
\begin{document}
\begin{enumerate}
\item Enumerate item
\end{enumerate}
\begin{itemize}
\item itemize item
\end{itemize}
\begin{figure}
A figure
\end{figure}
\begin{table}
A table
\end{table}
\end{document}