包裹

包裹

我正在寻找一种标准化的方法,将内联作者注释插入到 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}

打印全部

相关内容