TrimBox auf den Layoutbereich der Geometrie setzen

TrimBox auf den Layoutbereich der Geometrie setzen
\documentclass{article}
\usepackage{geometry}
\geometry{
  paperwidth=10cm
  , paperheight=10cm
  , layoutwidth=5cm
  , layoutheight=5cm
  , layouthoffset=25mm
  , layoutvoffset=25mm
  , includeheadfoot
  , showcrop
}
\usepackage[x-1a1]{pdfx}

\begin{document}
Lorem ipsum
\end{document}

Wenn ich das obige MWE kompiliere und die TrimBox der PDF-Datei mit einem PDF-Viewer wie Acrobat ansehe, ist die TrimBox nicht an den vom geometryPaket erzeugten Schnittmarken ausgerichtet. (Siehe Abbildung unten: Die TrimBox als Ausgabe ist grün; sie sollte richtig in einer Linie mit dem rosa Rechteck positioniert sein.) Wie kann ich die Abmessungen und Offsets von layoutan übergeben pdfx, damit die TrimBox an der richtigen Stelle platziert werden kann (oder andernfalls die pdfxPlatzierung der TrimBox von überschrieben wird)? Ich verwende LuaTeX.

Tatsächliche und gewünschte Position der TrimBox

Antwort1

pdfx codiert die Trimbox mit einem Rand von 25/20 pt fest. Sie müssen dies zurücksetzen. Beachten Sie, dass andere Pakete, die die Variable pagesattr verwenden, stören können (die Werte 0,996264009963 für /MediaBox stammen von pdfx).

\documentclass{article}
\usepackage{expl3}

\usepackage{geometry}
\geometry{
  paperwidth=10cm
  , paperheight=10cm
  , layoutwidth=5cm
  , layoutheight=5cm
  , layouthoffset=25mm
  , layoutvoffset=25mm
  , includeheadfoot
  , showcrop
}
\usepackage[x-1a1]{pdfx}

\ExplSyntaxOn\makeatletter
\tl_new:N\l_soli_trimbox_tl
\tl_set:Nx\l_soli_trimbox_tl 
 {
  \dim_to_decimal_in_bp:n{\Gm@layouthoffset}
  \c_space_tl
  \dim_to_decimal_in_bp:n{\Gm@layoutvoffset}
  \c_space_tl
  \dim_to_decimal_in_bp:n{\paperwidth - \Gm@layouthoffset}
  \c_space_tl
  \dim_to_decimal_in_bp:n{\paperheight - \Gm@layoutvoffset}
 }
\tl_new:N\l_soli_mediabox_tl
\tl_set:Nx \l_soli_mediabox_tl 
 {
  0
  \c_space_tl
  0
  \c_space_tl
  \dim_to_decimal_in_bp:n{0.996264009963\paperwidth}
  \c_space_tl
  \dim_to_decimal_in_bp:n{0.996264009963\paperheight}
 }

\edef\next
 {
  \pdfvariable~pagesattr
   {
     /MediaBox[\l_soli_mediabox_tl]
     /BleedBox[\l_soli_mediabox_tl]
     /CropBox[\l_soli_mediabox_tl]
     /TrimBox[\l_soli_trimbox_tl]
   }
  } 
 \next
\ExplSyntaxOff

\makeatother
\begin{document}
Lorem ipsum
\end{document}

verwandte Informationen