我已经使用TeX
一段时间了,所以当我建议我的公司使用 LaTex 编写每日新闻通讯,而不是花一个半小时的时间时,我被要求实际实施。我快完成了,但由于数据是动态生成的 - 我不确定要生成多少文本并将其放入每篇文章中。我曾经\vspace{\fill}
策略性地处理过篇幅过小的新闻通讯 - 但我不知道如果新闻通讯过大该怎么办。
有没有办法TeX
每次都强制编译成一页?我的意思是,我宁愿(老实说)让文本以水平方式截断。
我找到了这个这个非常相似的问题,并尝试了那里列出的所有方法。我已经研究过samepage
,但该环境在一段时间后还是会破坏页面。此外,\parbox
建议使用 - 但当我将整个文档包裹在其中时,一个过满的盒子就会导致它破坏页面。 needspace
会做同样的事情。
过去几天我一直在开发这个过程,偶尔会花几个小时在 Google Box 或 StackExchange 上搜索答案,但无济于事。有人吗?
答案1
如果您只想截断内容的底部,那么您可以强制进入小页面:
\documentclass{article}
\usepackage{lipsum}
\begin{document}
\begin{minipage}[t][0pt]{\linewidth}
\lipsum[1-100]
\end{minipage}
\end{document}
但请注意我如何将高度设置minipage
为零。这使其停留在第一页。
您的公司真的如果你截断某些内容,你会对 LaTeX 印象深刻吗?
前提是你知道你的新闻通讯永远不会超过 2-3 页。可能有办法解决这个问题。我在想,你不设置迷你页面的高度,将其高度保存到迷你页面,然后再次运行 latex 读取迷你页面高度的值,并将文档页面的高度设置为相同的值。我不确定我知道如何做这样一个复杂的解决方法,但我确定如果你发布一个问题
我该如何定义页面尺寸来容纳其内容:即使异常大?
有人会想出一个有趣的解决方案。当然,这种解决方案只有在新闻稿仅以电子形式发布而不是打印时才有意义。
或者
如果您知道内容仅比页面稍大,则可以使用graphicx
包并重新缩放框以使其实际上适合页面。
例如:
\documentclass{article}
\usepackage{graphicx}
\usepackage{calc}
%% for demo purposes only
\usepackage{showframe}
\usepackage{lipsum}
\begin{document}
\noindent\scalebox{.94}{%
\begin{minipage}[t]{1.06\linewidth}
\lipsum[1-6]
\end{minipage}}
\end{document}
\enlargethispage
这是一份不够的文档。但是通过为比例因子和\linewidth
(我选择了近似倒数)选择适当的值,您可以得到相当不错的效果。