使用“changes”包,是否可以删除或重命名包自动添加的“匿名作者”?
使用时
\definechangesauthor[name={My Name}, color=orange]{me}
\listofchanges[style=summary, title={Corrections Summary}]
我看到列出了两个作者,一个是通过命令添加的“我(我的名字)” definechangesauthor
,第二个是“匿名”,如下所示:
Author: anonymous
No changes.
Author: me (My Name)
Added . . . . . . . . . . . . . . 4
Deleted . . . . . . . . . . . . . 2
Replaced . . . . . . . . . . . . 7
Highlighted . . . . . . . . . 0
Commented . . . . . . . . . 0
我要么希望能够删除空的“匿名”块,要么更好的是能够将“匿名”重命名为我的名字,从而避免\definechangesauthor
完全使用。
但是,我在文档中没有看到有关该包执行此操作的任何内容。
有什么建议么?
答案1
您可以重新定义宏\changesanonymousname
。如果您使用babel
包,则需要将重新定义后 \begin{document}
因为changes
包告诉babel
在期间用当前语言设置预定义名称\begin{document}
。
梅威瑟:
\documentclass{article}
\usepackage[english]{babel}
\usepackage{changes}
\begin{document}
\def\changesanonymousname{Tom Carpenter}
abc
\added{def}
\deleted{klm}
xyz
\listofchanges[style=summary, title={Corrections Summary}]
\end{document}
结果:
答案2
第一个解决方案。更改 的定义\changesanonymousname
。请注意,这里没有上标“Id”,因为这里只有一位作者(匿名改名为 Bob):
\documentclass{article}
\usepackage{changes}
\def\changesanonymousname{Bob}
\begin{document}
Hello world \added{Text added}
\listofchanges[style=summary, title={Corrections Summary}]
\end{document}
如果要将默认颜色更改为橙色:
\documentclass{article}
\usepackage[defaultcolor=orange]{changes}
\def\changesanonymousname{Bob}
\def\changesauthorname{\color{orange}Author}
\begin{document}
Hello world\added{Text added by Bob}
\listofchanges[style=summary, title={Corrections Summary}]
\end{document}
第二种解决方案。尝试“删除”匿名作者。匿名作者仍然存在,但他是“不可见的”,直到id
输入不带选项的命令(例如\added{text added}
)。
\documentclass{article}
\usepackage{changes}
\definechangesauthor[name={My Name}, color=orange]{me}
\usepackage{xpatch}
\makeatletter
\xpatchcmd{\listofchanges}{\changesauthorname: \changesanonymousname}{}{}{}
\xpatchcmd{\listofchanges}{\parbox{\Changes@summary@width}{\changesnochanges}\\[1ex]}{}{}
\makeatletter
\begin{document}
Hello world\added[id=me]{Text added by me}
\listofchanges[style=summary, title={Corrections Summary}]
\end{document}
答案3
我针对这个问题开了一个issue:
https://gitlab.com/ekleinod/changes/-/issues/107
正如我在那里写的:
为了尽快实现此目的,只需使用:
\AtBeginDocument{\def\changesanonymousname{your name}}
这也应该在序言中起作用。
但这仅影响变更的摘要列表。
我认为,使用\usepackage[authormarkuptext=name]{changes}
名称时也应该出现“匿名”。目前,匿名作者的名称也是空的。
更新 2021-07-07:
该问题已关闭,从 v4.2.0 开始有一个命令
\setanonymousname
将匿名作者的名字设置为您选择的名字。
v4.2.0 于 2021-07-07 上传至 CTAN,通常应在 2-5 天内出现在发行版中。