![Luatex 纸张尺寸](https://linux22.com/image/384559/Luatex%20%E7%BA%B8%E5%BC%A0%E5%B0%BA%E5%AF%B8.png)
我正在研究纯 luatex(无 latex)。以下定义会更改纸张大小,但不会更改实际纸张大小。我遗漏了什么
\newdimen\pagewidth
\newdimen\pageheight
\pagewidth=3.5in % the width of each page
\pageheight=3.7in % the height of each page
\def\setpage{\hsize\pagewidth\vsize\pageheight}
\setpage
Lorem ipsum dolor sit amet, consectetur adipisici elit, sed eiusmod tempor incidunt ut labore et dolore magna aliqua. Ut enim ad minim veniam, quis nostrud exercitation ullamco laboris nisi ut aliquid ex ea commodi consequat. Quis aute iure reprehenderit in voluptate velit esse cillum dolore eu fugiat nulla pariatur. Excepteur sint obcaecat cupiditat non proident, sunt in culpa qui officia deserunt mollit anim id est laborum.
Lorem ipsum dolor sit amet, consectetur adipisici elit, sed eiusmod tempor incidunt ut labore et dolore magna aliqua. Ut enim ad minim veniam, quis nostrud exercitation ullamco laboris nisi ut aliquid ex ea commodi consequat. Quis aute iure reprehenderit in voluptate velit esse cillum dolore eu fugiat nulla pariatur. Excepteur sint obcaecat cupiditat non proident, sunt in culpa qui officia deserunt mollit anim id est laborum.
Lorem ipsum dolor sit amet, consectetur adipisici elit, sed eiusmod tempor incidunt ut labore et dolore magna aliqua. Ut enim ad minim veniam, quis nostrud exercitation ullamco laboris nisi ut aliquid ex ea commodi consequat. Quis aute iure reprehenderit in voluptate velit esse cillum dolore eu fugiat nulla pariatur. Excepteur sint obcaecat cupiditat non proident, sunt in culpa qui officia deserunt mollit anim id est laborum.
\eject
Lorem ipsum dolor sit amet, consectetur adipisici elit, sed eiusmod tempor incidunt ut labore et dolore magna aliqua. Ut enim ad minim veniam, quis nostrud exercitation ullamco laboris nisi ut aliquid ex ea commodi consequat. Quis aute iure reprehenderit in voluptate velit esse cillum dolore eu fugiat nulla pariatur. Excepteur sint obcaecat cupiditat non proident, sunt in culpa qui officia deserunt mollit anim id est laborum.
\eject
\end
答案1
简短的回答:删除声明\pagewidth
和的前两行\pageheight
,因为它们实际上是您想要控制的 LuaTeX 维度。
更详细地:
\hsize
和\vsize
是(粗略地说)TeX 尝试排版内容的尺寸。在纯(Knuth)TeX 中,它只生成 DVI,没有进一步的物理纸张大小概念。但默认情况下,打印时内容将显示在距离\hoffset
纸张左边缘(1 英寸 + )和\voffset
距离上边缘(1 英寸 + )的偏移处。在 pdfTeX(和 XeTeX)中,
\pdfpagewidth
和\pdfpageheight
是控制 PDF 中实际页面尺寸的基元。在 LuaTeX 中,它们是简称为\pagewidth
和\pageheight
。
当您使用时,\newdimen\pagewidth
您正在破坏原始元素,使其不再可用。因此,只需删除问题中的前两行。此外,为了考虑 1 英寸的边距,您应该将其设为\hoffset
负数\voffset
,或者将纸张尺寸放大。
\pagewidth=5.5in % the width of each page
\pageheight=5.7in % the height of each page
\hsize=\dimexpr (\pagewidth - 2in) \relax
\vsize=\dimexpr (\pageheight - 2in) \relax
Lorem ipsum dolor sit amet, consectetur adipisici elit, sed eiusmod tempor incidunt ut labore et dolore magna aliqua. Ut enim ad minim veniam, quis nostrud exercitation ullamco laboris nisi ut aliquid ex ea commodi consequat. Quis aute iure reprehenderit in voluptate velit esse cillum dolore eu fugiat nulla pariatur. Excepteur sint obcaecat cupiditat non proident, sunt in culpa qui officia deserunt mollit anim id est laborum.
Lorem ipsum dolor sit amet, consectetur adipisici elit, sed eiusmod tempor incidunt ut labore et dolore magna aliqua. Ut enim ad minim veniam, quis nostrud exercitation ullamco laboris nisi ut aliquid ex ea commodi consequat. Quis aute iure reprehenderit in voluptate velit esse cillum dolore eu fugiat nulla pariatur. Excepteur sint obcaecat cupiditat non proident, sunt in culpa qui officia deserunt mollit anim id est laborum.
Lorem ipsum dolor sit amet, consectetur adipisici elit, sed eiusmod tempor incidunt ut labore et dolore magna aliqua. Ut enim ad minim veniam, quis nostrud exercitation ullamco laboris nisi ut aliquid ex ea commodi consequat. Quis aute iure reprehenderit in voluptate velit esse cillum dolore eu fugiat nulla pariatur. Excepteur sint obcaecat cupiditat non proident, sunt in culpa qui officia deserunt mollit anim id est laborum.
\eject
Lorem ipsum dolor sit amet, consectetur adipisici elit, sed eiusmod tempor incidunt ut labore et dolore magna aliqua. Ut enim ad minim veniam, quis nostrud exercitation ullamco laboris nisi ut aliquid ex ea commodi consequat. Quis aute iure reprehenderit in voluptate velit esse cillum dolore eu fugiat nulla pariatur. Excepteur sint obcaecat cupiditat non proident, sunt in culpa qui officia deserunt mollit anim id est laborum.
\eject
\end
(另外:使用\eject
without\vfill
会导致 vbox 未满警告。)
答案2
你需要删除
\newdimen\pagewidth
\newdimen\pageheight
因为它们会屏蔽图元,如果设置的话,会影响 pdf 中媒体框的大小。还请考虑默认的 1in 原点(目前您有\hsize
等于\pagewidth
但偏移 1in 的原点)。
\pagewidth=3.5in % the width of each page
\pageheight=3.7in % the height of each page
\hoffset=-1in
\voffset=-1in
\def\setpage{\hsize\pagewidth\vsize\pageheight}
\setpage
Lorem ipsum dolor sit amet, consectetur adipisici elit, sed eiusmod tempor incidunt ut labore et dolore magna aliqua. Ut enim ad minim veniam, quis nostrud exercitation ullamco laboris nisi ut aliquid ex ea commodi consequat. Quis aute iure reprehenderit in voluptate velit esse cillum dolore eu fugiat nulla pariatur. Excepteur sint obcaecat cupiditat non proident, sunt in culpa qui officia deserunt mollit anim id est laborum.
Lorem ipsum dolor sit amet, consectetur adipisici elit, sed eiusmod tempor incidunt ut labore et dolore magna aliqua. Ut enim ad minim veniam, quis nostrud exercitation ullamco laboris nisi ut aliquid ex ea commodi consequat. Quis aute iure reprehenderit in voluptate velit esse cillum dolore eu fugiat nulla pariatur. Excepteur sint obcaecat cupiditat non proident, sunt in culpa qui officia deserunt mollit anim id est laborum.
Lorem ipsum dolor sit amet, consectetur adipisici elit, sed eiusmod tempor incidunt ut labore et dolore magna aliqua. Ut enim ad minim veniam, quis nostrud exercitation ullamco laboris nisi ut aliquid ex ea commodi consequat. Quis aute iure reprehenderit in voluptate velit esse cillum dolore eu fugiat nulla pariatur. Excepteur sint obcaecat cupiditat non proident, sunt in culpa qui officia deserunt mollit anim id est laborum.
\eject