有没有办法让“页面”大小与文档长度相匹配?

有没有办法让“页面”大小与文档长度相匹配?

许多 PDF 从未打印出来而是以电子形式阅读,对于至少某些读者和阅读风格来说,拥有一个可供读者连续滚动的单页会很有利。

有没有办法调整“纸张”大小,让整个文档适合放在一个“页面”上?TeX 架构的某些方面是否会使这变得困难;软件包或流行文档样式的功能是否会被破坏?

我特别想为凝固胶乳,其(用侧注代替脚注和引文)非常适合这种情况。

答案1

Veytsman 和 Ware 在 Tugboat 32 (2011) 261 的一篇题为“电子书和纸张尺寸:输出程序变得更容易”的文章中给出了一个解决方案,可在以下网址找到:https://tug.org/TUGboat/tb32-3/tb102veytsman-ebooks.pdf

他们的想法不是为整个文档制作一个大页面,而是为每个部分制作一个页面,并且他们找到了一个技巧,将页面大小动态设置为没有空白的文本的实际大小。

我使用他们的想法制定了一个软件包的初步版本。

您可以找到该包、一个测试文件和一个生成的 pdf 文件示例。您可以尝试修改它,让整个文档占据一页。

结果取决于最大维度\maxdimen的 TeX。

答案2

\documentclass{article}
\setlength\textheight{30\textheight}

生产

! Dimension too large.
<recently read> \textheight 

因此,简单地制作一个很高的页面会给即使是相当简单的文档带来问题。

TeX 的架构通常会尝试尽快清除页面,与换行不同,换行会以最小成本分析整个段落的换行,而分页(通常)一次仅考虑一个潜在换行,并且滚动页面所占用的内存会被回收。这使得 TeX 即使在当时可用的内存很小的情况下也能处理任意长的文档。

当然,现在有更多内存可用,但目前还不清楚 TeX 如何适应。可能的做法是有一个简化的输出例程,可以连续输出页面而不添加页眉或页脚;然后使用 pdf 工具进行简单的后期处理可以将页面重新拼接在一起。

答案3

我相信修改文档的某些属性将使您非常接近想要的结果,甚至不需要一页长页面。有时会出现空白的垂直空间,但使用这些设置并不常见。请参阅注释的 MWE:

\documentclass[a4paper]{article}

\usepackage[margin=1mm]{geometry} % no margins
\usepackage[bottomtitles]{titlesec} % allow titles to be at the bottom of the page
\widowpenalty=0\relax % no empty lines at the end of page
\clubpenalty=0\relax % no empty lines at the end of page
\pagestyle{empty} % no headers or footers

\usepackage{lipsum}
\begin{document}
\lipsum[1-60]
\end{document}

答案4

您可以尝试以下 5 米页面并查看问题。您的用户将不知道或不知道文档将在何处结束,您可以在末尾滚动吗?

\vsize500cm
\vbox to 575cm{
\vrule height500cm
}
\bye

(大多数阅读器无法正确显示)

相关内容