biblatex:在引用中使用缩写,但在参考书目中不使用缩写

biblatex:在引用中使用缩写,但在参考书目中不使用缩写

使用 biblatex,我想要得到以下两样东西:

  1. 引文后注中的缩写样式:\cite[42]{xyz} 应为“[1, p. 42]”而不是“[1, page 42]”。
  2. 参考书目中没有缩写:“2nd edition”而不是“2nd ed”。

默认情况下,我的观点 (1) 是正确的,但 (2) 不正确。使用 biblatex 时,如果使用选项“abbreviate=false”,我的观点 (2) 是正确的,但 (1) 不正确。

目前,我这样做:我使用“abbreviate = false”并定义我自己的 \pno 和 \ppno 命令,打印“page”和“pages”字符串的短版本:

\newcommand{\pnos}{\bibsstring{page}}
\newcommand{\ppnos}{\bibsstring{pages}}

然后我手动将它们添加到每个 \cite 的附注中。但我认为,可能有更好的方法,比如重新定义 \pno 和 \ppno,或者将整个文档的缩写设置为“abbreviate=true”,然后仅将参考书目设置为“false”。

不幸的是,我找不到实现这一目标的方法。

我将非常感谢您的建议!


注1:以下操作无效:

\renewcommand{\pno}{\bibsstring{page}}

结果是“LaTeX 错误:\pno 未定义”。

注 2:我的文档是德文的,因此我实际上用“S.”代替“p.”但这实际上没有什么区别。

答案1

您可以使用

\makeatletter
\AtBeginBibliography{\def\abx@str{abx@lstr}}
\makeatother

获取参考书目中的长字符串和引用中的短字符串(默认)。

\documentclass[british]{article}
\usepackage[T1]{fontenc}
\usepackage[utf8]{inputenc}
\usepackage{babel}
\usepackage{csquotes}

\usepackage[style=authoryear, backend=biber]{biblatex}

\addbibresource{biblatex-examples.bib}

\makeatletter
\AtBeginBibliography{\def\abx@str{abx@lstr}}
\makeatother

\begin{document}
\cite[380]{sigfridsson}
\printbibliography
\end{document}

引文中为“Sigfridsson and Ryde 1998,第 380 页”,但参考书目中为“... Journal of Computational Chemistry 19.4,第 377-395 页...”

相关内容