特殊嵌套脚注

特殊嵌套脚注

我一直很难找到一个足够强大的脚注系统。为了避免我对排版的描述过于枯燥,我提供了一个(粗糙的)Photoshop 模型来展示基本思想:

例子

我已经阅读了该网站上至少十几个问题并全部尝试过;这个问题与我需要的类似,但结果不是我想要的;脚注按级别分为不同的部分。顶级脚注的缩进和数字一致性也很重要。

是否有任何类型的软件包 (或其他) 可以做到这一点,而不需要高级 TeX 知识 (我缺乏)?我更喜欢允许源文件看起来有点像这样的东西:

Start of main text\footnote%  
{Some sort of note here, clever witticisms, et cetera\footnote%  
{Second, fourth-wall-breaking commentary\footnote%  
{Snide suggestion that more-or-less repairs the fourth wall.} %  
on the above commentary.} %  
.}%  
, which is constantly interrupted by the author’s scrambled, incoherent, and vagariously composed thought processes.

这已经够荒唐了,而且很难处理,但我愿意妥协。越干净越好。

理想情况下,应该支持将过长的脚注拆分到两页(或更多页)上,最好是在我定义的点处,并在第二页的开头写上“[9],继续”之类的字样。不过,我愿意放弃这个;我可能不得不将这些脚注转换为尾注。

确切的 TeX 系统无关紧要;我可以使用 LaTeX 或 ConTeXt 或普通 TeX,或任何其他可用的版本。

我不会问这种问题(这似乎非常简单),但已经过去了 12 个小时,打了 7 次,我还是没有比开始时更接近解决问题的程度。我开始觉得这不可能做到。

答案1

就标记而言,嵌套非常容易设置:

\def\footnote#1{%
  \@ld@footnote{\let\footnote\footnoteA\indentfn#1}%
}
\def\footnoteA#1{%
  \@ld@footnoteA{\let\footnote\footnoteB\indentfn#1}%
}

其中\footnote,,是三个独立的脚注宏,\footnoteA和分别是这些宏的副本。此界面将使用以下包构建:\footnoteB\@ld@footnote\@ld@footnoteAbigfoot

\DeclareNewFootnote{default}
\DeclareNewFootnote{A}[alph]
\MakeSortedPerPage{footnoteA}
\DeclareNewFootnote{B}[roman]
\MakeSortedPerPage{footnoteB}

\indentfn是一个辅助宏,定义为

\def\indentfn{\addtolength\footnotemargin{10pt}}

长度\footnotemargin由包装提供footmisc

然后你可以输入如下内容:

\footnote{%
  Some sort of note here, clever witticisms, et cetera.%
  \footnote{%
    Second, fourth-wall-breaking commentary%
    \footnote{%
      Snide suggestion that more-or-less repairs the fourth wall.%
    }%
    on the above commentary.%
  }%
}

得到以下输出:

输出完成示例

但是,这不会像示例图片那样进行排序。我认为这值得提出一个后续问题。

完整代码

\documentclass{article}
\usepackage{bigfoot}
  \DeclareNewFootnote{default}
  \DeclareNewFootnote{A}[alph]
  \MakeSortedPerPage{footnoteA}
  \DeclareNewFootnote{B}[roman]
  \MakeSortedPerPage{footnoteB}
\usepackage{footmisc}

\makeatletter
\def\indentfn{\addtolength\footnotemargin{10pt}}
\let\@ld@footnote \footnote
\let\@ld@footnoteA\footnoteA
\def\footnote{%
  \refstepcounter{footnote}%
  \kernel@ifnextchar[{\footnot@}{\footnot@[\c@footnote]}%
}
\def\footnot@[#1]#2{%
  \@ld@footnote[#1]{\let\footnote\footnoteA\indentfn#2}%
}
\def\footnoteA{%
  \refstepcounter{footnoteA}%
  \kernel@ifnextchar[{\footnot@A}{\footnot@A[\c@footnoteA]}%
}
\def\footnot@A[#1]#2{%
  \@ld@footnoteA[#1]{\let\footnote\footnoteB\indentfn#2}%
}
\makeatother


\begin{document}
Start of main text,%
\footnote{%
  Some sort of note here, clever witticisms, et cetera.%
  \footnote{%
    Second, fourth-wall-breaking commentary%
    \footnote{%
      Snide suggestion that more-or-less repairs the fourth wall.%
    }%
    on the above commentary.%
  }%
}
which is constantly interrupted by the author’s scrambled, incoherent, and vagariously composed thought processes.
\end{document}

相关内容