西班牙语 biblatex 的 APA 样式的书籍版本字符串

西班牙语 biblatex 的 APA 样式的书籍版本字符串

我正在使用 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}

3^a 不带点

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}}}

相关内容