我正在写一本提到很多人的书。假设我在一页中提到了 Donald Knuth。我会:
... Donald Knuth\index{Knuth, Donald}
我在很多其他地方都提到过 Donald Knuth。现在看来我需要手动添加\index
我提到 Dr. Knuth 的所有地方。有没有办法让我只声明 Knuth 为索引术语并让此操作自动完成?
这与自动生成索引。
可惜的是,这个 29 行的程序https://github.com/themoodymann/IndexTex在索引方面过于激进。\index{}
当文本发生变化时,它也不会删除已插入的条目。
我想做以下事情:
- 定义所有我关心的名称。
- 当遇到名称时,让 LaTeX 自动索引名称。
- 可以选择在第一次引用时自动将名称变为斜体。
- 可以选择在第一次参考时自动添加出生日期和可能的死亡日期。
答案1
为每个感兴趣的名称定义一个宏,例如
\newcommand{\dknuth}{Donald Knuth\index{Knuth, Donald}}
\newcommand{llamport}{Leslie Lamport\index{Lamport, Leslie}}
并在您想要打印姓名的任何地方使用它。