将外部注释添加到 Latex 文档中

将外部注释添加到 Latex 文档中

我经常与其他作者合作撰写科学论文,使用版本控制系统 (mercurial) 来管理写作。当其中一位作者想要添加注释时,我们会使用稍微增强的版本marginpar。问题在于,为了避免“污染”源代码,注释一旦解决就会被删除,这有时会使跟踪更改变得困难(即使使用 mercurial,因为修订与注释没有直接关系)。

因此,我想知道是否存在一种方法可以在 Latex 文档中添加“外部”注释,这些注释不在源代码中,但可以在编译时包含在内,通过绝对引用(例如,file.tex 的第 140 行)或相对引用(例如,在\label{lab})。

例如,我可以在与introduction.tex相同的目录中放置以下文件:

注意 1,第 237 行,introduction.tex:此定义在此特殊情况下不起作用

已通过提交 23 解决

注 2 \ref{def:test}:此定义仍然需要适用于这种特殊情况

待办的

当编译文件introduction.tex时,我可以指示包含前一个文件,该文件会自动将注释2添加为边距,因为它处于待处理状态。

答案1

在此处输入图片描述

主文件

\documentclass{article}
\def\noteref#1#2{\csname noteref#2\endcsname{#1}}

\def\noterefSOLVED#1#2#3{}

\def\noterefPENDING#1#2#3{%
  \expandafter\def\csname noteref-#1\endcsname{\marginpar{#3}}}

\let\oldlabel\label
\def\label#1{%
\oldlabel{#1}%
\csname noteref-#1\endcsname}


\input{\jobname-notes}

\begin{document}

\section{intro\label{aa}}

stuff here stuff here stuff here stuff here stuff here stuff
stuff here stuff here stuff here stuff here stuff here stuff
stuff here stuff here stuff here stuff here stuff here stuff
stuff here stuff here stuff here stuff here stuff here stuff
\begin{enumerate}
\item thing one\label{bb}
\item thing two\label{cc}
\end{enumerate}
stuff here stuff here stuff here stuff here stuff here stuff
stuff here stuff here stuff here stuff here stuff here stuff
stuff here stuff here stuff here stuff here stuff here stuff
stuff here stuff here stuff here stuff here stuff here stuff
stuff here stuff here stuff here stuff here stuff here stuff

\end{document}

我在注释文件中使用了 TeX 标记以使其更容易,这样就可以解析您建议的纯文本,但 TeX 在 TeX 标记方面更胜一筹 :-)

\noteref{aa}{SOLVED}{by commit 23}
{This definition does not work in this special case}


\noteref{bb}{PENDING}{}
{This definition still needs to work this special case}

相关内容