改变增加文本长度的位置

改变增加文本长度的位置

我有一个非常具体的问题,我希望有人能给我提供他们的经验。

我有大约 17000 行文本。我将这些文本打印到大约 80 张双面纸上,然后将它们剪下来并折叠成小书(嘿,这是一种爱好!)。这意味着文本需要以奇怪的图案出现在整个页面上的小方框中。更具体地说......

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

这页将被剪裁,以便 AB、CD、EF 等及其反面对折以形成页面。这些折叠的矩形被放置在彼此内部进行装订,因此文本需要从 A 流向 C 的对面,再流向 C 的对面,再流向 E 的对面,再流向 E,再流向 F,再流向.........

你明白我的意思了。那么问题来了:

我的计划是使用 C(或者可能是 sed 或 awk)以编程方式生成 LaTeX 代码,这将生成打印所需的所有 pdf。但是,如果文本超出其中一个框的底部,我需要某种方法来改变 LaTeX 的行为。也就是说,通常当文本超出边界时,您只需将其继续放在下面即可。在这种情况下,我需要它继续在完全不同的位置和完全不同的页面上。由于这个项目的规模庞大,这确实必须使用包或其他东西来完成。

有人知道这是怎么做的吗?

答案1

首先,您使用普通的 LaTeX 方法创建书籍,让页面按照正常方式重新格式化。您需要将页面设置为合适的纸张大小等。在这里,使用book.tex如下所示的,它会创建一个 26 页的文档book.pdf,每页都有一封信。如果我需要在中途插入一个额外的页面,或者删除一个页面,只需让 LaTeX 来完成即可。

因为我知道最终的结果会是一本小书,所以我把这本书的每一页都做成了 3" x 3",虽然最终它会缩小 2 倍以形成你的小书(虽然这对于整个过程来说不是必要的... 这只是我做事的方式。)。

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

现在,我已经以正常方式创建了我的书,我使用这个 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}

它创建了一个由 26 个面板(大小为 1.5 英寸)组成的两页文档,这些book.pdf面板以这样的方式组装:剪切后,页面 ABCD 将位于第一个小叶上,EFGH 将位于第二个小叶上,依此类推。

如果您的装订安排与上面显示的不同(其中在装订之前没有嵌套小叶子),只需重新排列调用顺序\showthepage即可获得所需的布局。一旦您为一张纸(将被剪切)设置了布局,我没有这样做,但在 的执行中实现“叶子偏移”将很简单\showthepage。这样,一组(在我的情况下是 32 个)调用\showthepage可以捆绑到一个宏中,并且可以使用增加的“叶子偏移”连续重新调用该宏,以无缝处理更大的文档。

这是第二次编辑后的两页。双面打印后,所有内容都匹配。

在此处输入图片描述

在此处输入图片描述

答案2

如果我理解你的问题没有错的话,你感兴趣的是双联小册子布局。如果是这样,您可以通过一些现有的 latex 包来实现这一点。以下是使用的解决方案小册子包裹:

\documentclass{article}
\usepackage{lipsum}

\usepackage[print]{booklet}
\setpdftargetpages

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

在此处输入图片描述

请注意,输出中没有print选项时,\usepackage[print]{booklet}看起来就像任何普通文档。软件包文档声称,双面打印也能很好地工作(有关详细信息,请查看上面的链接)。

您可能感兴趣的其他软件包(本质上是的骨干booklet)是2up我相信你可以使用pdf页面以及。如果您搜索2uptwo up或者booklet在此网站中,您可以找到此问题的其他解决方案。

相关内容