![Biblatex:更改脚注中页码的间距设置](https://linux22.com/image/278657/Biblatex%EF%BC%9A%E6%9B%B4%E6%94%B9%E8%84%9A%E6%B3%A8%E4%B8%AD%E9%A1%B5%E7%A0%81%E7%9A%84%E9%97%B4%E8%B7%9D%E8%AE%BE%E7%BD%AE.png)
\autocite[34,79]{dR80}
出于某种未知的原因,我更喜欢在逗号后面不加空格的情况下写页码。不幸的是,在输出中它不会自动编译空格。有没有办法更改命令以在逗号后面设置一个空格?
编辑1(添加MWE):
\documentclass{article}
\usepackage[ngerman]{babel}%dt.Silbentrennung
\usepackage[style=authortitle-icomp,autocite=footnote]{biblatex}
\bibliography{TestLit}
\begin{document}
\autocite[34,39]{dR80a}
\end{document}
其中 dR80a 是以下 bib 条目。
@article{dR80a,
author = {David~E. Rumelhart},
title = {On Evaluating Story Grammars},
journal = {Cognitive Science},
pages = {313-316},
year = {1980},
volume = {4},
}
您在此处找到的输出。
页码最好像这样:34, 39例如逗号后面有一个空格。
答案1
而不是乱搞biblatex
创建一个命令,在后记参数中添加空格,然后在后记中使用该命令,这样会简单得多。我使用了 Nicola Talbot 的很好的答案到最后一个元素的特殊情况为 \foreach用于循环代码。
这种方法的优点是它为页码列表(\pps
宏)提供了语义标记,并允许在需要时在后记中添加其他材料。
\documentclass{article}
\usepackage[style=authortitle-icomp,autocite=footnote]{biblatex}
\addbibresource{biblatex-examples.bib}
\usepackage{etoolbox} % not strictly necessary, since loaded by biblatex
% List code adapeted from https://tex.stackexchange.com/a/164122/
\newcommand*{\elementsep}{}
\newcommand*{\lastelement}{}
% define the handler macro:
\newcommand*{\dodisplayelement}[1]{%
\elementsep
\lastelement
\renewcommand{\lastelement}{%
\renewcommand{\elementsep}{, }%
#1%
}}%
% define the new command to process a list of page numbers:
\newrobustcmd*{\pps}[1]{%
% initialise:
\renewcommand*{\elementsep}{}%
\renewcommand*{\lastelement}{}%
% Iterate through list
\forcsvlist{\dodisplayelement}{#1}%
% Finish off:
\elementsep
\lastelement
}
\begin{document}
Augustine said some stuff.\autocite[\pps{34,49,50}]{augustine}
\end{document}