Como faço para levantar o título do capítulo no script Koma para que fique alinhado com o prefixo do capítulo?

Como faço para levantar o título do capítulo no script Koma para que fique alinhado com o prefixo do capítulo?

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}

prefixo e título alinhados apenas com a primeira linha

Mas o que eu quero é que o título do capítulo esteja alinhado com a linha de base do prefixo semelhante a este:

O que eu quero ter

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 \Longstackfuncionará 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}

insira a descrição da imagem aqui

Observe também que \Longstacknã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 \chaptercomo 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 \chapmarkcontendo a maior parte da \chapterformatdefinição, cujo comprimento posso medir. Para isso utilizei dois recursos do package calc: o comando \widthofe a possibilidade de fazer cálculos de comprimentos. A orientação da linha de base é protegida pelo bargumento opcional das minipáginas.

O novo \Chaptercomando (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 chapterprefixdefinida como verdadeira. O padrão \chapterdeve 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 \RaggedRightfrom ragged2ecomo substituto \raggedrightpara melhor alinhamento.

Em vez de \NewDocumentCommandfrom xparseeu poderia ter usado também um clássico \newcommandjunto com testes para strings vazias de pacotes (x)ifthenou 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}

saída da legenda do primeiro capítulo

saída da legenda para o segundo capítulo

saída da legenda para o terceiro capítulo

saída da legenda para o quarto capítulo

saída da legenda para o quinto capítulo

saída do Índice

informação relacionada