Biblatex:更改脚注中页码的间距设置

Biblatex:更改脚注中页码的间距设置

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

相关内容