我正在寻找一种标准化的方法,将内联作者注释插入到 LaTeX 文档中,而这种方法不需要环境的视觉开销comment
。
我经常想在文档中插入小注释,这样就可以轻松地将其隐藏在最终输出中,同时将其保留在我的“个人”版本中。
该comment
软件包提供了这一点;然而,其基于环境的语法并不特别适合小型内联注释,例如
Lorem ipsum dolor sit amet, consetetur sadipscing elitr,
sed diam nonumy eirmod tempor
\begin{comment}
Labook p431.
\end{comment}
invidunt ut labore et dolore magna aliquyam erat, sed diam voluptua.
最好使用像\footnote
命令这样紧凑的命令。从技术上讲,这很容易做到,例如
\usepackage{ifdraft}
\usepackage{xcolor}
\newcommand{\inlinecomment}[1]{%
\ifoptionfinal{}{\textcolor{black!50!white}{/* #1 */}}%
}
但我更喜欢一种解决方案,该解决方案由某些包预先定义,以便于跨文档的可移植性。
根据我的经验,如果是针对每个文档的黑客攻击,我将要最终改变命令的名称或其参数签名,然后当我尝试组合来自不同文档的内容时,就会遇到麻烦。
答案1
\nb
这是一个提供内联注释( )和环境样式块注释( )的小包\NB
。您可以通过重新定义来设置注释样式\nbstyle
。
默认情况下,注释是隐藏的;如果您将show
选项传递给包,则它们将显示,如示例中所示。
包裹
\NeedsTeXFormat{LaTeX2e}
\ProvidesPackage{notabene}[2022/04/11 simple
inline comments, can be switched on or off]
\newif\ifnb
\nbfalse
\DeclareOption{show}{\nbtrue}
\ProcessOptions\relax
\NewDocumentCommand{\nbstyle}{}{\sffamily}
\NewDocumentCommand{\nb}{ m }{\ifnb{\nbstyle#1}\fi}
\RequirePackage{environ}
\NewEnviron{NB}{\nb{\BODY}}
\endinput
示例文档
\documentclass{article}
\usepackage[show]{notabene}
\begin{document}
I am saying this.\nb{But I \emph{mean} this.}
I could list several ideas.
\begin{NB}
Existentialism?
Transubstantiation?
Denuclearization?
\end{NB}
\end{document}
答案2
这是使用该包的一个选项scontents
:
\documentclass{article}
\usepackage{scontents}
\setlength{\parindent}{0pt}% Just for this example
\begin{document}
\section{Document with hidden comments}
Lorem ipsum dolor sit amet, consetetur sadipscing elitr,
sed diam nonumy eirmod tempor
\begin{scontents}
Labook p431.
\end{scontents}
invidunt ut labore et dolore magna aliquyam erat, sed diam voluptua.
\Scontents{Labook p433}
some more text here
\section{Only comments}
% now print
\getstored[1]{contents}\par
\getstored[2]{contents}
\end{document}
修改包选项[print-all]
\documentclass{article}
\usepackage[print-all]{scontents}
\setlength{\parindent}{0pt}% Just for this example
\begin{document}
\section{Document with hidden comments}
Lorem ipsum dolor sit amet, consetetur sadipscing elitr,
sed diam nonumy eirmod tempor
\begin{scontents}
Labook p431.
\end{scontents}
invidunt ut labore et dolore magna aliquyam erat, sed diam voluptua.
\Scontents{Labook p433}
some more text here
\section{Only comments}
% now print
\getstored[1]{contents}\par
\getstored[2]{contents}
\end{document}