Como quebrar a linha ao usar raisebox
o comando no \section
. Meu MWE é:
\documentclass{book}
\usepackage[explicit]{titlesec}
\usepackage{lmodern}
\usepackage{graphicx}
\usepackage{xcolor,lipsum,mdframed}
\definecolor{sectcolor}{cmyk}{0,1,.75,.39}
\definecolor{sectbgcolor}{RGB}{0,106,168}
\definecolor{sectsubbgcolor}{RGB}{0,139,191}
\renewcommand{\thesection}{\thechapter\Alph{section}}
\renewcommand{\chaptermark}[1]{\markboth{#1}{}}
\renewcommand{\sectionmark}[1]{\markright{\thesection.\ #1}}
\makeatletter
\titleformat{\section}
{\fontsize{18}{20}\selectfont\color{white}\bfseries}
{\llap{\smash{\parbox[t]{2em}{\raggedleft%
\colorbox{sectcolor}{%
\makebox[\dimexpr2em-2\fboxsep\relax][r]{%
\hfill\strut\thesection
}%
}\\[1ex]
\includegraphics[width=1.5em]{image-1}\\[2pt]
\includegraphics[width=1.5em]{image-1}\\[2pt]
\includegraphics[width=1.5em]{image-1}\\[2pt]
}}\hspace*{0.5em}}%
}
{0em}
{\makebox[\linewidth][l]{\colorbox{sectbgcolor}{\parbox[t] {\dimexpr\paperwidth-\oddsidemargin-1in-2\fboxsep-5pt\relax}{%
\strut\fontsize{18}{20}\selectfont\raisebox{-2.5pt}[0pt][0pt]{#1}%
\if\sectionsubtitle\empty
\else
\hspace{5pt}\smash{\colorbox{sectsubbgcolor} {\strut\large\sectionsubtitle}}%
\fi}
}}%
}
\makeatother
\def\sectionsubtitle{\empty}
\newcommand\Ssection[3][]{%
\gdef\sectionsubtitle{#3}\section[#1]{#2}\gdef\sectionsubtitle{\empty}%
}
\begin{document}
\chapter{Chapter Title Here}
\section{Count systems}
\lipsum[1]
\Ssection{Number systems}{Consolidating}
\lipsum[1]
\Ssection{Highest common factor and lowest common\hfil\break multiple}{Consolidating}
\end{document}
Responder1
Em primeiro lugar, você não deve adicionar quebras manuais aos títulos. Em vez disso, você deve configurar sua macro de titulação para que ela seja espalhada por várias linhas conforme necessário. No seu caso, construir uma caixa para conter a cor de fundo e colocar um parbox
interior para conter o texto irá conseguir isso.
Em segundo lugar, acredito que você está usando um raisebox porque as alturas e profundidades estão erradas. Isso parece ser causado pelo uso errado \strut
. Sua codificação \strut\fontszie{...}\selectfont
significa que o suporte não está ajustado ao novo tamanho da fonte. Em vez disso, escreva nesta ordem `\fontsize{...}\selectfont\strut.
\documentclass{book}
\usepackage[explicit]{titlesec}
\usepackage{lmodern}
\usepackage[demo]{graphicx}
\usepackage{xcolor,lipsum}
\definecolor{sectcolor}{cmyk}{0,1,.75,.39}
\definecolor{sectbgcolor}{RGB}{0,106,168}
\definecolor{sectsubbgcolor}{RGB}{0,139,191}
\renewcommand{\thesection}{\thechapter\Alph{section}}
\renewcommand{\chaptermark}[1]{\markboth{#1}{}}
\renewcommand{\sectionmark}[1]{\markright{\thesection.\ #1}}
\titleformat{\section}
{\color{white}\fontsize{18}{20}\bfseries}
{\llap{\smash{\parbox[t]{2em}{\raggedleft%
\colorbox{sectcolor}{%
\makebox[\dimexpr2em-2\fboxsep\relax][r]{%
\hfill\strut\thesection
}%
}\\[1ex]
\includegraphics[width=1.5em]{image-1}\\[2pt]
\includegraphics[width=1.5em]{image-1}\\[2pt]
\includegraphics[width=1.5em]{image-1}\\[2pt]
}}\hspace*{0.5em}}%
}
{0em}
{\colorbox{sectbgcolor}{%
\makebox[\dimexpr\paperwidth-\oddsidemargin-1in-2\fboxsep-5pt\relax]{%
{\parbox[t]{\linewidth}{%
\raggedright\fontsize{18}{20}\selectfont\strut #1%
\if\sectionsubtitle\empty
\else
\hspace{5pt}%
\smash{\colorbox{sectsubbgcolor}{\large\strut\sectionsubtitle}}%
\fi}}\hfill
}}%
}
\def\sectionsubtitle{\empty}
\newcommand\Ssection[3][]{%
\gdef\sectionsubtitle{#3}\section[#1]{#2}\gdef\sectionsubtitle{\empty}%
}
\begin{document}
\chapter{Chapter Title Here}
\section{Count systems}
\lipsum[1]
\Ssection{Number systems}{Consolidating}
\lipsum[1]
\Ssection{Highest common factor and lowest common multiple}{Consolidating}
\end{document}