Tengo un problema con los títulos de subsecciones o subsecciones largos: \\
no funcionan.
Como soy nuevo en Latex, adopté esta hermosa plantilla.http://www.fluortools.com/misc/LaTeXtemplatey lo modifiqué para mis necesidades.
Sin embargo, en este momento, estoy atascado con saltos de línea en los títulos de las subsecciones.
Aquí hay un MWE:
\documentclass[a4paper,12pt,oneside]{scrbook}
\usepackage[utf8]{inputenc}
\usepackage[T1]{fontenc}
\usepackage[bitstream-charter]{mathdesign}
\usepackage[scaled]{berasans}
\usepackage[scaled]{beramono}
\usepackage[english]{babel}
\usepackage[left=3cm,right=3cm,top=2.5cm,bottom=3cm,includehead,headheight=13.6pt]{geometry}
\usepackage{titlesec}
\usepackage{tikz}
\usetikzlibrary{calc,decorations,decorations.pathmorphing,arrows,matrix,positioning,patterns}
\usepackage{xcolor}
\selectcolormodel{cmyk}
\newcommand\boxedSection[3]{{%
%
\begin{tikzpicture}[inner sep=#3,line width=1.0pt]
\node[anchor=east,rectangle,draw] at (0,0) (counter) {\textbf{#2}};
\draw (counter.south west) ++(.0pt,.5pt)-- ++($(\linewidth,0) - (2.5pt,0)$);
\node [right of=counter,anchor=west]{#1};
\end{tikzpicture}
}}
\newcommand\boxedSectionB[3]{{%
%
\begin{tikzpicture}[inner sep=#3,line width=1pt]
\node[anchor=east,rectangle,draw,fill=black] at (0,0) (counter) {\color{white}\textbf{#2}};
\draw (counter.south west) ++(.0pt,.5pt)-- ++($(\linewidth,0) - (2.5pt,0)$);
\node [right of=counter,anchor=west]{#1};
\end{tikzpicture}
}}
\newcommand\boxedsection[1]{\boxedSectionB{#1}{\thesection}{2mm}}
\newcommand\boxedsubsection[1]{\boxedSection{#1}{\thesubsection}{1.7mm}}
\newcommand\boxedsubsubsection[1]{\boxedSection{#1}{\thesubsubsection}{1.5mm}}
\titleformat{\section}[hang]%
{\usekomafont{section}}%
{}%
{.0em}%
{\filright\boxedsection}%
\titleformat{\subsection}[hang]%
{\usekomafont{subsection}}%
{}%
{.0em}%
{\filright\boxedsubsection}%
\titleformat{\subsubsection}[hang]%
{\usekomafont{subsubsection}}%
{}%
{.0em}%
{\filright\boxedsubsubsection}%
\titlespacing{\section}{0pt}{1.5cm}{-1cm}
\titlespacing{\subsection}{0pt}{1.5cm}{-1cm}
\titlespacing{\subsubsection}{0pt}{6pt}{6pt}
\titlespacing{\paragraph}{}{0pt}{0pt}
\begin{document}
\subsection{This title is really really really long so I'd liked to have a \\line break but instead is just go on and on ...}
\end{document}
Tan pronto como elimino la parte boxedSection en el formato de título, el salto de línea \\
funciona nuevamente, pero, por supuesto, también se elimina el bonito diseño.
¿Podría alguien modificar el MWE para que el salto de línea vuelva a funcionar, pero se mantiene el bonito diseño?
¡¡Muchas gracias!!
Mischko
EDITAR
Entonces encontré una solución que funciona bien para mi propósito. Como sugiere touhami, agregué text width=13cm
y anchor=west
eliminé la línea en boxedSection mientras dejé boxedSectionB sin cambios. Entonces el código se ve así:
\newcommand\boxedSection[3]{{%
%
\begin{tikzpicture}[inner sep=#3,line width=1.0pt]
\node[anchor=east,rectangle,draw] at (0,0) (counter) {\textbf{#2}};
\node [right of=counter,anchor=west,text width=13cm]{#1};
\end{tikzpicture}
}}
Respuesta1
Actualizar
Aquí hay otra sugerencia sin paquete titlesec
. Ahora no hay reglas debajo de los títulos.
\documentclass[a4paper,12pt,oneside]{scrbook}[2015/10/03]
\usepackage[utf8]{inputenc}
\usepackage[T1]{fontenc}
\usepackage[bitstream-charter]{mathdesign}
\usepackage[scaled]{berasans}
\usepackage[scaled]{beramono}
\usepackage[english]{babel}
\usepackage[margin=3cm,top=2.5cm,includehead,headheight=13.6pt]{geometry}
\usepackage{xcolor}
\setcounter{secnumdepth}{\subsubsectionnumdepth}% subsubsection numbered
\RedeclareSectionCommands[
font=\normalsize,
%indent=-1em
]{section,subsection,subsubsection}
\newcommand*\BoxedSectionNumber[2]{{%
\setlength\fboxrule{1pt}%
\setlength\fboxsep{#2}%
\ifstr{#1}{section}{%
\colorbox{darkgray}{\textcolor{white}{\csname the#1\endcsname}}%
}{\fbox{\csname the#1\endcsname}}%
\hspace*{2\fboxsep}%
}}
\renewcommand*\sectionformat{\BoxedSectionNumber{section}{2mm}}
\renewcommand*\subsectionformat{\BoxedSectionNumber{subsection}{1.7mm}}
\renewcommand*\subsubsectionformat{\BoxedSectionNumber{subsection}{1.5mm}}
\newsavebox\SectionNumberBox
\renewcommand*\sectionlinesformat[4]{%
\sbox{\SectionNumberBox}{\hspace*{#2}#3}%
\noindent\usebox\SectionNumberBox%
\parbox{\dimexpr\textwidth-\wd\SectionNumberBox\relax}{#4}%
\par\nobreak%
}
\usepackage{blindtext}% dummy text
\begin{document}
\section{Section title}
\blindtext
\subsection{This title is really really really long so I'd liked
to have a line break but instead is just go on and on ...}
\blindtext
\subsubsection{Subsubsection title}
\blindtext
\end{document}
Resultado:
Si descomentas indent=-1em
obtendrás
Respuesta original
titlesec
Tenga en cuenta que no se recomienda el uso del paquete junto con una clase KOMA-Script. Recibirá advertencias mediante KOMA-Script y titlesec
.
Aquí hay una sugerencia sin titlesec
y tikz
que necesita al menos la versión 3.19a de KOMA-Script (actual en CTAN).
\documentclass[a4paper,12pt,oneside]{scrbook}[2015/10/03]
\usepackage[utf8]{inputenc}
\usepackage[T1]{fontenc}
\usepackage[bitstream-charter]{mathdesign}
\usepackage[scaled]{berasans}
\usepackage[scaled]{beramono}
\usepackage[english]{babel}
\usepackage[left=3cm,right=3cm,top=2.5cm,bottom=3cm,includehead,headheight=13.6pt]{geometry}
\usepackage{xcolor}
\setcounter{secnumdepth}{\subsubsectionnumdepth}% subsubsection numbered
\RedeclareSectionCommands[font=\normalfont]{section,subsection,subsubsection}
\RedeclareSectionCommands[
beforeskip=-1.5cm,
afterskip=1cm,
font=\normalfont
]{section,subsection}
\RedeclareSectionCommand[
beforeskip=-12pt,
afterskip=6pt,
font=\normalfont
]{subsubsection}
\newcommand*\sectionnumberfboxsep{2mm}
\newcommand*\subsectionnumberfboxsep{1.7mm}
\newcommand*\subsubsectionnumberfboxsep{1.5mm}
\renewcommand*\sectionformat{{%
\setlength\fboxsep{\sectionnumberfboxsep}%
\setlength\fboxrule{1pt}%
\colorbox{black}{\bfseries\textcolor{white}{\thesection}}%
}}
\renewcommand*\subsectionformat{{%
\setlength\fboxsep{\subsectionnumberfboxsep}%
\setlength\fboxrule{1pt}%
\fbox{\bfseries\thesubsection}%
}}
\renewcommand*\subsubsectionformat{{%
\setlength\fboxsep{\subsubsectionnumberfboxsep}%
\setlength\fboxrule{1pt}%
\fbox{\bfseries\thesubsubsection}%
}}
\makeatletter
\renewcommand*\sectionlinesformat[4]{%
\ifstr{#1}{section}{%
\leavevmode\rlap{\rule[\dimexpr-\sectionnumberfboxsep-1pt\relax]{\textwidth}{1pt}}%
\parbox[b]{3em}{#3}\parbox[b]{\dimexpr\textwidth-3em}{#4}\par\nobreak%
}{%
\ifstr{#1}{subsection}{%
\leavevmode\rlap{\rule[\dimexpr-\subsectionnumberfboxsep-1pt\relax]{\textwidth}{1pt}}%
\parbox[b]{4em}{#3}\parbox[b]{\dimexpr\textwidth-4em}{#4}\par\nobreak%
}{%
\ifstr{#1}{subsubsection}{%
\leavevmode\rlap{\rule[\dimexpr-\subsubsectionnumberfboxsep-1pt\relax]{\textwidth}{1pt}}%
\parbox[b]{4.75em}{#3}\parbox[b]{\dimexpr\textwidth-4.75em}{#4}\par\nobreak%
}{%
\@hangfrom{\hspace*{#2}#3}{#4}%
}}}%
}
\makeatletter
\usepackage{blindtext}% dummy text
\begin{document}
\section{Section title}
\blindtext
\subsection{This title is really really really long so I'd liked to have a line break but instead is just go on and on ...}
\blindtext
\subsubsection{Subsubsection title}
\blindtext
\end{document}