Alterar a localização do aumento do comprimento do texto

Alterar a localização do aumento do comprimento do texto

Tenho uma pergunta muito específica e espero que alguém possa me dar o benefício de sua experiência.

Tenho cerca de 17.000 linhas de texto. Estou imprimindo este texto em algo em torno de 80 páginas frente e verso, que estou cortando e dobrando em pequenos livros (ei, é um hobby!). Isso significa que o texto precisa ficar em pequenas caixas em um padrão estranho por toda a página. Mais especificamente....

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

Esta página seria cortada de forma que AB, CD, EF, etc. e seus versos fossem dobrados ao meio para formar páginas. Esses retângulos dobrados são colocados um dentro do outro para encadernação, de modo que o texto precisa fluir de A para o lado oposto de C para C para o lado oposto de E para E para F para.........

Você entendeu. Então aqui está o problema:

Meu plano é usar C (ou talvez sed ou awk) para gerar programaticamente o código LaTeX, que deve gerar todos os PDFs necessários para imprimi-lo. No entanto, preciso mudar o comportamento do LaTeX caso o texto ultrapasse a parte inferior de uma dessas caixas. Ou seja, normalmente quando o texto ultrapassa um limite, você simplesmente continua abaixo dele. Nesse caso, preciso que continue em um local completamente diferente e em uma página completamente diferente. Devido ao tamanho deste projeto, isso realmente deve ser feito usando um pacote ou algo assim.

Alguém sabe como isso é feito?

Responder1

Primeiro, você cria o livro usando apenas uma abordagem normal do LaTeX, permitindo que as páginas sejam reformatadas normalmente. Você vai querer fazer suas páginas com um tamanho de papel apropriado e tal. Aqui, com book.texo abaixo, ele cria um documento de 26 páginas book.pdf, com uma carta em cada página. Se eu precisasse inserir uma página extra no meio ou remover uma, deixe o LaTeX fazer isso.

Como eu sabia que o resultado seria um livro pequeno, fiz cada página de 3" por 3" neste livro, embora eventualmente ela seja reduzida por um fator de 2 para o seu livro pequeno (embora isso não seja necessário para o livro pequeno). processo... foi exatamente como eu fiz.).

\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}

Agora que tenho meu livro criado da maneira normal, monto-o (neste caso, em papel timbrado) na ordem certa 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}

Cria um documento de duas páginas composto por 26 painéis (1,5" de tamanho) de book.pdf, montados de forma que, uma vez cortadas, as páginas ABCD fiquem na primeira minifolha, EFGH na segunda, etc.

Se o seu arranjo de encadernação for diferente daquele mostrado acima (onde as minifolhas não foram aninhadas antes da encadernação), simplesmente reorganize a ordem das \showthepageinvocações para obter o layout desejado. Depois de configurar o layout para uma única folha de papel (que será cortada), eu não fiz isso, mas seria trivial implementar um "deslocamento de folha" na execução do \showthepage. Dessa forma, uma coleção de (no meu caso, 32) invocações de \showthepagepoderia ser agrupada em uma única macro, e essa macro poderia ser invocada novamente sucessivamente com um "deslocamento de folha" crescente para lidar perfeitamente com documentos maiores.

Aqui estão as duas páginas que resultam da segunda compilação. Quando impresso em frente e verso, tudo combina.

insira a descrição da imagem aqui

insira a descrição da imagem aqui

Responder2

Se entendi sua pergunta corretamente, você está interessado em umlivreto duplolayout. Nesse caso, você pode conseguir isso com alguns dos pacotes de látex já existentes. Aqui está a solução usandolivretopacote:

\documentclass{article}
\usepackage{lipsum}

\usepackage[print]{booklet}
\setpdftargetpages

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

insira a descrição da imagem aqui

Observe que sem printopção na \usepackage[print]{booklet}saída seria semelhante a qualquer documento normal. A documentação do pacote afirma que isso também funciona bem com impressão duplex (verifique o link acima para obter detalhes).

Outro pacote que pode lhe interessar (que é essencialmente a espinha dorsal do booklet) é2up. Eu acredito que você pode obter o que deseja usandopáginas pdftambém. Se você pesquisar 2up, two upou bookletneste site, poderá encontrar outras soluções para este problema.

informação relacionada