footnote 和 autocite=footnote 在 fnpct 下的行为不同

footnote 和 autocite=footnote 在 fnpct 下的行为不同

这听起来可能有点疯狂,但在使用fnpctafter-punct-space尤其是选项)和命令\autocitefrom biblatex(使用选项autocite=footnote)时,我意识到脚注标记周围的间距的处理方式与命令不同\footnote。这在 中几乎不明显,但在(from )british中非常严重。奇怪的是,当是语言时,它似乎对选项没有反应,而有反应。frenchbabel\footnoteafter-punct-spacefrench\autocite

我正在使用 v2.8abiblatexfnpctv0.2k (2013/04/07)。

我尝试过的变体:

  • 既无帮助\frenchbsetup{FrenchFootnotes=false}也无 \usepackage[hang]{footmisc}帮助
  • biblatex根本不使用任何东西(footnote仍然存在问题)

\footnote如果我可以重新定义基本版本,我会很满意autocite=footnote,但我还不够精明,不知道如何挖掘这些信息。

下面是一个代码示例,已调整为获得最佳图形效果(例如,正确的对齐有助于可视化事物):

\documentclass[french,12pt]{article}

\usepackage{babel}
\usepackage[T1]{fontenc}
\usepackage[utf8]{inputenc}
\usepackage{fnpct}
\usepackage[babel]{csquotes}
\usepackage[autocite=footnote,autopunct=false]{biblatex}

\AdaptNoteOptNoMult\autocite

\renewcommand{\thempfootnote}{\arabic{mpfootnote}}

\begin{document}

\begin{minipage}{6cm}
\emph{Without \texttt{after-punct-space}:}
\begin{flushright}

Here I'm using footnote\footnote[2]{Check!}.

\setcounter{mpfootnote}{1}

And here\ldots\ autocite\autocite{nokeyneeded}.
\end{flushright}
\end{minipage}

\vspace*{1cm}

\setfnpct{after-punct-space=-1em}

\begin{minipage}{6cm}
\emph{With \texttt{after-punct-space}:}
\begin{flushright}
Here I'm using footnote\footnote[2]{Check!}.

\setcounter{mpfootnote}{1}

And here\ldots\ autocite\autocite{nokeyneeded}.
\end{flushright}
\end{minipage}

\end{document}

在此处输入图片描述

[编辑以添加fnpct软件包版本]

答案1

您发现了两个不同且不相关的问题:

  1. 法语的语言定义文件frenchb.ldf在文档开始处做出以下定义:

    \let\@footnotemarkORI\@footnotemark
    \def\@footnotemarkFB{\leavevmode\unskip\unkern
                         \,\@footnotemarkORI}%
    

    这将禁用fnpct自身的适配。由于fnpct有办法在不同情况下设置脚注标记周围的所有空格,因此 中的定义frenchb-ldf实际上并不需要,并且可以在开始文档后再次恢复:

    \begin{document}
    \makeatletter
    \let\@footnotemark\@footnotemarkORI
    \makeatother
    
  2. 的问题\autocite则完全不同。在这里,fnpct的机制会反击:\auocite最终会插入\footnote也已被 重新定义的fnpct。 的这种使用\footnote不会找到尾随标点符号,并假设它位于单词之后。这就是为什么它会插入 ,before-footnote-space这就是您所看到的。以下示例对此进行了放大:

    \documentclass[12pt]{article}
    
    \usepackage[T1]{fontenc}
    \usepackage[utf8]{inputenc}
    \usepackage{fnpct}
    \usepackage[autocite=footnote,autopunct=false]{biblatex}
    
    \renewcommand{\thempfootnote}{\arabic{mpfootnote}}
    
    \AdaptNoteOptNoMult\autocite
    
    \begin{document}
    
    \begin{minipage}{6cm}
    \begin{flushright}
      Here I'm using footnote\footnote[2]{Check!}.\par
      \setcounter{mpfootnote}{1}
      And here\ldots\ autocite\autocite{nokeyneeded}.\par
      \setcounter{mpfootnote}{1}
      \setfnpct{before-footnote-space=.5em}
      And here\ldots\ autocite\autocite{nokeyneeded}.\par
    \end{flushright}
    \end{minipage}
    
    \end{document}
    

    在此处输入图片描述

    除了设置之外没有其他简单的解决方法

    \setfnpct{before-footnote-space=0pt}
    

我肯定会修复问题 2 fnpct(我已经在开发版本中修复了它)。我可能还会撤消对何时加载frenchb.ldf的重新定义,而是在法语为主要文档语言时相应地调整。\@footnotemarkfnpctbefore-footnote-space


fnpct这两个问题已在v0.4a 2013/12/23中修复:

\documentclass[12pt]{article}
\usepackage[T1]{fontenc}
\usepackage[utf8]{inputenc}
\usepackage[french]{babel}
\usepackage{fnpct}[2013/12/23]
\usepackage[autocite=footnote,autopunct=false]{biblatex}

\renewcommand{\thempfootnote}{\arabic{mpfootnote}}

\AdaptNoteOptNoMult\autocite

\begin{document}

\begin{minipage}{6cm}
\begin{flushright}
  Here I'm using footnote\footnote[2]{Check!}.\par
  \setcounter{mpfootnote}{1}
  And here\ldots\ autocite\autocite{nokeyneeded}.\par
  \setcounter{mpfootnote}{1}
  Text\footnote{foo} text
\end{flushright}
\end{minipage}

\end{document}

在此处输入图片描述

相关内容