在 Babel 中使用符号作为脚注的附加点

在 Babel 中使用符号作为脚注的附加点

我需要使用法语字体,因此 babel 带有法语选项。脚注的数字正确地位于行上,后面跟着一个点。但我还需要一个带有符号而不是数字的脚注。我知道如何做到这一点(感谢以前的帖子!),只是点仍然出现在符号后面,而它不应该出现。在这种情况下,如何摆脱这个点,并且只能在这种情况下?

以下是 MWE:

\documentclass[a4paper,11pt,twoside,openright]{book}

\usepackage[body={110mm, 185mm}, headheight=20pt]{geometry} 
\usepackage[french]{babel}   
\usepackage[latin1]{inputenc}
\usepackage[T1]{fontenc}      

\makeatletter
\def\@xfootnote[#1]{
 \protected@xdef\@thefnmark{#1}%
 \@footnotemark\@footnotetext}
 \makeatother


 \begin{document}

 Une note normale\footnote{Note en francais.}.
 Une note bizarre\footnote[*]{GLURPS.}.
 Une autre note normale\footnote{Note en francais.}.
 \end{document}

带符号的法语脚注

答案1

\footnote以下示例修补了当给出可选参数并\@xfootnote调用时的情况。然后\insertfootnoteFB@dotless调用 而不是 来\insertfootnoteFB删除点。

目前还不清楚,点的空间去哪儿了:

  • 脚注符号使用空格:

    \kern1\wd\@tempboxa
    \llap{\@thefnmark}%
    \kern0\wd\@tempboxa
    
  • 脚注符号不是使用空间:

    \kern0\wd\@tempboxa
    \llap{\@thefnmark}%
    \kern1\wd\@tempboxa
    
  • 或者介于两者之间:包含点的宽度的因子之和\@tempboxa必须等于 1。

完整示例:

\documentclass[a4paper,11pt,twoside,openright]{book}

\usepackage[
  % body={110mm, 185mm},
  body={120mm, 30mm}, % smaller image for TeX.SX
  headheight=20pt,
]{geometry}
\usepackage[french]{babel}
\usepackage[latin1]{inputenc}
\usepackage[T1]{fontenc}
\usepackage{letltxmacro}

\makeatletter
\def\@xfootnote[#1]#2{
  \protected@xdef\@thefnmark{#1}%
  \@footnotemark
  \begingroup
    \let\insertfootnotemarkFB\insertfootnotemarkFB@dotless
    \@footnotetext{#2}%
  \endgroup
}
\newcommand*{\insertfootnotemarkFB@dotless}{%
  \parindent=\parindentFFN
  \rule\z@\footnotesep
  \setbox\@tempboxa\hbox{\@thefnmark}%
  \ifdim\wd\@tempboxa>\z@
    \setbox\@tempboxa\hbox{\dotFFN}%
    \kern1\wd\@tempboxa
    \llap{\@thefnmark}%
    \kern0\wd\@tempboxa
    \kernFFN
  \fi
}
\makeatother

\begin{document}
  Une note normale\footnote{Note en francais.}.
  Une note bizarre\footnote[*]{GLURPS.}.
  Une autre note normale\footnote{Note en francais.}.
\end{document}

将脚注符号右对齐到带有点的完整脚注标记:

结果

或者将脚注符号与数字右对齐(不带点):

结果

答案2

这个答案来自 Daniel Flipo (babel-french)。它解释了如何局部地用点来塑造脚注(结合我的问题中给出的 \footnote[mark]{text} 的定义)。

% English presentation (locally)
{\makeatletter\renewcommand\thefootnote{\@fnsymbol\c@footnote}\makeatother
\FBFrenchFootnotesfalse
Note\footnote[*]{une astérisque.}
étoilée
}

% French presentation, locally, without a dot
{\makeatletter\renewcommand\thefootnote{\@fnsymbol\c@footnote}\makeatother
\renewcommand{\dotFFN}{}\renewcommand{\kernFFN}{\hphantom{.}\kern .5em}
Note\footnote[*]{Une astérisque sur la ligne de base.}
étoilée
}

相关内容