马春杰杰 Exit Reader Mode

LaTeX如何进行批注?

不得不说,Word的协作功能真的很好用,尤其是搭配office 365,不过由于科研需要,有些场景必须使用LaTeX,给学生改稿子又必须要用审阅模式。所以摸索了几种方法,供大家使用。

1、changes包

在文档开头加上:

\usepackage{changes}
\usepackage{lipsum}
\definechangesauthor[name={Chunjie Ma}, color=red]{chunjie}

1.1 基本格式

\added[id=chunjie]{Need to modify the abbreviations}

1.2 基本命令

changes 包提供了一些用于插入修改、删除内容和添加注释的命令:

命令 功能
\added{...} 添加内容,显示为标记
\deleted{...} 删除内容,显示为删除线
\replaced{新内容}{旧内容} 替换内容,用新内容替换旧内容
\highlight{...} 突出显示一段内容
\comment{...} 添加评论
\setaddedmarkup{...} 自定义添加内容的样式
\setdeletedmarkup{...} 自定义删除内容的样式

1.3 指定作者

如果有多位作者,可以为每个作者定义不同的标记样式:

\usepackage{changes}

\definechangesauthor[name={Alice}, color=blue]{alice}
\definechangesauthor[name={Bob}, color=red]{bob}

% 使用指定作者的命令
\added[id=alice]{这是 Alice 添加的内容。}
\deleted[id=bob]{这是 Bob 删除的内容。}
\replaced[id=alice]{新内容}{旧内容}
\comment[id=bob]{这是 Bob 的评论。}

1.4 显示变更记录

这个比较有用,可以放在文档开头,这样一眼就知道修改了哪些地方。

\listofchanges

1.5 自定义样式

可以自定义标记的样式,例如颜色或格式

% 修改添加内容的标记样式
\setaddedmarkup{\textbf{#1}}

% 修改删除内容的标记样式
\setdeletedmarkup{\sout{#1}}

如果不希望显示删除内容,可以设置为空

\setdeletedmarkup{}

1.6 其他问题

(1)如何隐藏所有标记?

在导言区加载 changes 包时使用 final 选项:

\usepackage[final]{changes}

(2)多位作者的协作审阅如何实现?

定义多位作者的 ID,并在文档中按需使用对应的命令,例如 \added[id=author]{...}

2、todonotes包

很简单,加载包:

\usepackage{todonotes}

2.1 文档边缘加批注

\todo{这是一个TODO事项}

这个就类似于Word中的批注了~

2.2 行内批注

\todo[inline]{行内的TODO事项:需要检查这一段是否有错误。}

这个就类似于Word中审阅的增删文字

2.3 自定义选项

todo 命令支持多种自定义选项,可以灵活调整样式和布局。

(a)自定义背景颜色

通过 color 选项设置背景颜色:

\todo[color=yellow!30]{这是一个黄色背景的TODO事项}

(b)改变大小

可以通过 size 选项设置 TODO 的文字大小:

\todo[size=\small]{小字体的TODO}

\todo[size=\footnotesize]{脚注字体的TODO}

(c)禁用 TODO 显示

如果你希望暂时隐藏所有 TODO 标记,可以使用 disable 选项:

\usepackage[disable]{todonotes}

这会完全禁用 todo 命令的功能,适合在文档最终版中使用。

(d)全局设置默认选项

可以通过 setuptodonotes 修改 todonotes 的全局默认行为。例如:

\setuptodonotes{color=green!20, size=\small}

这样,所有的 TODO 事项都会以绿色背景和小字体显示。

2.4 生成 TODO 列表

listoftodos 命令会在文档中生成一个 TODO 项的目录或列表,列出所有 TODO 事项的位置和内容

\listoftodos % 生成 TODO 列表

效果的话,类似这样:

TODOs:
1. 补充背景信息。 (在第 2 页)
2. 分析实验数据。 (在第 3 页)

如果不想在列表中显示,则使用:

\todo[nolist]{这个批注不会显示在待办事项列表中。}

2.5 其他用法

(a)给特定人添加

可以通过给 TODO 事项加标签或名字来区分不同作者的任务。例如:

\newcommand{\john}[1]{\todo[color=blue!20]{John: #1}}
\newcommand{\mary}[1]{\todo[color=red!20]{Mary: #1}}
\john{这段需要重新修改!}
\mary{这个地方需要补充实验数据。}

(b)推荐

\setlength{\marginparwidth}{1.3cm}
\usepackage{todonotes}
\newcommand{\ltodo}[1]{\todo[inline, color=green!20]{#1}}
\newcommand{\td}[1]{\todo[color=yellow!10, linecolor=red]{\textcolor{red}{#1}}}
\setuptodonotes{size=\scriptsize}