Saltar al contenido

ConTeXto: Dibuje una línea debajo del texto del encabezado

Luego de investigar con expertos en este tema, programadores de diversas ramas y profesores dimos con la solución a la cuestión y la compartimos en esta publicación.

Solución:

Como señaló Timothy Li, la solución de Aditya dibuja la línea en cada página. Es posible definir un encabezado (o pie de página) que solo aparece en las páginas con contenido. Para mis propósitos, utilicé un pie de página, pero el siguiente código podría aplicarse igualmente solo al encabezado:

setuphead[chapter][
  header=empty,
]

% Define the appearance for the section name in the footer.
defineframed[FooterSection][
  frame=off,
  topframe=on,
  align=flushleft,
  width=makeupwidth,
  rulethickness=1.6pt,
  location=bottom,
  foregroundstyle=tfxss,
  height=broad,
  top=blank[small],
]

% Define the appearance of the page number in the footer.
defineframed[FooterPage][
  frame=off,
  location=bottom,
  foregroundstyle=tfxboldss,
]

% Include the section name and page number in the footer.
setupfootertexts
  [FooterSectiongetmarking[section]]
  [FooterPagepagenumber]

starttext
  startfrontmatter

  startstandardmakeup
    startalignment[middle]tfaTitle Pagestopalignment
  stopstandardmakeup

  setuppagenumbering[conversion=romannumerals]
  setcounter[userpage][1]
  completecontent
  stopfrontmatter

  startchapter [title=alpha] stopchapter
    startsection[title=alphasec] stopsection
  startchapter [title=beta]  stopchapter
    startsection[title=alphasec] stopsection
  startchapter [title=gamma] stopchapter
    startsection[title=alphasec] stopsection
stoptext

Aquí hay una manera de hacer esto. También tenga en cuenta que limpié la forma en que está configurando los textos de encabezado.

setuplayout
  [
    header=lineheight,
    headerdistance=lineheight,
  ]

setuppagenumbering
  [
    location=,
    alternative=doublesided,
  ]

definepagebreak
  [chapterpagebreak]
  [yes,header,footer,right]

setuphead
  [chapter]
  [
    style=bfc,
    header=empty,
    page=chapterpagebreak,
  ]

setupheader[style=bold]

setupheadertexts
  [getmarking[sectionnumber]hskip1emgetmarking[section][first]]
  [pagenumber]
  [Chapter~getmarking[chapternumber]hskip1emgetmarking[chapter]]
  [pagenumber]

setupbackgrounds[header][text][bottomframe=on]

starttext
chapterFirst Chapter
this is the first chapter
page   
the second page of the first chapter
chapterSecond Chapter
this is the second chapter
page
the second page of the second chapter
stoptext

EDITAR Para deshacerse del encabezado en las páginas vacías, use:

unprotect
installpagebreakmethod reallyempty
  page_otr_flush_all_floats
   page_otr_command_next_page
   doifnotnamedlayoutelementparameterv!headerc!statev!stopsetuplayoutelement[v!header][c!state=v!high]%
   doifnotnamedlayoutelementparameterv!footerc!statev!stopsetuplayoutelement[v!footer][c!state=v!high]%
   page_otr_insert_dummy_page
protect

definepagebreak
  [chapterpagebreak]
  [yes,reallyempty,right]

setuphead
  [chapter]
  [
    style=bfc,
    header=high,
    before=blank[force,theheaderheight],
    page=chapterpagebreak,
  ]

Si crees que ha sido de provecho este post, nos gustaría que lo compartas con el resto juniors y nos ayudes a dar difusión a nuestra información.

¡Haz clic para puntuar esta entrada!
(Votos: 0 Promedio: 0)



Utiliza Nuestro Buscador

Deja una respuesta

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *