我收到了一份长字文档,我必须将其移植到 Latex 中。在文档中,所有引文都以带有作者和年份的经典形式出现。就像是
Lorem ipsum dolor (Sit, 1998) amet, consectetur adipiscing (Slit 2000, Sed and So 2002, Eiusmod et al. 1976).
Tempor incididunt ut labore et dolore magna aliqua (Ut et al. 1312)
此引用需要获得正确的关键引用,因为它出现在围兜引用列表中。换句话说,文本应该翻译成
Lorem ipsum dolor \cite{sit1998} amet, consectetur adipiscing \cite{slit2000,sed2002,eiusmod1976}.
Tempor incididunt ut labore et dolore magna aliqua \cite{ut1312}
这意味着:
- 提取由括号中的名称和年份组成的所有字符串
- 去掉那一串空格、第二个名字(名字后面的所有内容)和大写字母
- 使用生成的字符串形成新的 \cite{string}
我知道这可能是一项相当复杂的任务。我想知道也许有人为此特定任务编写了脚本。或者,也欢迎任何部分建议。我目前在 MacOS 中工作。
以下
awk
程序应该可以工作。它( ... )
在每一行中查找元素并检查它们是否符合“author(s), year”或“author(s)1 year1, author(s)2 year2, ...”模式。如果是这样,它会创建一个引用命令并替换该( ... )
组;否则它会按原样离开组。调用程序
请注意,程序希望输入是“合理的”格式正确的,即一行上的所有括号都应该是一对匹配的(尽管允许在行首有一个右括号,不匹配的左括号将被忽略)。
另请注意,上面的某些语法需要 GNU awk。要移植到其他实现,请替换
和
并确保您已将排序规则语言环境设置为
C
.