ペルページ + パラは安定しない

ペルページ + パラは安定しない

私は Latex 初心者です (xelatex を使用)。短い脚注を多数含む文書をレイアウトしようとしています。paraと を使用していますperpage

paraの両方を試しました。 、、も試しました。ただし、これらすべての組み合わせ (最終的にコンパイルできるようになったとき) では、ページが脚注 27 と 28 で始まるなど、一種の競合状態に陥ってしまいます。xetex を再実行すると、脚注は前のページになりますが、番号は 1 と 2 になり、次のページは脚注 3 から始まります。bigfootfootmiscperpagefootmiscperpagebigfoot

言い換えると、2 桁の脚注番号は、単語を次のページに折り返すしきい値にあるようです。xetex が再度実行されると (単語と脚注が次のページにある状態で)、脚注番号はページごとに小さくなり、単語が前のページに戻ります。

xetex を無限に再実行できますが、番号付け/間隔は安定しません。実用的な例を挙げることはできますが、ドキュメントが長いことが多いため、「最小限」にはなりません。また、ほとんどがギリシャ語です。

[編集:]前にも言ったように、私は Latex 初心者で、システム全体がちょっと脆弱なようです。正しいやり方があるなら、ぜひ教えてください。ただし、脚注の最小幅を設定する方法があれば役立つかもしれないと思いました。どのページにも 100 個の脚注があるわけではないと思うので、幅を 2 ​​つの最も幅の広い数字が収まる幅に固定するだけです。それが可能かどうかはわかりませんが、そうすれば脚注番号が予測可能になり、折り返しやすくなります。

答え1

標準的な LaTeX の脚注マークは、その内容がちょうど収まる幅のボックス内にタイプセットされます。これは、\@makefnmarkで定義されているコマンドによって実行されますltfloat.dtx

\def\@makefnmark{\hbox{\@textsuperscript{\normalfont\@thefnmark}}}

に従ってあなたのコメント、この定義を変更して、すべて同じ幅のボックスに脚注マークをタイプセットする方法を示します。脚注番号が小さい (たとえば 1 桁) 場合は見苦しいと思います...

すべての脚注マーク ボックスで共有される共通の幅については、標準の脚注の と サイズの自然な幅を使用します00\normalfont幅をドキュメントのフォントに適応させないより簡単な方法で固定したい場合は、 のようなものを使用できます\setlength{\myfootnotemarkwidth}{4mm}

この設定では脚注マークのボックスの幅は固定されているため、ボックス内でコンテンツをどのように配置するかを選択する必要があります。以下の完全な例で使用されている次の設定では、各脚注マークがボックス内の中央に配置されます。

\renewcommand*\@makefnmark{%
  \hbox to \myfootnotemarkwidth{%
    \hfil\@textsuperscript{\normalfont\@thefnmark}\hfil
  }%
}

左揃えまたは右揃えにしたい場合は、\hfilコマンドの 1 つを削除するだけです。

選択したボックスの幅に対して脚注マークが大きすぎる場合 (これは\myfootnotemarkwidth私のコードにあります)、これによりオーバーフル\hbox警告が正しく生成されます。質問から理解したように、オーバーフル状況は による一時的なものでありperpage、次の LaTeX 実行時に消えるはずです。とはいえ、最初の実行時にオーバーフル警告があまりにも気になる場合は(なぜですか?)、 を ;に\hbox置き換えることをお勧めします。ただし、そうすると、通知されずに脚注マークが近くのテキストと重なる可能性があることに注意してください。したがって、このような変更を行う前に、長所と短所を慎重に比較検討してください。\hfil\hss

完全な例は次のとおりです。

\documentclass{article}

\makeatletter
\newlength{\myfootnotemarkwidth}

% Compute the width of a standard footnote mark numbered 00 (two digits) in
% \normalfont.
\AtBeginDocument{%
  \settowidth{\myfootnotemarkwidth}{\@textsuperscript{\normalfont 00}}%
}

\renewcommand*\@makefnmark{%
  \hbox to \myfootnotemarkwidth{%
    \hfil\@textsuperscript{\normalfont\@thefnmark}\hfil
  }%
}
\makeatother

\begin{document}

Some text\footnote{The footnote text.} to show the width of the footnote mark.
And now a high-numbered\footnote[99]{Other footnote text.} footnote.

\end{document}

ページ上部:

ページトップ

ページの下部:

ページの下部

\footnotetextコマンドで使用される脚注マーク (つまり、ページ本体の下部にある脚注の「宛先」場所) を通常の書式のままにしたい場合は、前の例を次のように変更できます。

\documentclass{article}
\usepackage{etoolbox}

(...)

\AtBeginDocument{(...)
}

\let\@latex@makefnmark\@makefnmark
\patchcmd{\@makefntext}{\@makefnmark}{\@latex@makefnmark}{}{\FAILED}

\renewcommand*\@makefnmark{%
(...)

すると、例のフッターは次のようになります (数字の「1」は、上記の完全な例よりも単語「The」に近くなります)。

スクリーンショット

関連情報