语境
我使用biblatex
与biber
(见术语消歧) 作为我的个人著作。
我想使用需要包的模板提交论文natbib
— 因此使用bibtex
。但是,我使用文件biber
中的功能.bib
(例如 crossref)无法处理natbib
,因此切换并不简单。
问题
给定存储我的所有参考资料的文件,从 { + } 切换到 { + }.bib
需要哪些步骤/修改?biblatex
biber
natbib
bibtex
答案1
免责声明:该答案尚未确定,因为尚未找到最终解决方案。
路线图概述
使用以下方法清理文件
biber
的特定功能.bib
biber-tool
...
1/使用以下方法清理文件biber
的特定功能.bib
biber-tool
该.bib
文件可能使用biber
- 特定的功能(例如@inbook
条目crossref
或urldate
字段等)。因此必须生成一个 - 兼容的新.bib
文件BibTeX
。以下答案基于这和这胎面。
- 创建一个名为的文件,
myBiberConfig.conf
其中包含以下代码。它定义了应如何转换原始.bib
文件以实现BibTeX
-兼容。
<?xml version="1.0" encoding="UTF-8"?>
<config>
<output_fieldcase>lower</output_fieldcase>
<output_resolve>1</output_resolve>
<output_safechars>1</output_safechars>
<sourcemap>
<maps datatype="bibtex" map_overwrite="1">
<map map_overwrite="1">
<map_step map_field_source="date" map_match="[0-9]{4}?-([0-9]{2}?)" map_final="1"/>
<map_step map_field_set="month" map_field_value="$1"/>
</map>
<map map_overwrite="1">
<map_step map_field_source="date" map_match="([0-9]{4}?)" map_final="1"/>
<map_step map_field_set="year" map_field_value="$1"/>
</map>
</maps>
<maps datatype="bibtex">
<map>
<map_step map_type_source="conference" map_type_target="inproceedings"/>
<map_step map_type_source="electronic" map_type_target="online"/>
<map_step map_type_source="www" map_type_target="online"/>
</map>
<map>
<map_step map_type_source="mastersthesis" map_type_target="thesis" map_final="1"/>
<map_step map_field_set="type" map_field_value="mathesis"/>
</map>
<map>
<map_step map_type_source="phdthesis" map_type_target="thesis" map_final="1"/>
<map_step map_field_set="type" map_field_value="phdthesis"/>
</map>
<map>
<map_step map_type_source="techreport" map_type_target="report" map_final="1"/>
<map_step map_field_set="type" map_field_value="techreport"/>
</map>
<map>
<map_step map_field_source="address" map_field_target="location"/>
<map_step map_field_source="school" map_field_target="institution"/>
<map_step map_field_source="annote" map_field_target="annotation"/>
<map_step map_field_source="archiveprefix" map_field_target="eprinttype"/>
<map_step map_field_source="journal" map_field_target="journaltitle"/>
<map_step map_field_source="primaryclass" map_field_target="eprintclass"/>
<map_step map_field_source="key" map_field_target="sortkey"/>
<map_step map_field_source="pdf" map_field_target="file"/>
</map>
</maps>
</sourcemap>
</config>
使用以下选项处理原始
.bib
文件--tool
biber
biber --tool --configfile=myBiberConfig.conf <yourbibfile>.bib
您处理的
.bib
文件是新创建的<yourbibfile>_bibertool.bib
答案2
添加到现有答案。对于bibtex-2.16
最低配置:
<?xml version="1.0" encoding="utf-8"?>
<!-- Got the date from https://gist.githubusercontent.com/mkouhia/f00fea7fc8d4effd9dfd/raw/500e9dbc6aa43a47e39c45ba230738ff4544709f/biblatex-to-bibtex.conf -->
<config>
<output_fieldcase>lower</output_fieldcase>
<output_resolve>1</output_resolve>
<output_safechars>1</output_safechars>
<output_format>bibtex</output_format>
<sourcemap>
<maps datatype="bibtex">
<!-- Easy type conversions -->
<map>
<map_step map_type_source="report" map_type_target="techreport"/>
<map_step map_type_source="online" map_type_target="misc"/>
</map>
<!-- Date to year, month -->
<map>
<map_step map_field_source="date"
map_field_target="year" />
</map>
<map>
<map_step map_field_source="year"
map_match="(\d{4}|\d{2})-(\d{1,2})-(\d{1,2})"
map_final="1" />
<map_step map_field_source="year"
map_match="(\d{4}|\d{2})-(\d{1,2})-(\d{1,2})"
map_replace="$1" />
<map_step map_field_set="month" map_origfieldval="1" />
<map_step map_field_source="month"
map_match="(\d{4}|\d{2})-(\d{1,2})-(\d{1,2})"
map_replace="$2" />
</map>
<map>
<map_step map_field_source="year"
map_match="(\d{4}|\d{2})-(\d{1,2})" map_final="1" />
<map_step map_field_source="year"
map_match="(\d{4}|\d{2})-(\d{1,2})" map_replace="$1" />
<map_step map_field_set="month" map_origfieldval="1" />
<map_step map_field_source="month"
map_match="(\d{4}|\d{2})-(\d{1,2})" map_replace="$2" />
</map>
</maps>
</sourcemap>
</config>
加上一些命令行选项:
biber --tool --configfile=biberConf.xml references.bib --output-file refsTmp.bib --output-legacy-date --output-field-replace=location:address,journaltitle:journal
足够了。更多详细信息在这里。请注意,在这种情况下,充分性被定义为被认可为有效的bibtex
,sphinx
并且不应该在没有对其他情况(如期刊模板)进行更多工作的情况下使用它。