![使用 pagecolor 和 crop 包时 textblock* 消失](https://linux22.com/image/471595/%E4%BD%BF%E7%94%A8%20pagecolor%20%E5%92%8C%20crop%20%E5%8C%85%E6%97%B6%20textblock*%20%E6%B6%88%E5%A4%B1.png)
我正要完成一本用 LuaLaTeX 排版、采用自定义纸张格式的书。我需要使用包textblock*
中的环境将一些文本放置在页面上的绝对坐标处textpos
,但它不会显示在输出中。
我把问题缩小到了同时使用了crop
和pagecolor
包。如果我从序言中删除其中任何一个, 就会textblock*
按预期显示,但我需要这两个包,在这种情况下, 就不需要了textblock*
。我该如何让这两个包一起工作?
顺便说一句,我使用 TeXstudio,它在构建输出文档时会突出显示当前光标位置的元素。即使不可见textblock*
,也会正确突出显示。这让我假设我的 上可能有一层颜色覆盖textblock*
,但我坚持我的假设。参见下图:
这是我的 MWE:
\documentclass[paper=240mm:163mm]{scrbook}
\usepackage{xcolor}
\usepackage[width=193truemm, height=270truemm, center, cam]{crop}
\usepackage[pagecolor=none]{pagecolor}
\usepackage[absolute]{textpos}
\begin{document}
Some text.
\begin{textblock*}{\textwidth}(0mm,0mm)
Absolute position for other text.
\end{textblock*}
\end{document}
答案1
您可能认为页面颜色位于上方textblock*
(至少在 TeXLive 2023 中是这样)。crop
之后加载\pagecolor
似乎有效(yellow
仅设置颜色以测试颜色):
\documentclass[paper=240mm:163mm]{scrbook}
\usepackage{xcolor}
%\usepackage[pagecolor=yellow]{pagecolor}
\pagecolor{yellow}
\usepackage[width=193truemm, height=270truemm, center, cam]{crop}
\usepackage[absolute]{textpos}
\begin{document}
Some text.
\begin{textblock*}{\textwidth}(0mm,0mm)
Absolute position for other text.
\end{textblock*}
\end{document}
我认为这是一个错误。但是,我不知道是否应该在crop
包中或包内修复此问题。但是,在加载包时,会出现一个警告:textpos
pagecolor
包 pagecolor 警告:请求选项 nopagecolor=none,但这不适用于 crop 包。通过选项 nopagecolor,设置了与 \nopagecolor\ 一起使用的“颜色”。当前值为“none”(可能是默认值),但 crop 包破坏了 \nopagecolor。因此颜色不能为“none”。请相应地更改选项!作为急救,nopagecolor 现在设置为白色
因此,我认为罪魁祸首可能是这个crop
包裹。
答案2
此外Jasper Habicht 的回答,这让我走上了正确的道路,我想为处于这种情况的其他人提供线索。
改用relative
模式
如果\pagecolor
整个文档都需要该命令,请使用相对定位来textblock
设置 s\TPHorizModule
到\TPVertModule
所需的位置。
使用overlay
选项
灵感来自类似的答案对于一个有点相关的问题,您可以overlay
在加载时使用选项textpos
,即\usepackage[absolute, overlay]{textpos}
。就我而言,这解决了\pagecolor
我遇到的所有问题。