EDITAR

EDITAR

Estoy trabajando en un documento extenso con muchos capítulos, usando la clase de informe.

Me gustaría tener tres versiones diferentes de los títulos de determinadas secciones (largo para documento, medio para TOC y corto para encabezado). Estoy usando el paquete fancyhdr, así que seguí las instrucciones de una manera agradable.Preguntas más frecuentes(también dado en esta pregunta:¿Cómo utilizar un título de subsección breve en el encabezado pero no en la tabla de contenido?).

\section[TOC_title]{Full_title\sectionmark{Header_title}}
\sectionmark{Header_title}

(Creo que la idea es que el título interior sectionmarkse ocupa de la página en la que comienza la sección y el título exterior se ocupa de las páginas siguientes).

Todo esto funcionó bien. Sin embargo, debido a que mi documento tiene doble espacio, también solía titlesecreducir algunos espacios en blanco alrededor de los títulos de los capítulos y las secciones.

Ahora obtengo el encabezado TOC_title en la página en la que comienza la sección (incorrecto) y luego el encabezado Header_title (correcto) en las páginas siguientes. Obviamente me gustaría arreglar esto.

Sospecho que fancyhdres una mala idea a largo plazo y debería cambiar a otro paquete de encabezado, pero no quiero alterar el documento actual. Tampoco quiero dejarlo ir titlesecahora porque realmente me ha ayudado mucho con el espacio en blanco a doble espacio, y el problema que estoy teniendo es menor en comparación.

¿Hay alguna manera de solucionar este problema usandotitlesec ? He intentado leer eldocumentaciónpero me estoy confundiendo mucho. Estaría muy agradecido si alguien que ya conozca este paquete pudiera hacer una sugerencia.

Esta pregunta se ha hecho antes en¿Cómo pongo un título corto en el encabezado pero un título largo en el toc (en conflicto entre el paquete titlesec y la marca de sección)?. Pero la única respuesta sugiere KOMA-script; Sospecho que se trata de otra familia de paquetes que no voy a aprender ahora.

Permítanme agregar también que mi tesis debe entregarse mañana, por lo que hoy no tendré tiempo para elaborar un pequeño ejemplo práctico. Estoy interesado en resolver este problema tanto hoy como a largo plazo, para poder volver y hacerlo más tarde si es necesario. Pero mientras tanto, ¡agradecería mucho cualquier respuesta hoy!

ACTUALIZACIÓN (1 de mayo de 2015): Aquí hay un ejemplo de trabajo mínimo. El encabezado de Ponysec en su primera página es correcto si \usepackage{titlesec} está comentado y no en caso contrario. El encabezado Carouselsec utiliza el minihack de Ulrike Fischer y funciona en ambos sentidos.

\documentclass{report}
\usepackage{fancyhdr}
\usepackage{titlesec}
\newcommand{\funnysection}[3]
     {\let\orisectionmark\sectionmark
     \renewcommand\sectionmark[1]{}%
     \section[{#2}]{{#1}\orisectionmark{{#3}}}
     \orisectionmark{{#3}}
     \let\sectionmark\orisectionmark}
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
%%%%%%% BEGIN DOCUMENT    %%%%%%%%%%%
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
\begin{document}
\tableofcontents
\pagestyle{fancy}

\chapter{Mychapter}
\section{Cactussec (UNIVERSION)}
No header on this page.
\clearpage
\section[Ponysec (TOC)]{Ponysec (main)\sectionmark{Ponysec (header)}}
\sectionmark{Ponysec (header)} 
Desired header here is "Ponysec (header)".
\clearpage
Desired header here is "Ponysec (header)".
\clearpage
\funnysection{Carouselsec (main)}{Carouselsec (TOC)}{Carouselsec (header)}
Desired header here is "Carouselsec (header)".
\clearpage
Desired header here is "Carouselsec (header)".
\end{document}

Si la solución correcta (para mí, que no sabe realmente lo que significa KOMA/KONA/script y aún así quiere crear documentos tipográficos decentes hoy, esta semana, este mes a pesar de esta enorme ignorancia) es usar titlepsen lugar de fancyhdr, todavía elegiría Me encantaría saber cómo hacerlo.

Respuesta1

Puedes probar algo como esto para engañar a titlesec:

\let\orisectionmark\sectionmark
\renewcommand\sectionmark[1]{}%
\section[TOCtitle]{Fulltitle\orisectionmark{Headertitle}}
\orisectionmark{Headertitle}
\let\sectionmark\orisectionmark

EDITAR

Algunas observaciones sobre los comentarios: No proporcionó un ejemplo mínimo, por lo que la mayor parte fueron conjeturas. titlesec llama internamente \sectionmark{TOCtitle}tan temprano que sus propios \sectionmarkcomandos llegan demasiado tarde. Así que estoy redefiniendo \sectionmarka nada para que titlesec ya no pueda establecer una marca y usar una copia \orisectionmarkpara establecer sus marcas. Reemplazar el del medio \orisectionmarkcon \sectionmarkdeberíanotrabajo: después de todo, el comando está definido para no hacer nada.

No sé por qué no quieres usar las clases KONA, pero en mi humilde opinión, una solución con titlesec implicaría eliminar fancyhdr y usar titleps en su lugar. Estoy bastante seguro de que Javier implementó en algún lugar una forma de establecer las marcas correctamente, pero como ya descubrió, sus documentaciones no son fáciles de leer y encontrar algo que funcione a menudo implica muchas pruebas y errores y leer el código.

Respuesta2

Usando KOMA-script, no habría ningún problema :-)

\documentclass[headings=optiontoheadandtoc]{scrartcl}
\usepackage[automark]{scrlayer-scrpage}
\usepackage{blindtext}
\begin{document}
\tableofcontents
\section[tocentry={platypus dancing till morning},%
head={dancing platypus}]%
{The platypus went on dancing till the mornig sun rose
over the hills}
\blindtext[5]
\end{document}

annaTocHeadTítulos

información relacionada