使用 biblatex 在所有页码(文内引用)前插入细空格

使用 biblatex 在所有页码(文内引用)前插入细空格

我使用biblatexapa风格。

我希望“p.”和页码之间留有细空格(\,或),而不是默认使用的正常空格。(其他语言也是如此,尤其是德语:“S.”和页码之间。这应该是类似的。)\thinspace

有没有办法实现所有引用而无需\textcite[p.\,100]{ref}每次都写入?

我的 MWE:

\documentclass{article}
\usepackage[utf8]{inputenc}

\usepackage[backend=biber, style=apa, backref=true]{biblatex}

\addbibresource{\jobname.bib}
\begin{filecontents}{\jobname.bib}
    @book{a,
        author = {My Testcase Author Number A},
        title  = {Test title 1.},
        date   = {2021},
    }
\end{filecontents}

\begin{document}
\noindent
Hello \parencite[10]{a}. DEFAULT.\newline
Hello \parencite[p.\,10]{a}. MY WISH.

\printbibliography
\end{document}

PS:如果在 backref 中有较窄的空间就更好了;不过这对我来说并不是那么重要,可能是另一个问题。

答案1

您正在寻找的命令是\ppspace,默认情况下定义为(参见biblatex.sty,v3.16 中的 l. 3734

\newcommand*{\ppspace}{\addnbspace}

如果你想要一个不间断的细空格,你可以相应地重新定义这个宏

\documentclass{article}
\usepackage[utf8]{inputenc}

\usepackage[backend=biber, style=apa, backref=true]{biblatex}

\renewcommand*{\ppspace}{\addnbthinspace}

\addbibresource{biblatex-examples.bib}

\begin{document}
Hello \autocite[10]{sigfridsson}. DEFAULT.

Hello \autocite[p.\,10]{sigfridsson}. MY WISH.

\printbibliography
\end{document}

你好(Sigfridsson & Ryde,1998,第 10 页)。“p.”和“10”之间有一个细空格。

这将适用于所有语言,也适用于backref。如果您想要特定于语言的定义,则需要涉及\DefineBibliographyExtras{<language>}

相关内容