Configurar BleedBox usando PDFLaTeX

Configurar BleedBox usando PDFLaTeX

Mis códigos son los siguientes:

\documentclass{book}

\usepackage{xparse}%%

\setlength{\paperheight}{9truein}%
\setlength{\paperwidth}{7truein}%

\ExplSyntaxOn\makeatletter %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%

%% bleed value (keyval class option in real document)
\dim_new:N \g_@@_bleed_dim 
\dim_set:Nn \g_@@_bleed_dim { 15mm }%%

%% set page size (and other stuff in the real document)
%\usepackage { geometry }
%   \geometry { papersize = { 7in , 9in } }

%% set crop size
\usepackage [a4, center,cam,info] { crop }
   \CROP@size {
      \dim_eval:n { \paperwidth + 2 \g_@@_bleed_dim }
   } {
      \dim_eval:n { \paperheight + 2 \g_@@_bleed_dim }
   }

%% new variant
\cs_generate_variant:Nn \dim_to_decimal_in_bp:n { N }

% values for the Trim box
\tl_new:N \g_@@_trim_box_quadruple_tl
\tl_set:Nx \g_@@_trim_box_quadruple_tl {
   \dim_to_decimal_in_bp:N \g_@@_bleed_dim \space 
   \dim_to_decimal_in_bp:N \g_@@_bleed_dim \space
   \dim_to_decimal_in_bp:n { \paperwidth + \g_@@_bleed_dim } \space
   \dim_to_decimal_in_bp:n { \paperheight + \g_@@_bleed_dim }
}

% values for the Bleed box
\tl_new:N \g_@@_bleed_box_quadruple_tl
\tl_set:Nx \g_@@_bleed_box_quadruple_tl {
   \dim_to_decimal_in_bp:N \g_@@_bleed_dim \space 
   \dim_to_decimal_in_bp:N \g_@@_bleed_dim \space
   \dim_to_decimal_in_bp:n { \paperwidth + 9pt + \g_@@_bleed_dim } \space
   \dim_to_decimal_in_bp:n { \paperheight + 9pt + \g_@@_bleed_dim }
}

%% special for use with XeTeX -- Not yet tested
\tl_new:N \g_@@_trim_special_tl
\tl_set:Nx \g_@@_trim_special_tl {
   pdf: ~ put ~ @thispage ~
   << ~ /TrimBox \space [ \g_@@_trim_box_quadruple_tl ] ~ >>
   << ~ /BleedBox \space [ \g_@@_bleed_box_quadruple_tl ] ~ >>
}

%% page attribute for use with LuaTeX and PDFTeX -- have to check with LuaLaTeX later
\tl_new:N \g_@@_trim_pageattr_tl
\tl_set:Nx \g_@@_trim_pageattr_tl {
   /TrimBox \space [ \g_@@_trim_box_quadruple_tl ]
   /BleedBox \space [ \g_@@_bleed_box_quadruple_tl ]
}


%% command to set the specials for xetex -- Not yet tested
\cs_new:Npn \@@_special:n #1 {
   \AtBeginShipout { \immediate \special { #1 } }
   \immediate \special { #1 }
}

%% command to set the page attributes for pdftex/luatex
\cs_new:Npn \@@_pdfpageattr:n #1 {
   \pdfpageattr { #1 }
}

%% make a variants to make sure we get the expaned content
\cs_generate_variant:Nn \@@_special:n { V }
\cs_generate_variant:Nn \@@_pdfpageattr:n { V }

%% [A] THIS DOES NOT WORK!
%% set the trim box according to engine
\bool_if:nTF { \sys_if_engine_luatex_p: || \sys_if_engine_pdftex_p: } {
   \@@_pdfpageattr:V \g_@@_trim_pageattr_tl
} {
   \sys_if_engine_xetex:TF {
      \usepackage{atbegshi}
      \@@_special:V \g_@@_trim_special_tl
   } { ERROR: UNKOWN MACHINE! }
}

%% just a macro to show some debug info
\NewDocumentCommand { \debuginfo } { } {
   \par\noindent
   Machine: ~ \texttt{ \c_sys_engine_str }

   \par\bigskip\noindent
   special: \\
   \mbox { \texttt { \g_@@_trim_special_tl } }

   \par\medskip\noindent
   pageattribute: \\
   \mbox { \texttt { \g_@@_trim_pageattr_tl } }
}

\ExplSyntaxOff

\setlength\oddsidemargin{6pc}
\addtolength\oddsidemargin{-1in}    % subtract out the 1 inch driver margin
\setlength\@tempdima{\paperwidth}
\addtolength\@tempdima{-\textwidth}
\addtolength\@tempdima{-6pc}
\setlength\evensidemargin{\@tempdima}
\addtolength\evensidemargin{-1in}


\makeatother %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%


\begin{document}

Test

\end{document}

Trim Box (cuadro de color verde) solucionado correctamente (el crédito se refiere David Carlislea la pregunta)¿Cómo puedo configurar PDF TrimBox dinámicamente (con una macro) y de forma independiente al compilador?)

Ahora también estoy intentando arreglar el cuadro de sangrado (cuadro de color azul), pero salió mal en la parte inferior y en el lado izquierdo, no estoy seguro de qué hice mal en esto. ¿Alguien puede sugerir?

ingrese la descripción de la imagen aquí

Respuesta1

No me queda exactamente claro a qué \g_@@_bleed_dimse refiere. Pero lo estás usando como desplazamiento de recorte desde la esquina inferior izquierda de la página.

Pero luego también estableces la esquina inferior izquierda del cuadro de sangrado en \g_@@bleed_dim, razón por la cual tus dos cuadros comienzan en el mismo lugar.

Además, (al menos en mi sistema) Nse dice que la generación y la variante están en desuso. El error indica que se utilice una Vvariante en su lugar.

Entonces las macros para configurar los cuadros de recorte y sangrado deberían ser:

%% new variant
\cs_generate_variant:Nn \dim_to_decimal_in_bp:n { V }

% values for the Trim box
\tl_new:N \g_@@_trim_box_quadruple_tl
\tl_set:Nx \g_@@_trim_box_quadruple_tl {
   \dim_to_decimal_in_bp:V \g_@@_bleed_dim \space 
   \dim_to_decimal_in_bp:V \g_@@_bleed_dim \space
   \dim_to_decimal_in_bp:n { \paperwidth + \g_@@_bleed_dim } \space
   \dim_to_decimal_in_bp:n { \paperheight + \g_@@_bleed_dim }
}

% values for the Bleed box
\tl_new:N \g_@@_bleed_box_quadruple_tl
\tl_set:Nx \g_@@_bleed_box_quadruple_tl {
   \dim_to_decimal_in_bp:n { \g_@@_bleed_dim - 4.5pt } \space 
   \dim_to_decimal_in_bp:n { \g_@@_bleed_dim - 4.5pt } \space
   \dim_to_decimal_in_bp:n { \paperwidth + 4.5pt + \g_@@_bleed_dim } \space
   \dim_to_decimal_in_bp:n { \paperheight + 4.5pt + \g_@@_bleed_dim }
}

Esto luego se alineará con las marcas de recorte.

Actualmente el código sólo funciona con pdflatex. lualatexdebería ser fácil de arreglar. xelatexpuede que tarde un poco más.

información relacionada