%3A%20%C3%ADndice%20de%20una%20columna%20y%20minitoc%20en%20un%20documento%20de%20dos%20columnas.png)
Tengo un problema con el formato de mis tablas de contenido. Consulte mi MNWE a continuación. Me gustaríacambiar todas mis tablas en un diseño de columna. Intento usar la solución de esto.respuesta tex.stackexchange, que utilizan esta paz del código tex:
\unsettoc{toc}{onecolumn}
pero parece que eso no funciona. Intenté entender el manual scrbook (página264), pero lamentablemente no lo entendí. Yo uso miktex/xelatex. Adjunto también fotos del resultado de la traducción.
\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}
Figura 1: Dominio
\tableofcontents
Figura 2: Dominio
\minitoc
Respuesta1
Para el tema principal
Lea atentamente nuevamente la respuesta vinculada y la documentación de KOMA-Script 1) :Por defectoscrbook
y enscrreprt
) el toc se establece enmodo de una columna. Sólo que, cuando quieras tenerlo en dos columnas, necesitarás \unsettoc{toc}{onecolumn}
. Entonces, dejarlo fuera es la solución aquí...
para el minitoc
Utilice \setchapterpreamble
2) . Tenga en cuenta que debe configurarlo antes del capítulo al que pertenece. Con dos argumentos opcionales puedes influir en la posición y el ancho.
También tenga en cuenta que tuve que desactivar las reglas antes y después con \mtcsetrules{minitoc}{off}
. Como solución alternativa, agregué dos veces \hrulefill
(la primera debe estar dentro \smash
y luego en un cuadro de creación [habría funcionado sin él, pero luego es más difícil determinar el espacio vertical], el segundo también funcionaría sin él, pero simplemente lo copié) y algo de vertical. espacios. Supongo que \vspace
deben ajustarse individualmente a la fuente y al tamaño de fuente de cada uno.
Como es muy probable que tenga más de un capítulo, definí dos comandos nuevos; consulte el código a continuación para comentarios. Debido a que estos tienen \setchapterpreamble
dentro (o están pensados para usarlos dentro),estosdebe establecerse antes de cada capítulo.
\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}
En la mayoría de los casos bastará con poner \setchaptertoc
delante un capítulo. Pero para los casos en los que desea agregar más que el minitoc, definí \dochaptertoc
las soluciones alternativas para las reglas eliminadas destinadas a usarse en \setchapterpreamble
, cf. capítulo 2 en el ejemplo.
1) Leer en línea en Texdoc.net:“\setuptoc” y “\unsettoc”(PDF)
2) Lea también en línea en Texdoc.net:“\setpartpreamble” y “\setchapterpreamble”(PDF de nuevo)