我为 JabRef 创建了一个 .jstyle 布局文件(我使用的是 JabRef 2.11.1 版),用于格式化期刊的引用,佛罗里达昆虫学家(FL_Ent)。虽然目前(2015 年 3 月 25 日)的 FL_Ent 手稿格式指南未能规定书籍版本应如何格式化,但参考文献列表中,早期版本的格式指南(2013 年 7 月 28 日)规定版本应写为序数词,后跟“edn”。因此,一本书的第二版应格式化为“书名,第 2 版。我想知道如何在 JabRef .jstyle 文件的上下文中将数字转换为它们的序数类似物。例如,我需要将数字“2”转换为“2nd”。格式化程序似乎Replace
可以用于此,因为它允许搜索正则表达式模式。但是,我认为它的实际替换功能过于严格,无法以一般方式应用,因为它仅用静态字符串替换匹配的文本,因此,2nd、3rd、4th 等都必须单独处理。有没有办法使用Replace
,或其他 JabRef 格式化程序,以便一个命令可以处理所有序数替换?
Replace
下面是在 .jstyle 布局文件中使用格式化程序的示例:“ \format[Replace(\s,_)]{\author}
: 将在将所有空格替换为下划线后输出“作者”字段。”
Replace 格式化程序的类描述如下:“执行正则表达式替换的格式化程序。要使用此格式化程序,必须给出一个由两部分组成的参数。各部分以逗号分隔。要指示逗号字符,请使用转义序列:\,... 第一部分是要搜索的正则表达式。... 第二部分是要替换所有匹配项的文本。”(http://api123.io/api/JabRef/head/net/sf/jabref/exporter/layout/format/Replace.html)
答案1
一旦合并,JabRef 主分支中将有一个名为 Ordinal 的格式化程序...然后只需编写即可:
\format[Ordinal]
答案2
我不知道一般情况下是否有这样的功能,但为什么不重复几个替换函数呢?这只是一些(隐藏的)代码:
\begin{edition}
\format[Replace(1,1st),Replace(2,2nd),Replace(3,3rd)...]
{\edition}, \end{edition}
-> 在几乎所有情况下,这都应该可以为你解决问题。