![Como faço para levantar o título do capítulo no script Koma para que fique alinhado com o prefixo do capítulo?](https://rvso.com/image/286992/Como%20fa%C3%A7o%20para%20levantar%20o%20t%C3%ADtulo%20do%20cap%C3%ADtulo%20no%20script%20Koma%20para%20que%20fique%20alinhado%20com%20o%20prefixo%20do%20cap%C3%ADtulo%3F.png)
Atualmente tenho isso:
\documentclass{scrbook}
\usepackage{mwe}
\renewcommand*{\chapterformat}{\mbox{\chapappifchapterprefix{\nobreakspace}\scalebox{3}{\thechapter}\enskip}}
\begin{document}
\chapter{\baselineskip{-1em}This chapter caption has multiple lines and does not fit into a single line}
\lipsum[1]
\end{document}
Mas o que eu quero é que o título do capítulo esteja alinhado com a linha de base do prefixo semelhante a este:
Eu sei que títulos de capítulos longos são uma dor. Mas às vezes eles não cabem em uma única linha e considero o primeiro resultado um pouco perturbador.
Responder1
Usar a \Longstack
funcionará para um nome de capítulo de duas linhas, com quebras inseridas manualmente. Porém, se você chegar a três linhas, nenhum método será adequado para análise.
\documentclass{scrbook}
\usepackage{mwe}
\renewcommand*{\chapterformat}{\mbox{\chapappifchapterprefix{\nobreakspace}\scalebox{3}{\thechapter}\enskip}}
\usepackage{lipsum}
\usepackage[usestackEOL]{stackengine}
\begin{document}
\chapter{\Longstack[l]{This chapter caption has multiple lines\\ and does not fit into a single line}}
\lipsum[1]
\end{document}
Observe também que \Longstack
não alinhará o texto do título da borda direita com a margem direita. Sua aparência aqui é meramente fortuita.
Por último, se desejar usar um índice, você precisará usar o argumento opcional \chapter
como tal:
\chapter[This chapter caption has multiple lines and does not fit into a single line]%
{\Longstack[l]{This chapter caption has multiple lines\\ and does not fit into a single line}}
para evitar que a pilha apareça no toc.
Responder2
Uma solução com quebra automática de linha usando minipáginas:
As minipáginas precisam de uma especificação de largura. Assim defini um novo comando \chapmark
contendo a maior parte da \chapterformat
definição, cujo comprimento posso medir. Para isso utilizei dois recursos do package calc
: o comando \widthof
e a possibilidade de fazer cálculos de comprimentos. A orientação da linha de base é protegida pelo b
argumento opcional das minipáginas.
O novo \Chapter
comando (com C maiúsculo) é definido de forma que você possa usar os recursos aprimorados do KOMA-Script a serem fornecidos no argumento opcional, mas observe que ele não pode ser usado com a opção KOMA-Script chapterprefix
definida como verdadeira. O padrão \chapter
deve ser usado então, cf. saída abaixo dos capítulos 11 e 12 no exemplo.
Além disso, a saída do Índice não é influenciada pelas minipáginas. Veja também a saída abaixo.
Além disso, usei \RaggedRight
from ragged2e
como substituto \raggedright
para melhor alinhamento.
Em vez de \NewDocumentCommand
from xparse
eu poderia ter usado também um clássico \newcommand
junto com testes para strings vazias de pacotes (x)ifthen
ou etoolbox
.
\documentclass{scrbook}
\usepackage[T1]{fontenc}
\usepackage[english]{babel}
\usepackage{calc} % provides advanced length computation and command "\widthof"
\usepackage{ragged2e}% better text alignment
\usepackage{xparse}% advanced command definitions
\renewcommand*{\raggedchapterentry}{\RaggedRight}% for chapter TOC entries
\renewcommand*{\raggedsection}{\RaggedRight}% for alignment in titles
\newcommand*{\chapmark}{%
\scalebox{1.5}{\chapappifchapterprefix{\nobreakspace}}\scalebox{3}{\thechapter}\enskip%
}
\renewcommand*{\chapterformat}{%
\begin{minipage}[b]{\widthof{\chapmark}}
\chapmark
\end{minipage}%
}
\NewDocumentCommand\Chapter{o m}{% note the uppercase "C"
\IfValueTF{#1}% optional argument given or not
{% with optional argument:
\chapter[#1]{%
\begin{minipage}[b]{\textwidth-\widthof{\chapmark}}
#2
\end{minipage}}%
}{% without optional argument:
\chapter[#2]{%
\begin{minipage}[b]{\textwidth-\widthof{\chapmark}}
#2
\end{minipage}}%
}
}
\begin{document}
\Chapter{This chapter caption is too long to fit into a single line} % ch. 1
\Chapter[TOC entry for caption with 3 lines] % ch. 2
{This chapter caption is longer than the first one and does not even fit into
two lines}
\setcounter{chapter}{9}
\Chapter{Another chapter caption that is too long to fit into a single line} % ch. 10
\KOMAoption{chapterprefix}{true}
\Chapter[Another TOC entry for caption with 3 lines] % ch. 11
{This chapter caption is also longer than the first one and does not even fit into
two lines}
\chapter{% ch. 12
This caption produced with \textmd{\textbackslash chapter} is too long to fit into
a single line}
\tableofcontents
\end{document}