当我使用手动 voffset 时,为什么 TikZ 页面锚点未对齐?

当我使用手动 voffset 时,为什么 TikZ 页面锚点未对齐?

我正在尝试使用TikZ remember picture,overlay选项和current page锚点放置一些对象。同时,我正在使用crop来创建切割标记。不幸的是,我不能只使用选项center,而必须\voffset根据外部要求手动定义我的。只要我使用center,一切都很好,但是当我手动设置\voffset为另一个值时,tikzpicture实际上会发生偏移。请看以下代码:

\documentclass[paper=155mm:230mm]{scrbook}
\usepackage[frame,width=169.8truemm,height=247.4truemm,cam,pdftex,cross]{crop}
\setlength{\voffset}{7.4mm}
\setlength{\hoffset}{7.4mm}
\usepackage{tikz}
\usetikzlibrary{calc}

\begin{document}
    Test\footnote{Test}
    \begin{tikzpicture}[remember picture,overlay]
        \draw[red] ($(current page.south west) + (-1,-1)$) -- ++(2,2);
        \draw[red] ($(current page.south west) + (-1,1)$) -- ++(2,-2);
    \end{tikzpicture}
\end{document}

我的预期是,红色的 X 与黑色边缘的十字对齐。然而事实并非如此,正如您所看到的:在此处输入图片描述

当您删除该\voffset行并将其用作center命令时,所有内容都会匹配。您能告诉我,我该怎么做才能获得正确的对齐,或者我在这里做错了什么吗?

答案1

你可以尝试一下(另请参阅这个未解决的问题:https://github.com/pgf-tikz/pgf/issues/294):

\documentclass[paper=155mm:230mm]{scrbook}
\usepackage[frame,width=169.8truemm,height=247.4truemm,cam,pdftex,cross]{crop}
\setlength{\voffset}{7.4mm}
\setlength{\hoffset}{7.4mm}
\usepackage{tikz}
\usetikzlibrary{calc}
\begin{document}
\makeatletter
\def\pgf@sys@pdf@mark@pos@pgfpageorigin{\pgfqpoint{\hoffset}{\dimexpr\pdfpageheight-\paperheight-\voffset}}
\makeatother

    Test\footnote{Test}
    \begin{tikzpicture}[remember picture,overlay]
        \draw[red] ($(current page.south west) + (-1,-1)$) -- ++(2,2);
        \draw[red] ($(current page.south west) + (-1,1)$) -- ++(2,-2);
    \end{tikzpicture}
\end{document}

在此处输入图片描述

相关内容