Mkbibquote 和 printtext 在引号中添加额外的空格

Mkbibquote 和 printtext 在引号中添加额外的空格

如标题所示,如果我使用 printtex 和 mkbibquote 声明参考书目字段格式,则 latex 会在第一个引号后添加一个额外的空格,而如果我不使用 \printtext,则不会这样做。

平均能量损失

\documentclass{report}

\usepackage[T1]{fontenc}
\usepackage[utf8]{inputenc}
\usepackage[italian]{babel}
\usepackage[autostyle,italian=guillemets]{csquotes}

\begin{filecontents}{biblio.bib}
@inreference{treccani:spettrofotometro,
    title = {spettrofotometro},
    booktitle = {La piccola Treccani},
    volume = {XI},
    publisher = {Istituto enciclopedia italiana},
    date = {1997}
}
\end{filecontents}

\usepackage[style=alphabetic, backend=biber]{biblatex}
\addbibresource{biblio.bib}
\DeclareFieldFormat[inreference]{title}{\printtext{s.v.}\addspace\mkbibquote{#1\isdot}}

\begin{document}

This is just an example\footfullcite{treccani:spettrofotometro}.

\end{document}

结果

答案1

不要\printtext在 内使用\DeclareFieldFormat,它在这里没有任何额外的用途,并且会混淆标点符号跟踪器,只需使用

\DeclareFieldFormat[inreference]{title}{s\adddot v\adddotspace\mkbibquote{#1\isdot}}

\DeclareFieldFormat一般情况下,只有当字段非空时,才会打印中定义的输出,并且打印将启动biblatex的标点符号处理程序。因此,您无需\printtext处理标点符号。事实上,如果您使用它,它可能会产生不利影响,因为您本质上是“嵌套”标点符号跟踪器并使其混乱。

相关内容