biblatex:自动将卷号从罗马数字转换为阿拉伯数字

biblatex:自动将卷号从罗马数字转换为阿拉伯数字

我自动生成了 bibtex 文件,其中包含许多长罗马卷号,如 LXXXVIII。这通常会导致排版参考书目中的水平框过满,因为它们无法用连字符连接。

可以告诉 biblatex 自动将它们转换为阿拉伯语吗,如本例中的 88?

答案1

etoolbox包提供了将罗马数字转换为阿拉伯数字的宏\rmntonum。Biblatex 允许声明字段格式来修改字段的内容。因此使用\rmntonumwith\DeclareFieldFormat可实现所需的功能。

为了确保当卷号不是罗马数字时仍能正确打印,您可以使用\ifrmnum(也来自etoolbox)并且仅当卷号实际上是罗马数字时才进行转换(否则只打印未转换的数字)。

梅威瑟:

\documentclass{article}
\usepackage{filecontents}
\usepackage{biblatex}
\usepackage{etoolbox}
\begin{filecontents*}{\jobname.bib}
@article{myarticle,
    author={John Doe},
    title={Some Article},
    journal={A Journal},
    volume={LXXXVIII},
    year={2020},
    publisher={Roman Publishing}
}
@article{myotherarticle,
    author={John Smith},
    title={Other Article},
    journal={Some Journal},
    volume={23},
    year={2020},
    publisher={Arabic Publishing}
}
\end{filecontents*}
\addbibresource{\jobname.bib}
\DeclareFieldFormat[article]{volume}{\ifrmnum{#1}{\rmntonum{#1}}{#1}}
\begin{document}
\cite{myarticle,myotherarticle}
\printbibliography
\end{document}

结果:

在此处输入图片描述

相关内容