abenori / jlreq

Other
129 stars 18 forks source link

paragraphの脚注の挙動が、sectionなどの他のものと異なる #135

Open 555555555a555 opened 8 months ago

555555555a555 commented 8 months ago

お世話になります。 TeX Live 2024の最新の環境(LuaLaTeX+jlreq)で、下記のコードで\paragraphの脚注番号がひとつズレます。 そもそも見出しに脚注を入れようとするからいけないのかもしれないのですが、\sectionや\subsectionでは正常なので気になります。

\documentclass[]{jlreq} \begin{document} 地の文です。ここに脚注が入ります\footnote{脚注1} \section[セクションに脚注をつけます]{脚注2\footnotemark} \footnotetext{脚注2} \subsection[サブセクションに脚注をつけます]{脚注3\footnotemark} \footnotetext{脚注3} \subsubsection[サブサブセクションに脚注をつけます]{脚注4\footnotemark} \footnotetext{脚注4} \paragraph[パラグラフに脚注をつけます]{脚注5\footnotemark} \footnotetext{脚注5ですが、この脚注に自動で振られる数字が4になります。} \end{document}

abenori commented 8 months ago

標準クラスファイルでも同じですので,これはそういうものだと思ってもらうのがよいかと思います.

そもそも見出しに脚注を入れようとするからいけないのかもしれないのですが、

おそらく\footnotemarkはfragileだと思うのでこういう動く引数の中には入れないというのはそうだと思います.

lemniscati commented 8 months ago

とりあえず,こうすると期待される結果になりそうです.いかがでしょうか.

\documentclass[]{jlreq}
\begin{document}
地の文です。ここに脚注が入ります\footnote{脚注1}
\section[セクションに脚注をつけます]{脚注2\footnotemark}
\footnotetext{脚注2}
\subsection[サブセクションに脚注をつけます]{脚注3\footnotemark}
\footnotetext{脚注3}
\subsubsection[サブサブセクションに脚注をつけます]{脚注4\footnotemark}
\footnotetext{脚注4}
\paragraph[パラグラフに脚注をつけます]{脚注5\footnote{脚注5ですが、この脚注に自動で振られる数字はちゃんと5になります?}}
\end{document}
555555555a555 commented 8 months ago

ありがとうございました。\paragraphは他と挙動が違う仕様なのですね。 ご意見を参考に、下記のテストをして納得しました。 \paragraphでは\footnoteを使うようにします。

\documentclass[]{jlreq}
\begin{document}

セクション

\section[]{副題なしでfootnotemarkで入れる\footnotemark}
\footnotetext{セクション:副題なしでfootnotemarkで入れる}

\section[]{副題ありでfootnotemarkで入れる\footnotemark}[副題]
\footnotetext{セクション:副題ありでfootnotemarkで入れる}

\section[]{副題ありでfootnotemarkで入れる\footnotemark}[副題]
\footnotetext{セクション:副題ありでfootnotemarkで入れる}

\section[]{副題ありでfootnotemarkで入れる}[副題\footnotemark]
\footnotetext{セクション:副題ありでfootnotemarkで入れる}

パラグラフ

\paragraph[]{副題なしでfootnotemarkで入れる\footnotemark}
\footnotetext{パラグラフ:副題なしでfootnotemarkで入れる【ここだけ数字がずれる】}

\paragraph[]{副題ありでfootnotemarkで入れる\footnotemark}[副題]
\footnotetext{パラグラフ:副題ありでfootnotemarkで入れる}

\paragraph[]{副題ありでfootnotemarkで入れる}[副題\footnotemark]
\footnotetext{パラグラフ:副題ありでfootnotemarkで入れる}

\paragraph[]{副題なしでfootnoteで入れる\footnote{パラグラフ:副題なしでfootnoteで入れる}}

\paragraph[]{副題ありでfootnoteで入れる\footnote{パラグラフ:副題ありでfootnoteで入れる}}[副題]

\paragraph[]{副題ありでfootnoteで入れる\footnote{パラグラフ:副題ありでfootnoteで入れる1}}[副題\footnote{パラグラフ:副題ありでfootnoteで入れる2}\footnote{パラグラフ:副題ありでfootnoteで入れる3}]

\end{document}
munepi commented 1 month ago

まず、これはLaTeX kernelにおける脚注仕様と言ってもよいと思います。

articleクラスの\paragraphは、\section, \subsection, \subsubsectionと異なり、見出し直後を改行せずにそのまま出しています。 このとき、以下のように\paragraph直後に続く“段落本文”を始めたうえで\footnotetextを入れると、脚注も正しく採番されます。

\documentclass{article}
\begin{document}
\section{xyz}
\paragraph[a]{a\footnotemark}
a\footnotetext{a}
\paragraph[b]{b\footnotemark}
a\footnotetext{b}
\paragraph[c]{c\footnotemark}
a\footnotetext{c}
\end{document}

そこで、articleクラスの\paragraphの定義を以下のように「ココ」を変更してみます。 つまり、\section, \subsection, \subsubsectionと同じように、見出し直後を改行します。

\documentclass{article}
\makeatletter
\renewcommand\paragraph{\@startsection{paragraph}{4}{\z@}%
                                    {3.25ex \@plus1ex \@minus.2ex}%
                                    {1.5ex \@plus .2ex}%{-1em}%←ココ
                                    {\normalfont\normalsize\bfseries}}
\makeatother
\begin{document}
\section{xyz}
\paragraph[a]{a\footnotemark}
\footnotetext{a}
\paragraph[b]{b\footnotemark}
\footnotetext{b}
\paragraph[c]{c\footnotemark}
\footnotetext{c}
\end{document}

すると、これでも問題なく、脚注本文で採番されます。