我正在使用以下
\newcommand{\PERSONALNOTE}[1]{\textcolor{red}{#1}}
用于在写作时插入个人笔记;这样我就可以在构建最终文章时将其关闭,只需将行更改为
\newcommand{\PERSONALNOTE}[1]{}
问题是这个代码很脆弱。我不能创建段落(双行换行)。我想把它转换成类似于
\newtheorem{pnote}{Personal Notes}
pnote
这样更好,因为我有编号,但是当我想构建无注释的最终版本时,我不知道如何关闭这些块。
答案1
您使用的 show 不是真实环境(例如\begin{pnote} ... \begin{pnote}
:),而是带有一个参数的宏(\pnote{....}
)。
尽管您想要的可以通过宏轻松完成,如显示 David 的评论,但对于包含多个段落的长注释,可能还有列表、表格等,真实环境会更方便。一个原因是没有空行的问题,但也许更重要的是 stard 和 end 都是语义上有意义的。在长注释中,借助宏很难看到参数在哪里结束,或者}
当在之前的几行中没有任何参数时,到底是什么关闭了一个孤独的{
行(如果有很多行,也是如此,尽管一些编辑器可以帮助完成这项任务,突出显示正确的行)。
创建一个真实的环境非常容易:
\documentclass{article}
\usepackage{xcolor,lipsum}
\newenvironment{pnote}{\color{blue}}{}
\begin{document}
\lipsum[1]
\begin{pnote}
\lipsum[2-3]
\end{pnote}
\lipsum[4]
\end{document}
如果您想将个人笔记隐藏为verbatim
包的注释,最简单的方法是加载包和 \let\pnote\comment
(\let\endpnote\endcomment
如果您在环境定义的第二个参数中输入了一些内容pnote
)。如果您想将它们转换为普通文本而不是隐藏,显然您可以\renewenvironment{pnote}{}{}
甚至\let\pnote\normalsize
。
另一方面,似乎你也希望对笔记进行编号,因此 MWE 可以以如下形式结束:
\documentclass{article}
\usepackage{verbatim}
\usepackage{xcolor}
\usepackage{lipsum}
% to show notes in blue with counter
\newcounter{personaln}
\newenvironment{pnote}{\color{blue}
\stepcounter{personaln}
\par\bigskip\noindent{\bfseries Personal note \arabic{personaln}:}
\par\medskip}{\par\medskip}
% Uncomment the next line to show notes as normal text
% \renewenvironment{pnote}{}{}
% Uncomment the next lines to hide the notes
% \let\pnote\comment
% \let\endpnote\endcomment
\begin{document}
\large
\lipsum[1]
\begin{pnote}
\lipsum[2-3]
\end{pnote}
\lipsum[4]
\end{document}
话虽如此,隐藏/取消隐藏笔记也很容易使用 todonotes。