\tableofcontents で二段組みを解除しないオプション(あるいは段数を含め目次の版面を調整できるオプション)があると助かります
Closed this issue · 5 comments
lemniscati commented
現行の jlreq.cls ですと,二段組設定の場合には \tableofcontents の展開時に強制的に段組みなしに変更されてしまいます.
Lines 5725 to 5736 in 4ff954f
この設定をキャンセルできるオプションか,あるいは段数を含め目次の版面を調整できるオプションがあると助かります.
いかがでしょうか.
lemniscati commented
早速のご対応ありがとうございます.
\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」を入れるのを忘れていたので追加しました.
lemniscati commented
そのほか,以下のようにグローバルオプションに tableofcontents_twocolumn
を書き込んだ場合は,無視されてしまいます.
これは意図的なものでしょうか.
\documentclass[
tableofcontents_twocolumn,
]{jlreq}
もちろん,\jlreqsetup
を使えばちゃんと認識されます.
\documentclass{jlreq}
\jlreqsetup{
tableofcontents_twocolumn,
}
abenori commented
\jlreqsetup
で指定できるのでクラスオプションによる指定はできません.(これは他のオプションも同様.)
lemniscati commented
了解しました.よく分かっておらず失礼しました.
このオプション tableofcontents_twocolumn
があると,目次を二段組にしたいときに \tableofcontents
を再定義しなくてすむので助かります.
ありがとうございます!