使用 pagecolor 和 crop 包时 textblock* 消失

使用 pagecolor 和 crop 包时 textblock* 消失

我正要完成一本用 LuaLaTeX 排版、采用自定义纸张格式的书。我需要使用包textblock*中的环境将一些文本放置在页面上的绝对坐标处textpos,但它不会显示在输出中。

我把问题缩小到了同时​​使用了croppagecolor包。如果我从序言中删除其中任何一个, 就会textblock*按预期显示,但我需要这两个包,在这种情况下, 就不需要了textblock*。我该如何让这两个包一起工作?

顺便说一句,我使用 TeXstudio,它在构建输出文档时会突出显示当前光标位置的元素。即使不可见textblock*,也会正确突出显示。这让我假设我的 上可能有一层颜色覆盖textblock*,但我坚持我的假设。参见下图:

TeXstudio 突出显示隐藏元素

这是我的 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包中或包内修复此问题。但是,在加载包时,会出现一个警告:textpospagecolor

包 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我遇到的所有问题。

相关内容