Output berbeda xelatex dan lualatex (tikzpagenodes, tcolorbox dan paket latar belakang terlibat)
Saya memposisikan gambar di bagian atas halaman bukaan bab. Gambar harus memenuhi semua lebar halaman. Kode di bawah berfungsi dengan baik LuaLaTeX
, tetapi ketika saya menjalankannya dengan XeLaTeX
(harus dijalankan 3 kali untuk mendapatkan posisi yang tepat) gambar dipindahkan ke tengah horizontal halaman. Untuk alasan lain, saya harus menjalankan dokumen dengan XeLaTeX
. Apa yang harus saya ubah dalam kode untuk menjalankan XeLaTeX
dan mendapatkan output yang ditampilkan LuaLaTeX
?
EDIT Diubah untuk menggunakan gambar contoh. Header akan berubah untuk mengikuti gambar yang ditampilkan; tetapi efek XeLaTeX
penggunaannya sama.
\documentclass{book}
%%% Include image in chapter opening
\RequirePackage{tikzpagenodes}
%%% fill rectangle with image uisng tcolorbox
%%% https://tex.stackexchange.com/a/219424/2483
\RequirePackage{tcolorbox}
\tcbuselibrary{skins}
\usetikzlibrary{calc}
\usetikzlibrary{fadings}
%%% For the background
%%% https://tex.stackexchange.com/a/86702/2483
\usepackage[pages=some]{background}
\newlength{\bleendlength}
\setlength{\bleendlength}{5mm}
\newcommand{\chapimage}[1]{%
\backgroundsetup{scale=1,placement=top,contents={
\tikz[remember picture,overlay] {%
\path[fill overzoom image=example-image-a, fill image opacity=1, path fading=east, fading angle=-30]
($(current page.north west)+(-\bleendlength, \bleendlength)$)
rectangle
($(current page.north east)+(\bleendlength, -6cm)$);
}
}
}
}
\begin{document}
\chapter{My first chapter}
\label{cha:my-first-chapter}
\chapimage{}\BgThispage
\end{document}
Output yang benar dengan LuaLaTeX
:

Keluaran salah dengan XeLaTeX
:

Jawaban
Nilai yang diteruskan ke background
opsi contents
(disimpan di \Background@Contents
) sudah diketik di dalam a tikzpicture
. Dan bersarang tikzpicture
adalah perilaku yang tidak terdefinisi. Lihat implementasi \bg@material
di background
v2.1, 2014/03/04:
\newcommand\bg@material{%
\begin{tikzpicture}[remember picture,overlay,scale=\Background@Scale]
\node[
rotate=\Background@Angle,
scale=\Background@Scale,
opacity=\Background@Opacity,
anchor=\Background@NodeAnchor,
xshift=\Background@HShift,
yshift=\Background@VShift,
color=\Background@Color,
inner sep=0pt
]
at (\Background@Position) [\Background@Anchor]
{\Background@Contents};
\end{tikzpicture}}%
Upaya kasar adalah untuk mendefinisikan kembali \bg@material
.
% this example produces the same output with pdftex, xetex, and luatex
\documentclass{book}
\usepackage{tcolorbox}
\tcbuselibrary{skins}
\usetikzlibrary{calc, fadings}
\usepackage[pages=some]{background}
\newlength{\bleendlength}
\setlength{\bleendlength}{5mm}
\makeatletter
\renewcommand\bg@material{%
\tikz[remember picture,overlay] {%
\path[fill overzoom image=example-image-a, fill image opacity=1, path fading=east, fading angle=-30]
($(current page.north west)+(-\bleendlength, \bleendlength)$)
rectangle
($(current page.north east)+(\bleendlength, -6cm)$);
}%
}%
\makeatother
\begin{document}
\chapter{My first chapter}\label{cha:my-first-chapter}
\BgThispage
\end{document}
Solusi yang lebih baik berkisar dari redefinisi yang lebih baik, menggunakan pacakge latar belakang lain, hingga menyediakan gaya halaman khusus yang ditetapkan oleh \chapter
(misalkan Anda ingin memiliki efek latar belakang yang serupa per halaman judul bab).