根据数字位数进行不同的脚注对齐

根据数字位数进行不同的脚注对齐

我的出版商对于脚注布局有一些相当复杂的要求:

  • 脚注文本始终左对齐:1 位脚注缩进 4mm,2 位脚注缩进 5mm,3 位脚注缩进 6mm
  • 脚注编号(标记)左对齐
  • 在脚注从 1 位数字变为 2 位数字和从 2 位数字变为 3 位数字的页面上,所有脚注文本都应具有相应较大组的缩进(5mm 和 6mm),脚注标记仍应左对齐,但数字较小的标记应与较大数字的右边缘对齐。

这可能吗?

以下答案无效:

根据同一页上的脚注标记中的数字数量来缩进脚注导致缩进切换不是在 9 和 10 之间,而是在 3 和 4 之间,并且不知何故fancyhdrtitlesec干扰了结果。而且它也无法帮助对齐较小的数字。

使用 KOMA 将一位和两位脚注标记右对齐确实将数字对齐在右侧,但对于所有数字都是如此,而不仅仅是对于数字增加的页面。

由于上面提到的与其他包的干扰,我故意在 MWE 中留下了一些乍一看与问题没有任何联系的包和前言定义。

梅威瑟:

\documentclass[10pt]{book}
\usepackage[paperheight=22.2cm,paperwidth=14cm,bottom=2.11cm,top=1.6cm,right=1.6cm,textwidth=10.8cm,textheight=18.49cm,includeheadfoot]{geometry}
\setlength{\parindent}{3.5mm}
\usepackage{ebgaramond}
\usepackage{titlesec}
\usepackage{csquotes}
\usepackage{marvosym}
\usepackage{etoolbox}
\usepackage[hang]{footmisc}
\usepackage{fancyhdr}
\pagestyle{fancy}
\renewcommand{\chaptermark}[1]{\markboth{#1}{}}
\renewcommand{\sectionmark}[1]{\markright{#1}}
\fancyhf{}
\fancyfoot[LE,RO]{\thepage}
\fancyhead[CO]{\fontsize{9.5}{10.5}\selectfont\scshape\MakeLowercase{\rightmark}}
\fancyhead[CE]{\fontsize{9.5}{10.5}\selectfont\scshape\MakeLowercase{\leftmark}}
\renewcommand{\headrulewidth}{0pt}

\usepackage{polyglossia}%
\setmainlanguage[babelshorthands=true]{german}
\setotherlanguage{hebrew}
\defaultfontfeatures{RawFeature={-clig}}
\setmainfont[Mapping=tex-text,Numbers=OldStyle,Ligatures=TeX]{EB Garamond}
\addfontfeature{Language=German}
\newfontfamily\hebrewfont{Linux Libertine O}

\makeatletter
  \newcommand\chapsize{\@setfontsize\chapsize{13pt}{6}}
  \newcommand\secsize{\@setfontsize\secsize{11.5pt}{6}}
  \makeatother
\titleformat{\chapter}[hang]
   {\chapsize\centering}{\thechapter.\ }{0pt}{}
\titleformat{\section}[hang] 
    {\secsize\centering}{\thesection\ }{0pt}{}
\titlespacing*{\chapter}{0pt}{0pt}{8mm}
\titlespacing*{\section}{0pt}{24pt}{4.233mm}

%fußnoten
\renewcommand\footnotelayout{\fontsize{8.8}{10.2}\selectfont}
\usepackage{scrextend}
\deffootnote{5mm}{5mm}{\makebox[5mm][l]{\phantom{99}\llap{\thefootnotemark}}}

\begin{document}
Text.\footnote{text}
Text.\footnote{text}\footnote{text}\footnote{text}
\clearpage
\footnote{text}\footnote{text}\footnote{text}
\footnote{text}\footnote{text}\footnote{text}\footnote{text}
\clearpage
\footnote{text}\footnote{text}
\setcounter{footnote}{98}
\footnote{text}\footnote{text}\footnote{text}\footnote{text}\footnote{text}\footnote{text}\footnote{text}\footnote{text}\footnote{text}\footnote{text}\footnote{text}\footnote{text}

\end{document}

它看起来应该是这样的:

在此处输入图片描述

与 MWE 类似:

在此处输入图片描述

使用 XeLaTeX 进行编译,通用书籍类别(KOMA 不是一个选项,因为与 fancyhdr 和其他的相冲突)。

答案1

我从未听说过你们出版商提出的要求如此复杂。你知道这些要求来自哪里吗?是哪家出版商?

这些要求使得更改 的定义footmisc比更改 脚注的 KOMA-Script 机制更容易,最后您使用 类book而不是scrbook

链接中的代码有三个问题问题footmisc

  1. 您需要扩展新的解决方案来处理大于 99 的脚注编号(请参阅<==================以下代码片段中的第一个)。
  2. 您必须更改值以使脚注编号按需要缩进(请参阅<=====以下代码片段中的三个短标记)。
  3. 您必须通过最后添加命令来更改该解决方案以打印右对齐的脚注编号(请参阅以下代码片段中的\hfil最后)。<==================

此代码片段显示了您的问题所需的更改:

   \ifnumgreater{\value{footnote}}{99} % <==============================
     {\immediate\write\@auxout{%
        \global\noexpand\csname @\thepage @max@footnotemargin\endcsname 6mm}} % <======
     {\ifnumgreater{\value{footnote}}{9}
       {\immediate\write\@auxout{%
          \global\noexpand\csname @\thepage @max@footnotemargin\endcsname 5mm}} % <====
       {\immediate\write\@auxout{%
         \global\noexpand\csname @\thepage @max@footnotemargin\endcsname 4mm}}}% <=====
   % remove superscript footnote mark
   \setbox\@tempboxa\hbox{%
     \ifdim\footnotemargin>0pt
       \hb@xt@\footnotemargin{\hfil\@thefnmark\hss}% <==================
     \else
       \hbox{\@thefnmark}%
     \fi

请注意,我删除了您的部分代码,因为它们与您的问题无关,或者我没有您使用的字体。

通过这个完整的 MWE

\documentclass[10pt]{book}

\usepackage[%
  paperheight=22.2cm,paperwidth=14cm,
  bottom=2.11cm,top=1.6cm,right=1.6cm,
  textwidth=10.8cm,textheight=18.49cm,
  includeheadfoot,
  showframe
]{geometry}
\setlength{\parindent}{3.5mm}
\usepackage{ebgaramond}
\usepackage{titlesec}
\usepackage{csquotes}
\usepackage{marvosym}
\usepackage{etoolbox}

\usepackage[hang]{footmisc}
\renewcommand{\hangfootparskip}{0mm}
\renewcommand{\hangfootparindent}{4mm}
\makeatletter
\patchcmd{\@makefntext}
  {\bgroup
   \setbox\@tempboxa\hbox{%
     \ifdim\footnotemargin>0pt
       \hb@xt@\footnotemargin{\@makefnmark\hss}%
     \else
       \@makefnmark
     \fi
   }}
  {\bgroup
   \ifcslength{@\thepage @max@footnotemargin}
     {\footnotemargin \csname @\thepage @max@footnotemargin\endcsname}
     {}%
   \immediate\write\@auxout{%
     \noexpand\expandafter\noexpand\newskip
       \noexpand\csname @\thepage @max@footnotemargin\endcsname}%
   \ifnumgreater{\value{footnote}}{99} % <==============================
     {\immediate\write\@auxout{%
        \global\noexpand\csname @\thepage @max@footnotemargin\endcsname 6mm}} % <======
     {\ifnumgreater{\value{footnote}}{9}
       {\immediate\write\@auxout{%
          \global\noexpand\csname @\thepage @max@footnotemargin\endcsname 5mm}} % <====
       {\immediate\write\@auxout{%
         \global\noexpand\csname @\thepage @max@footnotemargin\endcsname 4mm}}}% <=====
   % remove superscript footnote mark
   \setbox\@tempboxa\hbox{%
     \ifdim\footnotemargin>0pt
       \hb@xt@\footnotemargin{\hfil\@thefnmark\hss}% <==================
     \else
       \hbox{\@thefnmark}%
     \fi
   }}
  {}
  {}
\makeatother

\usepackage{fancyhdr}
\pagestyle{fancy}
\renewcommand{\chaptermark}[1]{\markboth{#1}{}}
\renewcommand{\sectionmark}[1]{\markright{#1}}
\fancyhf{}
\fancyfoot[LE,RO]{\thepage}
\fancyhead[CO]{\fontsize{9.5}{10.5}\selectfont\scshape\MakeLowercase{\rightmark}}
\fancyhead[CE]{\fontsize{9.5}{10.5}\selectfont\scshape\MakeLowercase{\leftmark}}
\renewcommand{\headrulewidth}{0pt}

\makeatletter
  \newcommand\chapsize{\@setfontsize\chapsize{13pt}{6}}
  \newcommand\secsize{\@setfontsize\secsize{11.5pt}{6}}
  \makeatother
\titleformat{\chapter}[hang]
   {\chapsize\centering}{\thechapter.\ }{0pt}{}
\titleformat{\section}[hang] 
    {\secsize\centering}{\thesection\ }{0pt}{}
\titlespacing*{\chapter}{0pt}{0pt}{8mm}
\titlespacing*{\section}{0pt}{24pt}{4.233mm}

\begin{document}
Text.\footnote{text}
Text.\footnote{text}\footnote{text}\footnote{text}
\clearpage
\footnote{text}\footnote{text}\footnote{text}
\footnote{text}\footnote{text}\footnote{text}\footnote{text}
\clearpage
\footnote{text}\footnote{text}
\setcounter{footnote}{98}
\footnote{text}\footnote{text}\footnote{text}\footnote{text}\footnote{text}\footnote{text}\footnote{text}\footnote{text}\footnote{text}\footnote{text}\footnote{text}\footnote{text}

\end{document}

例如,您会得到第 3 页的结果:

第 3 页

答案2

您对 MWE 的修改以及根据同一页上的脚注标记中的数字数量来缩进脚注帮我完成工作。(我不得不切换到英语,因为我的系统上没有安装德语或希伯来语支持。)要正确获得 hangindents,您必须运行 LaTeX 两次,因为它们在第一次运行时存储在 AUX 文件中。

\documentclass[10pt]{book}
\usepackage[paperheight=22.2cm,paperwidth=14cm,bottom=2.11cm,top=1.6cm,right=1.6cm,textwidth=10.8cm,textheight=18.49cm,includeheadfoot]{geometry}
\setlength{\parindent}{3.5mm}
\usepackage{lipsum}
\usepackage{ebgaramond}
\usepackage{csquotes}
\usepackage{marvosym}
\usepackage{etoolbox}
\usepackage{fancyhdr}
\pagestyle{fancy}
\renewcommand{\chaptermark}[1]{\markboth{#1}{}}
\renewcommand{\sectionmark}[1]{\markright{#1}}
\fancyhf{}
\fancyfoot[LE,RO]{\thepage}
\fancyhead[CO]{\fontsize{9.5}{10.5}\selectfont\scshape\MakeLowercase{\rightmark}}
\fancyhead[CE]{\fontsize{9.5}{10.5}\selectfont\scshape\MakeLowercase{\leftmark}}
\renewcommand{\headrulewidth}{0pt}

\usepackage{polyglossia}%
\setmainlanguage{english}
%\setmainlanguage[babelshorthands=true]{german}
%\setotherlanguage{hebrew}
\defaultfontfeatures{RawFeature={-clig}}
\setmainfont[Mapping=tex-text,Numbers=OldStyle,Ligatures=TeX]{EB Garamond}
\addfontfeature{Language=German}
\newfontfamily\hebrewfont{Linux Libertine O}

\usepackage{titlesec}
\makeatletter
  \newcommand\chapsize{\@setfontsize\chapsize{13pt}{6}}
  \newcommand\secsize{\@setfontsize\secsize{11.5pt}{6}}
\makeatother
\titleformat{\chapter}[hang]
   {\chapsize\centering}{\thechapter.\ }{0pt}{}
\titleformat{\section}[hang] 
    {\secsize\centering}{\thesection\ }{0pt}{}
\titlespacing*{\chapter}{0pt}{0pt}{8mm}
\titlespacing*{\section}{0pt}{24pt}{4.233mm}

\usepackage[hang]{footmisc}
\renewcommand{\hangfootparskip}{0mm}
\renewcommand{\hangfootparindent}{4mm}
\makeatletter
\patchcmd{\@makefntext}
  {\bgroup
   \setbox\@tempboxa\hbox{%
     \ifdim\footnotemargin>0pt
       \hb@xt@\footnotemargin{\@makefnmark\hss}%
     \else
       \@makefnmark
     \fi
   }}
  {\bgroup
   \ifcslength{@\thepage @max@footnotemargin}
     {\footnotemargin \csname @\thepage @max@footnotemargin\endcsname}
     {}%
   \immediate\write\@auxout{%
     \noexpand\expandafter\noexpand\newskip
       \noexpand\csname @\thepage @max@footnotemargin\endcsname}%
   \ifnumgreater{\value{footnote}}{99}
     {\immediate\write\@auxout{%
        \global\noexpand\csname @\thepage @max@footnotemargin\endcsname 6mm}}
     {\ifnumgreater{\value{footnote}}{9}
       {\immediate\write\@auxout{%
          \global\noexpand\csname @\thepage @max@footnotemargin\endcsname 5mm}}
       {\immediate\write\@auxout{%
         \global\noexpand\csname @\thepage @max@footnotemargin\endcsname 4mm}}}%
   % remove superscript footnote mark
   \setbox\@tempboxa\hbox{%
     \ifdim\footnotemargin>0pt
       \hb@xt@\footnotemargin{\hbox{\normalfont \@thefnmark}\hss}%
     \else
       \hbox{\normalfont \@thefnmark}%
     \fi
   }}
  {}
  {}
\makeatother
\begin{document}
\null\vfill
Filler text.\footnote{\lipsum*[2]}
Filler text.\footnote{\lipsum*[2]\par\lipsum*[2]}
\clearpage
\null\vfill
\setcounter{footnote}{8}
Filler text.\footnote{\lipsum*[2]}
Filler text.\footnote{\lipsum*[2]\par\lipsum*[2]}
\clearpage
\null\vfill
\setcounter{footnote}{98}
Filler text.\footnote{\lipsum*[2]}
Filler text.\footnote{\lipsum*[2]\par\lipsum*[2]}
\end{document}

结果:

在此处输入图片描述

在此处输入图片描述

在此处输入图片描述

答案3

手动调整 vrule 的宽度直到它正确到十分之一点对我来说已经完成了工作。我在“This”和“apply”前面放置了相同宽度的 vrule 以获得下面的结果。幸运的是,“9”左对齐对于我的情况来说是可以的。

脚注缩进

相关内容