更新

更新

我想根据脚注标记的数字位数调整脚注的左缩进。因此,一位数字的脚注与左边距对齐单个 \parindent 的长度(设置为 4 毫米):而两位或三位数字的脚注(我们假设不会有更多数字)与左侧对齐 8 毫米(= 2*\parindent)。我设法使用以下代码做到这一点:

\documentclass[11pt]{article}
\setlength{\parindent}{4mm}
\usepackage{fancyvrb,footnote}
    \VerbatimFootnotes% I created the code in a file which used this command, but for some reason it doesn't work without it.
\usepackage{ifthen}
\makeatletter
    \renewcommand\@makefntext[1]{%
        \ifthenelse{\value{footnote}>9}{%
            \parindent 12mm%
            \noindent
            \@hangfrom{%
                \hb@xt@ 8mm{\@thefnmark}#1%
            }%
        }{%
            \parindent 8mm%
            \noindent
            \@hangfrom{%
                \hb@xt@ 4mm{\@thefnmark}#1%
            }%
        }%
    }
\makeatother

\usepackage{blindtext}
\begin{document}
A word, phrase, or sentence that needs to be commented on.\footnote{\blindtext}
\setcounter{footnote}{15}
\blindtext\footnote{\blindtext\par\blindtext}

\end{document}

结果

然后我遇到了第二个问题:在包含一位和两位脚注的页面上,我不希望出现这种差异。在那里,双缩进/边距也应该用于一位脚注标记。我认为让缩进取决于脚注 10 是否出现在页面上就足够了。有没有办法添加这样的条件?

答案1

更新

最初使用的答案\thepage不可靠。我已更新此答案以\oddpage@pageifoddpage包中使用。另请参阅这个问题


以下是尝试执行此操作的方法。它使用aux文件,需要编译至少两次,有时需要编译三次(取决于分页符)以确保缩进正确。

我还使用了该footmisc包,它提供了一个内置界面,可以按照您的需要悬挂脚注。

它会将脚注缩进的宽度写入文件aux中,在每个脚注处跳过特定页面。然后使用每页上的最后一个(这将是最大跳过)来设置第二遍的缩进。

平均能量损失

\documentclass{article}
\usepackage{lipsum}
\usepackage{etoolbox}
\usepackage{ifoddpage}
\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
   \checkoddpage
   \ifcslength{@\thepage @max@footnotemargin}
     {\footnotemargin \csname @\oddpage@page @max@footnotemargin\endcsname}
     {}%
   \immediate\write\@auxout{%
     \noexpand\expandafter\noexpand\newskip
       \noexpand\csname @\oddpage@page @max@footnotemargin\endcsname}%
   \ifnumgreater{\value{footnote}}{9}
     {\immediate\write\@auxout{%
        \global\noexpand\csname @\oddpage@page @max@footnotemargin\endcsname 8mm}}
     {\immediate\write\@auxout{%
        \global\noexpand\csname @\oddpage@page @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
Filler text.\footnote{\lipsum*[2]}
\setcounter{footnote}{9}
Filler text.\footnote{\lipsum*[2]\par\lipsum*[2]}
\end{document}

第 1 页输出

第 1 页

第 2 页输出

第2页

相关内容