Closed lemniscati closed 9 months ago
早速のご対応ありがとうございます.
\if@restonecol
の名前が紛らわしくなるので(二段組みに復帰する場合もあるので),
復帰用の設定を例えば \@restcolcmd
に保存することにして,次のようにするのはいかがでしょうか.
\newcommand{\tableofcontents}{%
\jlreq@top@contents=-100\relax
\if@twocolumn
\bool_if:NTF \g__jlreq_tableofcontents_twocolumn_bool {
\def\@restcolcmd{}% 段組設定は復帰不要
}{
\def\@restcolcmd{\twocolumn}% 段組設定を復帰するときは二段組
\onecolumn% 一段組にする
}
\else
% スイッチの流用
\bool_if:NTF \g__jlreq_tableofcontents_twocolumn_bool {
\def\@restcolcmd{\onecolumn}% 段組設定を復帰するときは一段組
\twocolumn% 二段組にする
}{
\def\@restcolcmd{}% 段組設定は復帰不要
}
\fi
\prop_item:Nn \g__jlreq_tableofcontents_prop { heading }
\@mkboth{\contentsname}{\contentsname}%
\@starttoc{toc}%
\@restcolcmd% 段組設定を復帰する
}
訂正:↑ 一段組で目次二段組のときに「\twocolumn」を入れるのを忘れていたので追加しました.
そのほか,以下のようにグローバルオプションに tableofcontents_twocolumn
を書き込んだ場合は,無視されてしまいます.
これは意図的なものでしょうか.
\documentclass[
tableofcontents_twocolumn,
]{jlreq}
もちろん,\jlreqsetup
を使えばちゃんと認識されます.
\documentclass{jlreq}
\jlreqsetup{
tableofcontents_twocolumn,
}
\jlreqsetup
で指定できるのでクラスオプションによる指定はできません.(これは他のオプションも同様.)
了解しました.よく分かっておらず失礼しました.
このオプション tableofcontents_twocolumn
があると,目次を二段組にしたいときに \tableofcontents
を再定義しなくてすむので助かります.
ありがとうございます!
現行の jlreq.cls ですと,二段組設定の場合には \tableofcontents の展開時に強制的に段組みなしに変更されてしまいます. https://github.com/abenori/jlreq/blob/4ff954fe6e8f7e11c10a01f630b3658b00c991ca/jlreq.cls#L5725-L5736
この設定をキャンセルできるオプションか,あるいは段数を含め目次の版面を調整できるオプションがあると助かります.
いかがでしょうか.