我正在编写一本游戏手册,我想在边缘处添加关键概念的页码引用,例如这样的内容(来自 Justin Alexander 的《Legends and Labyrinths》):
我可以使用 \marginpar 来生成边注。但我希望每页每个关键概念只有一个边注。例如,上例中多次使用了单词 class,但只有一个边注。但在编写 LaTeX 源时,我不知道输出页码是什么。因此,例如,我可能会在两个不同的段落中使用单词 class。如果它们最终出现在同一页上,我只想要一个注释。如果它们最终出现在不同的页面上,我希望每页都有一个注释。
一种解决方案是等到我完成正文后,手动返回并添加边注,确保不会在任何给定页面上添加重复内容。但这需要大量工作,如果我需要在添加注释后编辑文档,我可能需要重做所有工作。所以我想知道是否有一种在 LaTeX 中自动执行此操作的方法。
我搜索过任何提供此类功能的软件包,但一无所获。我认为解决方案并不简单,但我愿意尝试编写自己的解决方案。话虽如此,我对 LaTeX/TeX 编程不是很了解,因此任何详细信息或参考资料都将不胜感激。谢谢,
答案1
该解决方案并不完美,因为它可以覆盖现有的计数器,所以应该避免使用诸如、、chapter
等名称。section
enumi
第一个参数是计数器的名称(我们的标签),第二个参数是边注的文本。
\documentclass{article}%
%The two following commands are only for smaller pages - PS
\textwidth6cm
\textheight4cm
\begin{document}
\makeatletter
\def\mparr#1#2{\@ifundefined{c@#1}
{\newcounter{#1}[page]
}
{}
\stepcounter{#1} \ifnum\value{#1}<2\marginpar{#2}
\fi
}
\makeatother
Bla bla bla \mparr{aaa}{aaa}
Bla bla bla \mparr{aaa}{aaa}
Bla bla bla \mparr{aab}{bbb}
Bla bla bla \mparr{aab}{bbb}
\newpage
Bla bla bla \mparr{aaa}{aaa}
Bla bla bla \mparr{aaa}{aaa}
\end{document}
它需要 e-tex,因为我们需要很多计数器。但大约 500 个小于 30k。如果您的 TeX 安装不是太旧,则无需执行额外操作即可访问。