縦書きで、目次のみを二段書きするには

縦書きで、目次のみを二段書きするには

- mr2h の投稿
返信数: 8
目次に書く各項目(見出し)が非常に短いばあい、目次の頁についてのみ、二段書き(twocolumn)したくなりますが、その方法を教えていただけませんか。

\tableofcontents
の前後を、\twocolumn, \onecolumn で夾んでもダメですよね。

Win10, texlive2020, uplatex, jlreqで、詩集を書いています。
mr2h への返信

Re: 縦書きで、目次のみを二段書きするには

- mr2h の投稿
あちこち調べたら、どうにかできそうです。

1.プリアンブルに
\usepackage{multicol}
を書き加えます。

2.
\begin{document}の直前に
\makeatletter
\renewcommand{\tableofcontents}{%
\@mkboth{\contentsname}{\contentsname}%
\@starttoc{toc}%
}
\makeatother
も書き加えます。

3.
\tableofcontents を以下に改めます。

\noindent\textbf{\Large 目 次}
\begin{multicols}{2}
\tableofcontents
\end{multicols}
とします。

すると、どうにかできたようですが、一段目と二段目の間隔が開きすぎているようです。これは、どのように修正すればよいのでしようか?
mr2h への返信

Re: 縦書きで、目次のみを二段書きするには

- 和田 勇 の投稿
uplatex で jlreq をクラスファイルに使っているのでしょうか?以前、投稿された latex 原稿の documentclass を参考に以下のようにして、お望みのものができるようです。

もし、tableofconts を書き換えないとできないとしたら、他のパッケージなどと競合しているのかもしれません。その場合は、地道に使用されている usepackage や(再)定義したものを追加して、どこで衝突するか調べる必要があると思います。


\documentclass[dvipdfmx,uplatex,tate,book,paper=a5,jafontsize=12pt,]{jlreq}
\usepackage{multicol}

\begin{document}

\begin{multicols}{2}
\tableofcontents
\end{multicols}
\section{あ} \section{い} \section{う} \section{え} \section{お}
\section{か} \section{き} \section{く} \section{け} \section{こ}
\section{さ} \section{し} \section{す} \section{せ} \section{そ}
\section{さ} \section{し} \section{す} \section{せ} \section{そ}
\section{た} \section{ち} \section{つ} \section{て} \section{と}
\section{な} \section{に} \section{ぬ} \section{ね} \section{の}
\end{document}
和田 勇 への返信

Re: 縦書きで、目次のみを二段書きするには

- mr2h の投稿
早速、例示して戴いたとおり、試しました。
うまくいきました。
いつもながら、有り難うございます。
ついでにといったら何ですが、一段目と二段目の空白の距離をコントロールできる方法は、ありますでしょうか?


何故かと申しますと、\numberline{}を使つて番号を消しておりますが、こうすると、段間のアキが大きすぎるように見えるからです。
mr2h への返信

Re: 縦書きで、目次のみを二段書きするには

- 和田 勇 の投稿
章番号などを非表示にしたことによるカラム間の空き調整ですが、
「The LaTeX コンパニオン」を眺めていてようやっと、調整方法が掴めた気がする。

「dottedtocline latex」で検索すると近いものが見つかる様です。

この件に関連したことはかつてこのフォーラムでも話題になっていたようです。
https://okumuralab.org/tex/mod/forum/discuss.php?d=233

また藤田 眞作さんの「LATEX 2εまくろの八衢 (*1)」にも
「和書用のリーダー」の項で調整方法が掲載されています。

いずれも 「\@dottedtocline」の調整で対応しているようです。
最初の方は、platex なのかパラメータ数が違っていますが、
藤田さんの資料では、このマクロのパラメータの役割についても
書かれているので、調整の際にはとても参考になると思います。

さて、対処なのですが藤田さんの資料には

  \@dottedtocline{LEVEL}{INDENT}{NUMWIDTH}{TITLE}{PAGE}

と有るので、jlreq.cls から\@dottedtocline を抜き出して今回は NUMWIDTH を 0pt に再定義したものを添付しますので
参考にしてください。

この調整は、縦書きだと「上部の空き調整」ですが、
カラムの間にある分離帯の幅も \columnsep (*2) の調整で可能ですが、
NUMWIDTH での調整を考慮すると、デフォルトのままでも良いと思います。


(*1) この書籍とても重宝しますがインターネットにも 
http://xymtex.com/fujitas2/yatimata2/v200/yatimata2.pdf 公開されているのでご覧になってください。
書籍はじっくり読むのに、pdf は ripgrep-all で検索してコピペしたりするのに重宝に利用させていただいています。

(*2) texdoc multicol でドキュメントを眺めてみてください
和田 勇 への返信

Re: 縦書きで、目次のみを二段書きするには

- mr2h の投稿
早速、懇切なアドヴアイス大変有り難うございます。
これから、ゆっくりと勉強してゆきたいと思います。

\addcontentsline{toc}{section}{\protect\numberline{\null}はじめに}

を、私は、
\addcontentsline{toc}{section}{\numberline{}はじめに}
としておりました。\protect\numberline{null}は全く知らなかつたです。

ご提示いただいた、例示内容を、よく検討してみます。
mr2h への返信

Re: 縦書きで、目次のみを二段書きするには

- mr2h の投稿
書き忘れました。

番号の表示はさけられたものの、番号分のindentが入る結果、上段と下段の間隔が空きすぎることになります。そこで今回の質問となつたわけですが、とりあえず私は\setlength{\columnsep}{1mm}なるものを挿入してごまかしておりました。全くスマートでない方法だと思います。・・・ということを書き忘れておりました。、
mr2h への返信

Re: 縦書きで、目次のみを二段書きするには

- mr2h の投稿
何とか、完成しましたので、その一部を、件(くだん)の『目次』を見ていただきたく、完成PDFの一部を切り取つて、添付しました。これは私が個人で、楽しむためにのみ作成したものです。(著作権の問題がありますので、ほんの一部です)

大変お世話になり、ここまでたどり着けました。有り難うございました。
mr2h への返信

Re: 縦書きで、目次のみを二段書きするには

- 和田 勇 の投稿
indent はいじらなかったんですよね。
chapter section subsection くらいをつかっているようなのでそれでいいかなとおもいます。