
Siguiendo mi pregunta sobre elpersonalización del encabezado de la sección, Me gustaría tener el cuadro con el número de sección siempre en el exterior de la página (estoy usando la opción de dos lados). Es decir, para páginas impares, el cuadro con el número de sección debe estar a la derecha, mientras que para páginas pares, el cuadro con el número de sección debe quedar a la izquierda.
Para páginas pares:
y para páginas impares:
Aquí vienen los problemas:
- Cambié el código manualmente para obtener el número de sección en el lugar deseado para los fragmentos. Pero, por supuesto, esto no es aceptable para documentos grandes. ¿Alguna ayuda para hacer esto automáticamente?
- Para las páginas impares, no pude lograr que el cuadro saliera del área de texto, como en las páginas pares.
Una vez más, cualquier orientación es bienvenida.
Aquí está mi MWE:
\documentclass[openright]{scrbook}
\usepackage{geometry}
\geometry{a4paper,twoside, margin=3cm}
\usepackage{blindtext}
\usepackage{xcolor}
\usepackage{xhfill}
\renewcommand*{\sectionformat}{%
\usekomafont{section}%
\makebox[0pt][r]{%
\fboxrule=1.5pt\fcolorbox{blue}{white!0}{\color{black}\thesection}\color{blue}\rule[.6ex]{10pt}{1.5pt}
}%
}
\makeatletter
\renewcommand*{\sectionlinesformat}[4]{%
\@hangfrom{\hskip #2#3}{\color{blue}#4}$\;$%
\xrfill[.6ex]{1.5pt}[blue]%
}
\makeatother
\begin{document}
\chapter{Introduction}
\section{Section 1}
\Blindtext[2]
\section{Section 2}
\Blindtext[2]
\section{Section 3}
\Blindtext[2]
\section{Section 4}
\Blindtext[2]
\end{document}
¡Gracias!
Respuesta1
Podrías usar el comando KOMA-Script \Ifthispageodd
:
\documentclass[twoside,open=right]{scrbook}
\usepackage{geometry}
\geometry{margin=3cm}
\usepackage{blindtext}% only for dummy text
\usepackage{xcolor}
\usepackage{xhfill}
\renewcommand*{\sectionformat}{%
\fboxrule=1.5pt\fcolorbox{.}{white}{\normalcolor\thesection}%
}
\renewcommand*{\subsectionformat}{%
\fboxrule=1.5pt\fcolorbox{.}{white}{\normalcolor\thesubsection}%
}
\makeatletter
\renewcommand*{\sectionlinesformat}[4]{%
\Ifthispageodd
{\rule[.6ex]{10pt}{1.5pt}\;#4\;\xrfill[.6ex]{1.5pt}[.]\hspace{-1pt}\usekomafont{#1}\makebox[0pt][l]{\rule[.6ex]{11pt}{1.5pt}#3}}
{\makebox[0pt][r]{#3\rule[.6ex]{10pt}{1.5pt}\;}#4\;\xrfill[.6ex]{1.5pt}[.]}%
}
\makeatother
\addtokomafont{section}{\color{blue!50!black}}
\addtokomafont{subsection}{\color{green!50!black}}
\begin{document}
\chapter{Introduction}
\section{Section 1}
\subsection{Subsection}
\Blindtext[2]
%\vspace{4\baselineskip}
\section{Section 2}
\Blindtext[1]
%\clearpage
\section{Section 3}
\Blindtext[2]
\section{Section 4, very long section title that requires more than one line}
\Blindtext[2]
\end{document}
Advertencia: \Ifthispageodd
tiene limitaciones. Si el comando se ejecuta en una página, pero el contenido se traslada a la página siguiente, sale mal. Descomente la línea \vspace{4\baselineskip}
para ver el problema. Por lo tanto, debe controlar su documento cuando termine y solucionar el problema usando, por ejemplo. \clearpage
.
Observación adicional: El código de la pregunta utiliza el mismo formato para los títulos de sección, subsección y subsubsección. Agregué una subsección para mostrar este comportamiento y cómo usar diferentes colores para los títulos de sección y subsección.