
Estoy trabajando en la composición tipográfica de un libro que tiene bellas ilustraciones para los títulos de los capítulos, además de ilustraciones de página completa para cada parte (por lo que la Parte 1 obtiene un arte que incorpora el texto "Parte 1", etc.). Suprimí con éxito el título del capítulo con:
\newcommand{\mychapter}[1]{%
\begingroup
\let\@makechapterhead\@gobble % make \@makechapterhead do nothing
\chapter{#1}
\endgroup
}
(Esto funciona, pero Koma se queja de la redefinición de @makechapterhead. Por ahora estoy de acuerdo con eso, pero idealmente me gustaría una solución que no moleste a Koma).
Sin embargo, me gustaría hacer lo mismo con \part y con \chapter, y no puedo hacer que esto funcione.
Aquí hay un MWE donde la tabla de contenido y los pliegos de página son correctos, PERO no quiero que se imprima la página con la "Parte 1" o la página en blanco opuesta:
\documentclass[twoside,chapterprefix,headings=big]{scrbook}
\usepackage{blindtext}
\usepackage{mwe}
\makeatletter
\newcommand{\mychapter}[1]{%
\begingroup
\let\@makechapterhead\@gobble
\chapter{#1}
\endgroup
}
\makeatother
\begin{document}
\tableofcontents
\KOMAoptions{headings=openleft}
\part{It begins}
%beautiful artwork goes... around here somewhere?
\includegraphics[width=\textwidth]{example-image-golden}
\KOMAoptions{headings=openright}
\mychapter{a chapter}
\begin{figure}[t!]
\centering
%beautiful chapter head artwork goes here
\includegraphics[width=\textwidth]{example-image-a}
\end{figure}
\blindtext
\mychapter{another chapter}
\begin{figure}[t!]
\centering
%beautiful chapter head artwork goes here
\includegraphics[width=\textwidth]{example-image-b}
\end{figure}
\blindtext
\KOMAoptions{headings=openleft}
\part{The middle bit}
%beautiful artwork goes... around here somewhere?
\includegraphics[width=\textwidth]{example-image-golden}
\KOMAoptions{headings=openright}
\mychapter{yet another chapter}
\includegraphics[width=\textwidth]{example-image-c}
\blindtext
\end{document}
(Pretendemos que la imagen "dorada" sea la obra de arte de página completa que se utilizará en lugar de que LaTeX genere la "Parte N: Título".)
Quiero que la página con la "Parte N: Título" y la página en blanco opuesta se supriman (no se impriman). El documento debe ir directamente desde la tabla de contenido a una extensión de dos páginas con la ilustración de la parte a la izquierda y el capítulo comenzando a la derecha.
Crear un \newcommand análogo a \mychapter no parece hacer nada, ni siquiera poner nada interesante en el registro:
\makeatletter
\newcommand{\mypart}[1]{%
\begingroup
\let\@makeparthead\@gobble
\part{#1}
\endgroup
}
\makeatother
Tratando de fingir una parteomitiendoel \part{It Begins}
comando y en su lugar dopar el ToC con
\addcontentsline{toc}{part}{Part \thepart: It Begins}
da como resultado que el encabezado de la parte aparezca en la tabla de contenidoabajocapítulo 1, y sin número de pieza, además no veo cómo incrementar \thepart para que las partes siguientes se numeren correctamente. Intentar incrementarlo manualmente \stepcounter{\thepart}
arroja un error.
Si la guía de Koma en inglés cubre esto, sinceramente me lo perdí.
¡Gracias a todos!
Respuesta1
No estoy seguro de entender exactamente lo que quieres. Pero en lugar de jugar con los aspectos internos de la clase, sugeriría definir un comando que haga exactamente lo que usted quiere y nada más. AFAIK quieres:
- iniciar una nueva página impar (para capítulos) o una nueva página par (para partes)
- paso el mostrador
- Opcional: agregue una entrada TOC y una marca para los encabezados de página.
- imprimir una imagen
Estoy usando un argumento opcional para la entrada TOC y la marca. Y también estoy definiendo una variante de estrella sin aumentar el número y sin entrada TOC y marca similar a \part*
y \chapter*
. Estoy usando el argumento obligatorio para el archivo de imagen:
\documentclass[chapterprefix,headings=big]{scrbook}
\usepackage{blindtext}
\usepackage{mwe}
\makeatletter
\NewDocumentCommand\ArtPart{som}{%
\cleardoubleevenpage
\IfBooleanTF{#1}{% star version: no TOC entry or page header
}{%
\refstepcounter{part}%
\IfValueTF{#2}{% optional argument: Use for TOC entry and page header
\addparttocentry{\thepart.}{#2}%
\partmark{#2}%
}{}%
}%
\noindent\includegraphics[width=\textwidth]{#3}%
\par\nobreak
\@afterindentfalse% don't indent first paragraph after the heading
\@afterheading% don't allow page break here etc.
}
\NewDocumentCommand\ArtChapter{som}{%
\cleardoubleoddpage
\IfBooleanTF{#1}{% star version: no TOC entry or page header
}{%
\refstepcounter{chapter}%
\IfValueTF{#2}{% optional argument: Use for TOC entry and page header
\addchaptertocentry{\thechapter}{#2}%
\chaptermark{#2}%
}{}%
}%
\noindent\includegraphics[width=\textwidth]{#3}%
\par\nobreak
\@afterindentfalse% don't indent first paragraph after the heading
\@afterheading% don't allow page break here etc.
}
\makeatother
\begin{document}
\tableofcontents
\ArtPart[It begins]{example-image-golden}
\ArtChapter[a chapter]{example-image-a}
\blindtext
\ArtChapter[another chapter]{example-image-b}
\blindtext
\ArtPart[The middle bit]{example-image-golden}
\ArtChapter[yet another chapter]{example-image-c}
\blindtext
\end{document}
Tenga en cuenta también que ese \thepart
no es el contador sino la salida del contador. El contador sería part
y por lo tanto para manipular el contador tienes que usar \stepcounter{part}
, \refstepcounter{part}
, \addtocounter{part}{…}
y \setcounter{part}{…}
, pero no \stepcounter{\thepart}
. Tenga en cuenta también que no hay un valor predefinido \@makeparthead
en KOMA-Script.
Para más información sobre \NewDocumentCommand
ver“LaTeX para autores – versión actual”. Para obtener más información sobre los comandos de KOMA-Script utilizados, consulte el manual de KOMA-Script.
Si realmente quieres usarlo \part
, \chapter
en mi humilde opinión deberías redefinir \chapterlineswithprefixformat
y \partlineswithprefixformat
en lugar de comandos internos:
\documentclass[chapterprefix,headings=big]{scrbook}
\usepackage{blindtext}
\usepackage{mwe}
\newcommand\mypart[2]{%
\begingroup
\KOMAoption{open}{left}%
\renewcommand*{\partlineswithprefixformat}[3]{%
\includegraphics[width=\textwidth]{#2}% this is the second argument of
% \mypart not of \partlineswithprefixformat
}%
\renewcommand*{\partheademptypage}{}% don't add an empty page after \part
\part[#1]{#2}%
\endgroup
}
\newcommand\mychapter[2]{%
\KOMAoption{open}{right}%
\DeclareCommandCopy\ChapterLinesWithPrefixFormat\chapterlineswithprefixformat
\renewcommand*{\chapterlineswithprefixformat}[3]{%
\includegraphics[width=\textwidth]{#2}% this is the second argument of
% \mychapter not of \chapterlineswithprefixformat
}%
\chapter[#1]{#2}%
\DeclareCommandCopy\chapterlineswithprefixformat\ChapterLinesWithPrefixFormat
}
\begin{document}
\tableofcontents
\mypart{It begins}{example-image-golden}
\mychapter{a chapter}{example-image-a}
\blindtext
\mychapter{another chapter}{example-image-b}
\blindtext
\mypart{The middle bit}{example-image-golden}
\mychapter{yet another chapter}{example-image-c}
\blindtext
\end{document}
Con esto, aún puedes usar \RedeclareSectionCommand
, por ejemplo, cambiar la distancia vertical antes y después del encabezado = antes y después de la imagen.
Como puede ver, no he necesitado ningún comando interno para esta segunda sugerencia, sino solo comandos que están documentados en el manual de KOMA-Script para ser utilizados por usuarios o usuarios avanzados o que están documentados en“LaTeX para autores – versión actual”.
Nota: No lo he usado \begingroup…\endgroup
en \mychapter
, porque esto también anularía la posibilidad de agregar un \label
después \mychapter
y también anularía la afterindent=false
característica de \RedeclareSectionCommand
. En lugar de eso, almacené el significado de \chapterlineswithprefixformat
before \chapter
y lo restauré después \chapter
.
Para la primera sugerencia, solo necesitaba \@afterindentfalse
y \@afterheading
del kernel LaTeX. Estos son comandos habituales para autores de clases/paquetes, pero no comandos internos de KOMA-Script.