Cambiar la ubicación de la longitud creciente del texto

Cambiar la ubicación de la longitud creciente del texto

Tengo una pregunta muy concreta y espero que alguien pueda aportarme el beneficio de su experiencia.

Tengo alrededor de 17000 líneas de texto. Estoy imprimiendo este texto en unas 80 páginas a doble cara, que corto y doblo en libros pequeños (¡oye, es un pasatiempo!). Esto significa que el texto debe encontrarse en pequeños cuadros con un patrón extraño por toda la página. Más específicamente....

https://i.stack.imgur.com/uRS7b.png

Esta página se recortaría de modo que AB, CD, EF, etc. y sus reversos se doblaran por la mitad para formar páginas. Estos rectángulos doblados se colocan uno dentro del otro para encuadernar, de modo que el texto debe fluir de A al lado opuesto de C a C al lado opuesto de E a E a F a...

Tú entiendes. Entonces aquí está el problema:

Mi plan es usar C (o tal vez sed o awk) para generar mediante programación el código LaTeX, lo que debería generar todos los archivos PDF que necesitaré para imprimirlo. Sin embargo, necesito alguna forma de cambiar el comportamiento de LaTeX si el texto pasa del final de uno de estos cuadros. Es decir, normalmente cuando el texto supera un límite, simplemente continúa debajo. En este caso, necesito que continúe en un lugar completamente diferente y en una página completamente diferente. Debido al gran tamaño de este proyecto, esto realmente debe hacerse usando un paquete o algo así.

¿Alguien sabe cómo se hace esto?

Respuesta1

Primero, crea el libro utilizando simplemente un enfoque LaTeX normal, permitiendo que las páginas se vuelvan a formatear de la manera normal. Querrá que sus páginas tengan un tamaño de papel apropiado y demás. Aquí, con el book.texque se muestra a continuación, crea un documento de 26 páginas book.pdf, con una letra en cada página. Si necesitaba insertar una página adicional a mitad de camino o eliminar una, simplemente deje que LaTeX lo haga.

Como sabía que el resultado sería un libro pequeño, hice cada página de 3" por 3" en este libro, aunque eventualmente se reducirá por un factor de 2 para su libro pequeño (aunque eso no es necesario para el proceso... así es como lo hice yo).

\documentclass{article}
\usepackage[paperwidth=3in,paperheight=3in,margin=.5in]{geometry}
\usepackage{graphicx}
\newcommand\makebook[1]{\makebookhelp#1\relax}
\def\makebookhelp#1#2\relax{%
  \scalebox{15}{#1}\clearpage%
  \ifx\relax#2\else%
  \makebookhelp#2\relax\fi%
}
\begin{document}
\centering
\makebook{ABCDEFGHIJKLMNOPQRSTUVWXYZ}
\end{document}

Ahora que ya tengo mi libro creado de forma normal, lo armo (en este caso, en papel de carta) en el orden correcto usando este MWE:

\documentclass{article}
\usepackage[paper=letterpaper,margin=1.25in]{geometry}
\usepackage{graphicx,ifthen,stackengine}
\newcounter{bookpage}
\fboxsep=-\fboxrule\relax
\newcommand\nullpage{\fbox{\rule{0pt}{1.5in}\rule{1.5in}{0pt}}}
\newcommand\showthepage[2]{%
  \protect\fbox{\protect\includegraphics[width=1.5in,height=1.5in,page=#1]{#2}}%
}
\parindent 0in
\setstackgap{S}{0pt}
\begin{document}
\Shortstack
{
\showthepage{2}{book}%
\showthepage{3}{book}%
\showthepage{6}{book}%
\showthepage{7}{book} 
\showthepage{10}{book}%
\showthepage{11}{book}%
\showthepage{14}{book}%
\showthepage{15}{book} 
\showthepage{18}{book}%
\showthepage{19}{book}%
\showthepage{22}{book}%
\showthepage{23}{book} 
\showthepage{26}{book}%
\nullpage%
\nullpage%
\nullpage}
\clearpage
\Shortstack
{
\showthepage{8}{book}%
\showthepage{5}{book}%
\showthepage{4}{book}%
\showthepage{1}{book} 
\showthepage{16}{book}%
\showthepage{13}{book}%
\showthepage{12}{book}%
\showthepage{9}{book} 
\showthepage{24}{book}%
\showthepage{21}{book}%
\showthepage{20}{book}%
\showthepage{17}{book} 
\nullpage%
\nullpage%
\nullpage%
\showthepage{25}{book}}
\end{document}

Crea un documento de dos páginas que consta de 26 paneles (de 1,5" de tamaño) de book.pdf, ensamblados de tal manera que, una vez cortados, las páginas ABCD estarán en la primera minihoja, EFGH en la segunda, etc.

Si su disposición de encuadernación es diferente a la que se muestra arriba (donde las minihojas no se anidaron antes de la encuadernación), simplemente reorganice el orden de las \showthepageinvocaciones para obtener el diseño deseado. Una vez que configuró el diseño para una sola hoja de papel (que será cortada), no lo hice, pero sería trivial implementar un "desplazamiento de hoja" en la ejecución de \showthepage. De esa manera, una colección de (en mi caso, 32) invocaciones de \showthepagepodría agruparse en una sola macro, y esa macro podría reinvocarse sucesivamente con un "desplazamiento de hoja" cada vez mayor para manejar documentos más grandes sin problemas.

Aquí tenéis las dos páginas que resultan de la segunda recopilación. Cuando se imprime con impresión a doble cara, todo coincide.

ingrese la descripción de la imagen aquí

ingrese la descripción de la imagen aquí

Respuesta2

Si he entendido bien tu pregunta, estás interesado en unfolleto doblediseño. Si es así, puede lograrlo mediante algunos de los paquetes de látex ya existentes. Aquí está la solución usandofolletopaquete:

\documentclass{article}
\usepackage{lipsum}

\usepackage[print]{booklet}
\setpdftargetpages

\begin{document}
\lipsum[1-20]
\end{document}

ingrese la descripción de la imagen aquí

Tenga en cuenta que sin printla opción \usepackage[print]{booklet}la salida se vería como cualquier documento normal. La documentación del paquete afirma que esto también funciona bien con la impresión dúplex (consulte el enlace de arriba para obtener más detalles).

Otro paquete que podría interesarle (que es esencialmente la columna vertebral de booklet) es2 arriba. Creo que puedes obtener lo que quieres usandopáginas pdftambién. Si busca 2up, two upo bookleten este sitio web, puede encontrar otras soluciones a este problema.

información relacionada