kırpma ve tikzpagenodes paketlerini kullanarak farklı davranış lualatex ve xelatex
Kullanılması tikzpagenodes
sayfasında pozisyon elemanlarına paketi, ben yüklerken fark crop
paketi XeLaTeX
ve LuaLaTeX
farklı davranışa sahip.
XeLaTeX
current page node
koordinatları yanlış hesaplar . Doğru koordinatları almak için current page node
kullanılarak kaydırılması gereken hoffset
ve voffset
.
Aşağıdaki MWE current page node
,. Mavi olan, şu şekilde hesaplanan düğümdür tikzpagenodes
; kırmızı olan doğru dikdörtgene sahip olacak şekilde kaydırılmıştır XeLaTeX
.
\documentclass{article}
\usepackage{calc}
\usepackage[
%
paperwidth = 210mm,
paperheight = 270mm,
includefoot,
includemp,
nomarginpar,
% textwidth
% textheight
% marginparwidth
% marginparsep
inner = 19.2mm+10mm,
outer = 19.2mm+10mm,
top = 14.6mm,
bottom = 10.8mm,
bindingoffset = 5.4mm,
% showcrop
]%
{geometry}
\usepackage%
[
cam,
width = 230mm,
height = 290mm,
center]%
{crop}
\usepackage{tikzpagenodes}
\usetikzlibrary{calc}
\begin{document}
\tikz[remember picture,overlay] {%
\draw [blue,line width=2mm]
(current page.south west)
rectangle
(current page.north east)
;
\draw [red,line width=2mm]
($(current page.south west)+ (-\hoffset, \voffset)$)
rectangle
($(current page.north east)+ (-\hoffset, \voffset)$)
;
}%
\end{document}
Çıktıyı düzeltin LuaLaTeX
:

Yanlış çıktı XeLaTeX
:

Yanıtlar
Sanırım buna pgf
xetex için sürücü dosyasındaki bir yazım hatası neden oluyor ve sorun bildirildi pgf
, bkz.https://github.com/pgf-tikz/pgf/issues/909. Paket crop
sıfırdan setleri \hoffset
ve \voffset
sorunu ortaya çıkarmak.
Aşağıdaki kod parçacığı, kısa vadeli bir geçici çözüm olarak kullanılabilir.
% after tikz is loaded
\usepackage{iftex}
\makeatletter
\ifXeTeX
\def\pgf@sys@pdf@mark@pos@pgfpageorigin{\pgfqpoint{\hoffset}{\voffset}}
\fi
\makeatother
Tam bir örnek:
\documentclass{article}
\usepackage{calc}
\usepackage[
paperwidth = 210mm,
paperheight = 270mm,
includefoot,
includemp,
nomarginpar,
% textwidth
% textheight
% marginparwidth
% marginparsep
inner = 19.2mm+10mm,
outer = 19.2mm+10mm,
top = 14.6mm,
bottom = 10.8mm,
bindingoffset = 5.4mm,
% showcrop
]%
{geometry}
\usepackage[
cam,
width = 230mm,
height = 290mm,
center
]%
{crop}
\usepackage{tikz}
\usepackage{iftex}
\makeatletter
\ifXeTeX
\def\pgf@sys@pdf@mark@pos@pgfpageorigin{\pgfqpoint{\hoffset}{\voffset}}
\fi
\makeatother
\begin{document}
\tikz[remember picture,overlay]
\draw [blue,line width=2mm]
(current page.south west) rectangle (current page.north east);
\end{document}

Not: Düğüm current page
doğrudan tarafından sağlanır tikz
, dolayısıyla tikzpagenodes
paket yüklemeye gerek yoktur .