Solución:
Aunque el memoir
clase, fancychap
, titlesec
y otros tienen algunos estilos de capítulo predefinidos, entiendo su búsqueda de algo mejor.
Hay dos cuestiones a considerar aquí:
- Las limitaciones de la estructura y los comandos originales de LaTeX y,
- Los requisitos tipográficos para tal esfuerzo.
Una de las dificultades en la redefinición de capítulos, son los diferentes mecanismos proporcionados por los distintos paquetes así como por LaTeX
. Para complicar aún más las cosas, el código en el book.cls
se distribuye en al menos cuatro trozos.
Un enfoque para superar las limitaciones y proporcionar algunas rutinas más generales y bien resumidas para definir un key-enfoque de valor similar a los proporcionados por PGF
keys. A veces he trabajado un poco al respecto y un escenario típico sería:
cxset
name=soCHAPTER,
numbering=arabic,
number font-size=large,
number before=,
number position=rightname,
chapter color=black!80,
chapter font-size=large,
chapter before=rule[3pt]textwidth0.4ptparhfill,
number after=,
chapter after=hfillhfillparrule[6pt]textwidth0.4ptpar,
number color=colorblack!80,
title font-family=bfseries,
title font-color=colorblack!80,
title font-weight=,
title font-size=LARGE,
title beforeskip=hfillparhspace*0pt,
header style=empty
Aunque el keys y el código puede parecer a primera vista abrumador, puede simplificarse enormemente mediante el uso de styles
. Así que una vez un conjunto de keys se ha definido, se puede almacenar en un .style
mando. Otra ventaja de este método es que la configuración de la comunidad se puede incorporar fácilmente mediante el uso de bibliotecas. Esto es importante para TikZ
diseños basados, donde las formas y la complejidad no se pueden abstraer fácilmente si es que lo hacen.
Esto nos lleva a la segunda parte de los problemas asociados con las redefiniciones de los capítulos: la tipografía. La apariencia del capítulo debe combinarse con el resto del diseño. Considere, por ejemplo, las siguientes dos imágenes:
No es bueno tener solo definiciones para los capítulos. El estilo debe extenderse a ejercicios, tablas, secciones, tabla de contenido y similares. Un método similar a usar un keyEl enfoque de valor puede facilitar esta tarea y compartir el estilo entre la comunidad. Originalmente experimenté con .ini
archivos y LuaLaTeX
para cargarlos. sin embargo, el key El enfoque de valor es mejor y más familiar para la comunidad.
He recopilado más de 50 estilos de diferentes libros y tengo el código básico listo para experimentar (solo para capítulos).
Y ahora la parte de codificación. Primero definimos keys para todos los elementos principales:
defcxsetpgfqkeys/chapter
cxset%
name/.code=gdefchaptername#1,
chapter font-family/.store in=[email protected],
...
Como queremos usar la estructura y las convenciones básicas de LaTeX, redefinimos el
@makechapterhead
para manejar el keys. Recuerde que hay dos comandos utilizados por LaTeX
para componer títulos de capítulos. Uno se usa para la versión sin estrellas del comando, mientras que el otro es para la versión con estrellas. La versión con estrella del comando en nuestro enfoque es innecesaria ya que podemos definir un key instruya al motor de composición tipográfica para que ignore la numeración (numbering=none
) y, por lo tanto, redirigimos tanto la versión destacada como la no destacada a la misma macro.
renewcommand@makechapterhead[2][]%
...
[email protected]%
[email protected]%
[email protected]%
counterdisplay[email protected][email protected]%
fi
...
los macro contiene el algoritmo de composición tipográfica y se engancha en las diversas keys. Para componer un encabezado de capítulo, el enfoque más simple es definir un conjunto de keys como estilos. Por ejemplo, podemos usar:
cxset{manet/.style=
name=,
numbering=none,
...
para definir el estilo “manet”. Luego, el capítulo se compone como:
cxsetmanet
chapterEDOUARD MANET
beginmulticols3
leftskip0pt
lettrineIpsum dolor sit amet latixeus. lipsum*[1-2]
Latinicus porcupinus to fill the line.
endmulticols
Dándonos el siguiente resultado:
Con ligeras variaciones, podemos heredar el estilo y obtener el “cardenal en un capítulo de vespa”:
cxsetmanet
topimage
chapterALAN MacDONALD
Adicional keys se puede definir si es necesario para atender a todos los campos.
Los capítulos hechos solo con componentes textuales son más fáciles de definir. Simplemente establezca el número de estilo.
cxsetstyle7
chapterIntroduction to Style Seven
...
cxsetstyle12
chapterIntroduction to Style Twelve
...
Las aperturas de capítulos especiales necesitan un tratamiento diferente y se describen mejor como entornos, ya que tienden a tener muchos componentes textuales, así como imágenes:
beginspecialchapter[
image=genetics-dogs,%chromosomes
image caption=Labrador retriever\
...
by two gene pairs.]%
Extensions\ of Mendelian\ Genetics
beginitemize
...
enditemize
endspecialchapter
La segunda imagen de arriba solo tenía la imagen key cambiado, solo para ilustrar la técnica. Como punto de interés, las imágenes se colocaron con técnicas tradicionales de boxeo en lugar de utilizar tikZ
o picture commands
. El sombreado se logró estirando un archivo de imagen “sombra”, más o menos como se usaba en la web en los días anteriores a html5.
La técnica ha demostrado ser útil, fácil de definir y, aunque la documentación todavía necesita ser desarrollada y el código necesita una buena limpieza y algunas cosas que debe hacer; Mientras tanto, puede descargar las muestras de imágenes (utilizadas en la documentación), el archivo del paquete chapterx, el archivo tex de la documentación y el archivo pdf de la documentación.
Por favor envíeme un mensaje en el chat, si tiene otros diseños interesantes que podamos agregar a la colección.
Podrías usar titlesec
junto con TikZ. Aquí hay un ejemplo que puede modificar en color y forma:
documentclass[svgnames]report
usepackagetikz
usepackagekpfonts
usepackage[explicit]titlesec
newcommand*chapterlabel
titleformatchapter
gdefchapterlabel
normalfontsffamilyHugebfseriesscshape
gdefchapterlabelthechapter 0pt
begintikzpicture[remember picture,overlay]
node[yshift=-3cm] at (current page.north west)
begintikzpicture[remember picture, overlay]
draw[fill=LightSkyBlue] (0,0) rectangle
(paperwidth,3cm);
node[anchor=east,xshift=.9paperwidth,rectangle,
rounded corners=20pt,inner sep=11pt,
fill=MidnightBlue]
colorwhitechapterlabel#1;
endtikzpicture
;
endtikzpicture
titlespacing*chapter0pt50pt-60pt
begindocument
tableofcontents
chapterIntroduction
Text
chapterMain
sectionSection
Text
beginthebibliography99
bibitemTest test reference
endthebibliography
enddocument
Fuente: TeXblog.
No se te olvide difundir este enunciado si te fue de ayuda.