KOMA-Script (scrbook): 1 列の目次と 2 列のドキュメント内のミニ目次

KOMA-Script (scrbook): 1 列の目次と 2 列のドキュメント内のミニ目次

目次の書式設定に問題があります。以下のMNWEをご覧ください。すべてのテーブルを1列のレイアウトに切り替える。私はこれの解決策を試してみますtex.stackexchange の回答、これはTexコードのこの部分を使用します:

\unsettoc{toc}{onecolumn} 

しかし、どうやらそれはうまくいかないようです。マニュアルのscrbook(ページ264) ですが、残念ながら理解できませんでした。私は miktex/xelatex を使用しています。翻訳結果の画像も添付します。

\documentclass[twocolumn]{scrbook}
\usepackage[nohints]{minitoc}  
\unsettoc{toc}{onecolumn}
\usepackage{lipsum}
\begin{document}
\dominitoc
\tableofcontents
\chapter{Foo}
\minitoc
\lipsum[1]
\section{Bar}
\lipsum[2]
\subsection{Baz}
\lipsum[3]
\section{FooBarBaz}
\lipsum[4]
\end{document}

ここに画像の説明を入力してください 図1: 指示\tableofcontents


ここに画像の説明を入力してください 図2: 指示\minitoc

答え1

メインの目次

リンクされた回答と KOMA スクリプトのドキュメント1)をもう一度注意深くお読みください。デフォルトではscrbook(そしてscrreprt)tocはに設定されている1列モードただし、2 列に表示したい場合は、 が必要です\unsettoc{toc}{onecolumn}。したがって、ここではそれを省略するのが解決策です...

ミニトック用

\setchapterpreamble2)を使用します。注意: これは、属する章の前に設定する必要があります。 2 つのオプションの引数を使用して、位置と幅に影響を与えることができます。

また、 の前後のルールを無効にする必要があることにも注意してください\mtcsetrules{minitoc}{off}。回避策として、 を 2 回\hrulefill(最初は にし\smash、次にボックスを作成する必要があります [なくても機能しますが、垂直スペースの決定がより困難になります]、2 回目も がなくても機能しますが、単にコピーしました) と垂直スペースをいくつか追加しました。 は、\vspaceフォントとフォント サイズに合わせて個別に調整する必要があると思います。

おそらく複数の章があると思うので、2つの新しいコマンドを定義しました。説明については下のコードを参照してください。これらは\setchapterpreamble内部にある(または内部で使用することを意図している)ため、これら各章の前に設定する必要があります。

\documentclass[twocolumn]{scrbook}
\usepackage[nohints]{minitoc}
\mtcsetrules{minitoc}{off}
\usepackage{lipsum}

\newcommand{\dochaptertoc}{%
  \vspace{1.85\baselineskip} % workaround for removed rule
  \smash{\makebox[\linewidth]{\hrulefill}} % workaround for removed rule
  \vspace{-1.85\baselineskip} % workaround for removed rule
  \minitoc
  \vspace{-1.15\baselineskip} % workaround for removed rule
  \smash{\makebox[\linewidth]{\hrulefill}} % workaround for removed rule
  \vspace{1.15\baselineskip} % workaround for removed rule
}
\newcommand{\setchaptertoc}{%
  \setchapterpreamble{% KOMA-Script command
    \dochaptertoc%
  }}

\begin{document}
\dominitoc
\tableofcontents

\setchaptertoc
\chapter{One}
\lipsum[1]
\section{One, one}
\lipsum[2]
\subsection{One, one, one}
\lipsum[3]
\section{One, two}
\lipsum[4]

\setchapterpreamble{
  \dictum{Time for a bon-mot.}% KOMA-Script command
  \dochaptertoc
}
\chapter{Two}
\lipsum[5]
\section{Two, one}
\lipsum[6]
\section{Two, two}
\subsection{two, two, one}
\lipsum[7]
\end{document}

\setchaptertocほとんどの場合、章の前に置くだけで十分です。ただし、minitoc 以上のものを追加したい場合のために、\dochaptertoc使用を意図した削除されたルールの回避策を定義しました\setchapterpreamble。例の第 2 章を参照してください。

1) Texdoc.net でオンラインで読む:“\setuptoc” と “\unsettoc”(PDF)

2) Texdoc.net でもオンラインで読むことができます:“\setpartpreamble” と “\setchapterpreamble”(再度PDF)

関連情報