自动更正列表

自动更正列表

我有一份文档的版本,我想创建一个新版本并修改其中的几处内容。

创建更正列表的最佳方法是什么?

我想用某个命令(例如\wrong{ })封装“错误”文本,然后用其他命令(例如\fixed{ })封装更正后的文本。然后我可以 (a) 自动按每个更正的页面和部分获取更正列表,以及 (b) 切换更正版本的显示。

有没有什么类似的东西我可以用?

谢谢。

编辑:我使用了评论中提出的帖子并进行了修改,如下所示:

编辑 2:根据回复,我也对此进行了更正,以备将来使用。因此,此代码片段现在可以正常工作。

\documentclass{journal}

\long\def\addto#1#2{\expandafter\def\expandafter#1\expandafter{#1#2}}
\def\correctionslist{}

\long\def\rightwrong#1#2{#1\edef\curpos{\arabic{section}.\arabic{subsection}}\expandafter\global\expandafter\addto\expandafter\correctionslist\expandafter{\curpos: RIGHT: #1\\ WRONG: #2  \par}}


\begin{document}
\newcommand{\curpos}{\arabic{section}.\arabic{subsection}}
\section{How to make cookies}
\subsection{Why do we want cookies?}
Cookies are tasty.

\rightwrong{
    We like any type.
}
{
    But only if they're Oreos.
}
\subsection{How do we make them?}
We need flour and sugar.
\rightwrong{
    Some sugar will suffice.
}
{
    Lots of sugar.
}

\section{List of corrections}
\correctionslist 

\end{document}

在此处输入图片描述

问题是,\curpos只有调用 时才会计算\correctionslist,因此 section.subsection 编号是错误的。我该如何解决这个问题?

再次感谢。

答案1

一种方法是在\curpos内定义。 确保所有宏都会立即展开,因此当前位置确实被保存了。此外,还应添加一些宏以确保在调用时展开。\rightwrong\edef\edef\expandafter\curpos\rightwrong

\long\def\rightwrong#1#2{#1\edef\curpos{\arabic{section}.\arabic{subsection}}\expandafter\global\expandafter\addto\expandafter\correctionslist\expandafter{\curpos: RIGHT: #1\\ WRONG: #2  \par}}

还有一些其他的事情需要做才能使输出看起来更好(例如,分离不同的条目,添加\noindent),但我猜相应的修改应该是“容易的”。

编辑:添加了一些在调用时直接评估的\expandafter内容。\curpos\rightwrong

相关内容