Imposición de ConTeXt repite cada página

Imposición de ConTeXt repite cada página

Estoy convirtiendo el folleto semanal de mi iglesia a Contexto. El formato es media página de 8,5x11, impresa por anverso y reverso.

Lo que necesito es el equivalente al esquema de imposición 2SIDE de ConTeXt, excepto que las medias páginas se repiten una vez, de modo que...

Printed Page 1 === Half Page 1, Half Page 1
Printed Page 2 === Half Page 2, Half Page 2

Sé que probablemente podría compilar el primer archivo y luego reorganizar el PDF resultante con imposición, pero eso parece difícil de manejar. Preferiría hacerlo en un archivo de contexto si es posible.

Respuesta1

Hans me envió un correo electrónico. Hay una interfaz de alto nivel para repetir páginas y es mucho más fácil de usar de lo que pensaba. Se vuelve difícil sólo cuando el número deseado de repeticiones no guarda proporción con las dimensiones de la página.

\setuppapersize[A5][A4,landscape]
\setuplayout[nx=2]

\starttext
    \dorecurse{10}{\input knuth\relax}
\stoptext

ingrese la descripción de la imagen aquí

Antigua solución como referencia.

No es tan fácil, ya que no existe una interfaz de alto nivel para esto (había unahilo en la lista de correohace mucho tiempo). Tienes que profundizar en la rutina de envío para que esto funcione. Lo primero que tienes que hacer es duplicar el envío de la página. Esto se hace en \page_boxes_shipoutestas dos líneas:

\finalizeshipoutbox\shipoutscratchbox
\page_shipouts_handle{\box\shipoutscratchbox}%

Sin embargo, esto no es suficiente porque la casilla de envío se borra después de enviar la página. Esto se hace en el controlador de páginas. Si utiliza el método de organización, el controlador es \page_shipouts_arrange. El problema está en estas líneas.

\setbox\scratchbox\hpack
     {\page_otr_flush_every_stuff
      \page_otr_flush_special_content
      \box\shipoutscratchbox}%

El comando \box\shipoutscratchboxborra la casilla después de la composición tipográfica, así que reemplácela con \copy\shipoutscratchbox.

Aquí hay un ejemplo completo:

\setuppapersize[A5][A4,landscape]
\setuparranging[2SIDE]

\unprotect

%
% from page_imp.mkiv
%

\def\page_boxes_shipout#1% or: \page_shipouts_apply
  {\dontcomplain         % redundant
   \ifcase\c_page_boxes_flush_n\else
     \page_boxes_flush_before
   \fi
   \the\everybeforeshipout
   \ifcase\shipoutfinalizemethod
     \page_shipouts_handle{#1}%
   \else
     \setbox\shipoutscratchbox\hpack{#1}% just in case there are objects there, hook for testing (will go away)
     \finalizeshipoutbox\shipoutscratchbox
     \page_shipouts_handle{\box\shipoutscratchbox}%
     % Duplicate the shipout
     \finalizeshipoutbox\shipoutscratchbox
     \page_shipouts_handle{\box\shipoutscratchbox}%
   \fi
   \setnextrealpageno       % so this comes before \everyaftershipout so in fact:
   \the\everyaftershipout   % at this point we're already on the next realpage
   \ifcase\c_page_boxes_flush_n\else
     \page_boxes_flush_after
   \fi}

\def\page_shipouts_arrange#1%
  {% \global\advance\shippedoutpages\plusone
   \begingroup
   \setbox\scratchbox\hpack
     {\page_otr_flush_every_stuff
      \page_otr_flush_special_content
      \copy\shipoutscratchbox}% \copy instead of \box
   \pusharrangedpage\scratchbox
   \deadcycles\zerocount
   \endgroup}

\protect

\starttext

\dorecurse{10}{\input knuth\relax}

\stoptext

Primera página de salida:

ingrese la descripción de la imagen aquí

Respuesta2

ConTeXt proporciona un enlace para la rutina de salida que le permite manipular la página terminada. Puede utilizar esto para colocar el contenido de cada página dos veces en su documento.

\installshipoutmethod{REPEAT}
  {\dowithnextbox
     {\setbox\scratchbox\hpack to \paperwidth{\box\nextbox\hss}%
      \setbox\scratchbox\hpack               {\copy\scratchbox\box\scratchbox}%
      \invokepagehandler{normal}{\box\scratchbox}}
   \hpack}

\setuppapersize[A5][A4,landscape]

\setuppaper[method=REPEAT]

\starttext

\chapter{Knuth}

\input knuth

\chapter{Zapf}

\input zapf

\stoptext

Repetir salida de página en papel

información relacionada