%3A%20%D0%BE%D0%B4%D0%BD%D0%BE%D0%BA%D0%BE%D0%BB%D0%BE%D0%BD%D0%BE%D1%87%D0%BD%D0%BE%D0%B5%20%D0%BE%D0%B3%D0%BB%D0%B0%D0%B2%D0%BB%D0%B5%D0%BD%D0%B8%D0%B5%20%D0%B8%20%D0%BC%D0%B8%D0%BD%D0%B8-%D0%B4%D0%BE%D0%BA%D1%83%D0%BC%D0%B5%D0%BD%D1%82%20%D0%B2%20%D0%B4%D0%B2%D1%83%D1%85%D0%BA%D0%BE%D0%BB%D0%BE%D0%BD%D0%BE%D1%87%D0%BD%D0%BE%D0%BC%20%D0%B4%D0%BE%D0%BA%D1%83%D0%BC%D0%B5%D0%BD%D1%82%D0%B5.png)
У меня проблема с форматированием моих оглавлений. Пожалуйста, посмотрите мой MNWE ниже. Я хотел быперевести все мои таблицы в формат с одним столбцом. Я пытаюсь использовать решение из этогоtex.stackexchange ответ, которые используют этот фрагмент текс-кода:
\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-Script 1) :По умолчаниюв scrbook
(и scrreprt
) toc установлен водноколоночный модус. Только когда вы хотите, чтобы это было в двух столбцах, вам нужно \unsettoc{toc}{onecolumn}
. Так что, исключение этого является решением здесь …
Для минитока
Используйте \setchapterpreamble
2) . Обратите внимание, что вы должны установить его перед главой, к которой он принадлежит. С помощью двух необязательных аргументов вы можете влиять на положение и ширину.
Также обратите внимание, что мне пришлось деактивировать правила до и после с помощью \mtcsetrules{minitoc}{off}
. В качестве обходного пути я добавил два раза \hrulefill
(первый должен быть в \smash
, а затем сделать поле [это сработало бы и без него, но тогда было бы сложнее определить вертикальный пробел], второй тоже сработал бы и без него, но я просто скопировал его) и несколько вертикальных пробелов. Я думаю, что их \vspace
нужно индивидуально настраивать под шрифт и размер шрифта.
Поскольку у вас, скорее всего, будет больше одной главы, я определил две новые команды, см. ниже код для примечаний. Поскольку они имеют \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)