带有自动结束句号的脚注无法与“同上”配合使用。

带有自动结束句号的脚注无法与“同上”配合使用。

我在用着解决方案是在每个脚注末尾自动添加一个句号;仅当脚注没有以句号、问号或感叹号结尾时,代码才应插入句号。

citestyle=authoryear-ibid然而,当我使用in时,多加了一个句号biblatexauthoryear-ibid“立即将重复的引用替换为缩写‘“Ibid.”)”。

这是我得到的:

图像

梅威瑟:

\documentclass{book}

\usepackage[
    style=chicago-authordate,
    citestyle=authoryear-ibid,
    ibidpage=true,
]{biblatex}
\addbibresource{bibliografia.bib}

% This macro inserts a period only if the footnote does not end with a period, a question mark or a bang
\makeatletter%
\long\def\@makefntext#1{%
  \parindent 1em\noindent \hb@xt@ 1.8em{\hss\@makefnmark}#1%
  \ifnum\the\spacefactor<3000.\fi}
\makeatother
  
\begin{document}

This works \footcite{Gomme1956} 
Here one too many period is added \footcite{Gomme1956}

\end{document}

我怎样才能避免添加过多的句号?

答案1

biblatex更改某些标点符号命令的空间因子,以便更精细地控制标点符号并避免标点符号冲突。在本例中,产生的句号的biblatex空间因子为 1006 ( \blx@sf@period),因此我们也需要对此进行检查

\documentclass{book}

\usepackage[
  style=chicago-authordate,
  citestyle=authoryear-ibid,
  ibidpage=true,
]{biblatex}
\addbibresource{biblatex-examples.bib}

\makeatletter%
\long\def\@makefntext#1{%
  \parindent 1em\noindent \hb@xt@ 1.8em{\hss\@makefnmark}#1%
  \ifnum\the\spacefactor<3000
    \ifnum\the\spacefactor=\blx@sf@period
    \else
    .%
    \fi
  \fi}
\makeatother

\begin{document}
This works \footcite{sigfridsson}
Here one too many period is added \footcite{sigfridsson}
Lorem\footnote{Blob}
\end{document}

1 Sigfridsson 和 Ryde 1998。//2 同上。//3 Blob。

请注意,如果您使用的唯一脚注是由以下方式生成的,那么您根本不需要额外的代码\footcitebiblatex自动添加句点。

相关内容