是否存在可以生成“无限”页面的文档类?

是否存在可以生成“无限”页面的文档类?

有谁知道有一种 documentclass 可以生成具有固定宽度和可变长度的页面,具体取决于需要适合纸张的实际内容?如果可能的话,我正在尝试获得类似滚动的东西。

答案1

\documentclass{minimal}
\usepackage{lipsum}
\makeatletter
\newbox\p@ge
\newenvironment{page}{\setbox\p@ge\hbox\bgroup}%
  {\egroup\setbox\p@ge\hbox{\raise\dp\p@ge\box\p@ge}\pdfpagewidth\wd\p@ge%
  \pdfpageheight\ht\p@ge\shipout\box\p@ge}
\makeatother
\AtBeginDocument{\pdfhorigin 00pt\pdfvorigin 0pt}
\begin{document}
 \begin{page}
  \begin{minipage}{5cm} 
    \lipsum[1-40]
  \end{minipage}
 \end{page}
\end{document}

我使用这种技巧来根据内容将页面调整到我想要的大小。希望这能有所帮助!

您需要将您的文本放在小页面环境中以进行通常的垂直排版......

答案2

您可以将所有内容放在给定宽度的框中。然后,检索该框的高度并使用该尺寸来确定 pdf 页面的长度。最后,将存储的框输出到该页面。

以下是 MWE:

\documentclass{article}
\begin{document}
\setbox0=\vbox{
\parbox{6cm}{Lorem ipsum dolor sit amet, consectetur adipiscing elit. Morbi vehicula lacinia convallis. Aliquam sapien nisi, vehicula ut posuere tristique, rutrum sit amet mi. Pellentesque quis quam quis purus malesuada dapibus. Proin eget sollicitudin erat. Nunc ut ante libero. Pellentesque massa risus, bibendum consequat tincidunt eu, rhoncus sit amet ligula. Proin pharetra bibendum urna, vitae tristique dolor auctor in. Curabitur turpis felis, fringilla quis vehicula et, elementum vitae tellus. Mauris non turpis lacus. Pellentesque lorem lacus, iaculis nec egestas vitae, varius eget risus. Nullam feugiat, justo vitae pretium eleifend, eros magna euismod ante, sit amet lacinia massa ligula vel nibh. Praesent dignissim, metus ut commodo tincidunt, odio risus consequat felis, sagittis sollicitudin dolor urna et magna. Phasellus ipsum dolor, interdum eget feugiat non, lacinia nec ligula. Duis commodo aliquam vulputate. Vestibulum tempus eleifend dui, sit amet suscipit tortor pharetra eu. Sed convallis ornare nulla cursus adipiscing. Nulla quis lectus eget arcu ornare sollicitudin. Quisque faucibus posuere lacus, et dapibus mauris iaculis sed. Aenean tellus nisi, sodales vitae dignissim accumsan, semper et lacus}

\parbox{6cm}{Lorem ipsum dolor sit amet, consectetur adipiscing elit. Morbi vehicula lacinia convallis. Aliquam sapien nisi, vehicula ut posuere tristique, rutrum sit amet mi. Pellentesque quis quam quis purus malesuada dapibus. Proin eget sollicitudin erat. Nunc ut ante libero. Pellentesque massa risus, bibendum consequat tincidunt eu, rhoncus sit amet ligula. Proin pharetra bibendum urna, vitae tristique dolor auctor in. Curabitur turpis felis, fringilla quis vehicula et, elementum vitae tellus. Mauris non turpis lacus. Pellentesque lorem lacus, iaculis nec egestas vitae, varius eget risus. Nullam feugiat, justo vitae pretium eleifend, eros magna euismod ante, sit amet lacinia massa ligula vel nibh. Praesent dignissim, metus ut commodo tincidunt, odio risus consequat felis, sagittis sollicitudin dolor urna et magna. Phasellus ipsum dolor, interdum eget feugiat non, lacinia nec ligula. Duis commodo aliquam vulputate. Vestibulum tempus eleifend dui, sit amet suscipit tortor pharetra eu. Sed convallis ornare nulla cursus adipiscing. Nulla quis lectus eget arcu ornare sollicitudin. Quisque faucibus posuere lacus, et dapibus mauris iaculis sed. Aenean tellus nisi, sodales vitae dignissim accumsan, semper et lacus}

\parbox{6cm}{Lorem ipsum dolor sit amet, consectetur adipiscing elit. Morbi vehicula lacinia convallis. Aliquam sapien nisi, vehicula ut posuere tristique, rutrum sit amet mi. Pellentesque quis quam quis purus malesuada dapibus. Proin eget sollicitudin erat. Nunc ut ante libero. Pellentesque massa risus, bibendum consequat tincidunt eu, rhoncus sit amet ligula. Proin pharetra bibendum urna, vitae tristique dolor auctor in. Curabitur turpis felis, fringilla quis vehicula et, elementum vitae tellus. Mauris non turpis lacus. Pellentesque lorem lacus, iaculis nec egestas vitae, varius eget risus. Nullam feugiat, justo vitae pretium eleifend, eros magna euismod ante, sit amet lacinia massa ligula vel nibh. Praesent dignissim, metus ut commodo tincidunt, odio risus consequat felis, sagittis sollicitudin dolor urna et magna. Phasellus ipsum dolor, interdum eget feugiat non, lacinia nec ligula. Duis commodo aliquam vulputate. Vestibulum tempus eleifend dui, sit amet suscipit tortor pharetra eu. Sed convallis ornare nulla cursus adipiscing. Nulla quis lectus eget arcu ornare sollicitudin. Quisque faucibus posuere lacus, et dapibus mauris iaculis sed. Aenean tellus nisi, sodales vitae dignissim accumsan, semper et lacus}
}
\pdfpagewidth6.5cm
\pdfpageheight1.21\ht0
\hoffset=-2in
\voffset=-1.7in
\box0
\end{document}

不幸的是,我现在无法粘贴带有结果的图像,但它是一个只有一页并且很长的 pdf。

但是,这个页面不是“无限的”,也不能有任意长度。我们受到 TeX 寄存器大小的限制。我认为限制在 10 米左右。

答案3

如果您想在 ConTeXt 中执行此操作,您可以使用以下TeXpage机制:

\starttext
  \startTEXpage [offset=2cm, width=21cm]
    \dorecurse{100}{%
      \input knuth}
  \stopTEXpage
\stoptext

但 TeX 限制也适用于此。使用特定的 PDF 阅读器,即使生成时没有 TeX 错误,您也会在显示如此长的文件时遇到问题。

相关内容