工具模式下的 Biber 用于对字段进行排序之内默认情况下按字母顺序排列条目(不是:BIB 文件中的条目!)。较新版本的 Biber 默认采用相当奇怪的排序。是否可以恢复按字母顺序排序?
对于我运行的所有示例biber --tool --output_file out.bib input.bib
。
输入:
@REPORT{Self2016,
DATE = {2016},
TITLE = {The title},
AUTHOR = {Self, My}
}
比伯 2.5和2.6 正确排序:
@REPORT{Self2016,
AUTHOR = {Self, My},
DATE = {2016},
TITLE = {The title},
}
但是,其他字段不按字母顺序排序,例如URL
:
输入:
@REPORT{Self2016,
DATE = {2016},
TITLE = {The title},
AUTHOR = {Self, My},
URL = {http://example.net}
}
Biber 2.5 正确排序:
@REPORT{Self2016,
AUTHOR = {Self, My},
DATE = {2016},
TITLE = {The title},
URL = {http://example.net},
}
Biber 2.6 没有(URL
应该是最后一个):
@REPORT{Self2016,
AUTHOR = {Self, My},
URL = {http://example.net},
DATE = {2016},
TITLE = {The title},
}
Biber 2.7 (beta) 的行为与 Biber 2.6 类似。奇怪的排序不仅限于URL
字段,还适用于INSTITUTION
和LOCATION
(也许还适用于其他字段)。
是否有选项可以强制按字母顺序对字段进行排序?
答案1
四年后,我自己找到了答案,在3.13. 工具模式在手册中:
写入 BibTeX 数据时字段的顺序由选项控制
--output-field-order
。这是一个以逗号分隔的字段或字段类列表,字段将按指定的顺序输出到条目中。任何未指定的字段将在指定字段之后按排序顺序输出。
默认值为(从biber -help
):
默认情况下,其值为“options,abstract,names,lists,dates”。
由于所有未指定的字段都会自动按排序顺序输出,因此诀窍是设置指定选项不字段。不传递任何值会引发错误,但传递空格字符可以。因此解决方案是:
biber --tool --output_file=out.bib input.bib --output-field-order=" "