我正在尝试使用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}