![使用 biblatex 在所有页码(文内引用)前插入细空格](https://linux22.com/image/429697/%E4%BD%BF%E7%94%A8%20biblatex%20%E5%9C%A8%E6%89%80%E6%9C%89%E9%A1%B5%E7%A0%81%EF%BC%88%E6%96%87%E5%86%85%E5%BC%95%E7%94%A8%EF%BC%89%E5%89%8D%E6%8F%92%E5%85%A5%E7%BB%86%E7%A9%BA%E6%A0%BC.png)
我使用biblatex
该apa
风格。
我希望“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}
这将适用于所有语言,也适用于backref
。如果您想要特定于语言的定义,则需要涉及\DefineBibliographyExtras{<language>}
。