我正在使用 APA 格式biblatex
撰写一份西班牙语文档。以下是 MWE:
\documentclass{article}
\usepackage{filecontents}
\usepackage[spanish]{babel}
\begin{filecontents}{\jobname.bib}
@book{book,
author = {Author Name},
year = {2013},
title = {Title},
edition = {3},
address = {City},
publisher = {Publisher},
}
\end{filecontents}
\usepackage[backend=biber,style=apa]{biblatex}
\addbibresource{\jobname.bib}
\DeclareLanguageMapping{spanish}{spanish-apa}
\begin{document}
\autocite{book}
\printbibliography
\end{document}
MWE 在参考列表中产生以下输出:
Name, A. (2013)。标题(第3版)。城市:出版商。
数字“3”和上标“a”之间的点对我来说没有任何意义,我想将其删除。
我可以更改 bib 文件来获取我想要的输出,如下所示:
edition = {3\textsuperscript{a} ed\adddot},
这将产生如下输出:
Name, A. (2013)。标题 (第3版)。城市:出版商。
有没有办法在不更改我的 bib 文件的情况下实现此目的?
答案1
biblatex
的西班牙语模块用途babel-spanish
命令\sptext
来排版序数指示符。根据http://lema.rae.es/dpd/?key=ordinales&lema=ordinales西班牙语的规则是,缩写点应与上标序数指示符一起包含在内。
在所有以上标结尾的缩写中,去掉点的方法是重新定义\sptext
。以下 MWE\sptext
对进行了局部重新定义biblatex
。
\documentclass{article}
\usepackage[spanish]{babel}
\usepackage[backend=biber, style=apa]{biblatex}
\DefineBibliographyExtras{spanish}{%
\savecommand\sptext
\renewcommand*{\sptext}{\textsuperscript}}
\UndefineBibliographyExtras{spanish}{%
\restorecommand\sptext}
\usepackage{filecontents}
\begin{filecontents}{\jobname.bib}
@book{book,
author = {Author Name},
year = {2013},
title = {Title},
edition = {3},
address = {City},
publisher = {Publisher},
}
\end{filecontents}
\addbibresource{\jobname.bib}
\begin{document}
\autocite{book}
\printbibliography
\end{document}
biblatex
请注意,和的当前版本biblatex-apa
不再需要\DeclareLanguageMapping
,因此我放弃了它。
如果这只应该与版本有关,并且不应触及所有其他序数和缩写,那么您可以尝试只
\DefineBibliographyExtras{spanish}{%
\def\mkbibordedition#1{\stripzeros{#1}\textsuperscript{a}}}
如果你想影响所有序数,你可以使用
\DefineBibliographyExtras{spanish}{%
\protected\def\mkbibmascord#1{\stripzeros{#1}\textsuperscript{o}}%
\protected\def\mkbibfemord#1{\stripzeros{#1}\textsuperscript{a}}}