mirror of
https://github.com/flynx/photobook.git
synced 2025-11-02 04:10:13 +00:00
added \jobname.image-list + reworked pdf box setup... still experimenting....
Signed-off-by: Alex A. Naanou <alex.nanou@gmail.com>
This commit is contained in:
parent
a1854ad9d9
commit
243efb1850
206
photobook.cls
206
photobook.cls
@ -38,6 +38,15 @@
|
|||||||
% - templates -- \ImagePage{..}
|
% - templates -- \ImagePage{..}
|
||||||
% XXX see where we need to \ignorespaces...
|
% XXX see where we need to \ignorespaces...
|
||||||
% XXX might be a good idea to add a spine calculator...
|
% XXX might be a good idea to add a spine calculator...
|
||||||
|
% XXX add list of dependencies to docs...
|
||||||
|
%
|
||||||
|
% XXX manual:
|
||||||
|
% - basic usage
|
||||||
|
% - setup
|
||||||
|
% - using templates
|
||||||
|
% - pre-print
|
||||||
|
% - customizing
|
||||||
|
% - extending
|
||||||
%
|
%
|
||||||
%
|
%
|
||||||
%----------------------------------------------------------------------
|
%----------------------------------------------------------------------
|
||||||
@ -136,6 +145,8 @@
|
|||||||
%%%% Options
|
%%%% Options
|
||||||
%%
|
%%
|
||||||
|
|
||||||
|
\edef\photobook@options{\@classoptionslist}
|
||||||
|
|
||||||
\RequirePackage{kvoptions}
|
\RequirePackage{kvoptions}
|
||||||
|
|
||||||
|
|
||||||
@ -483,12 +494,14 @@
|
|||||||
\RequirePackage{graphicx}
|
\RequirePackage{graphicx}
|
||||||
\RequirePackage{adjustbox}
|
\RequirePackage{adjustbox}
|
||||||
\RequirePackage[absolute]{textpos}
|
\RequirePackage[absolute]{textpos}
|
||||||
\RequirePackage[linewidth=1pt]{mdframed}
|
\RequirePackage{fancyvrb}
|
||||||
\RequirePackage{rotating}
|
%\RequirePackage[linewidth=1pt]{mdframed}
|
||||||
% XXX flow text frames...
|
% XXX flow text frames...
|
||||||
% XXX this messes with geometry....
|
% XXX this messes with geometry....
|
||||||
%\RequirePackage{flowfram}
|
%\RequirePackage{flowfram}
|
||||||
|
\RequirePackage{rotating}
|
||||||
\RequirePackage{fancyhdr}
|
\RequirePackage{fancyhdr}
|
||||||
|
\RequirePackage{pdfpages}
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
@ -742,11 +755,9 @@
|
|||||||
\ifx\photobook@blockwidth\empty
|
\ifx\photobook@blockwidth\empty
|
||||||
\dimexpr
|
\dimexpr
|
||||||
\paperwidth
|
\paperwidth
|
||||||
- 2\bleed
|
- 2\bleed \relax
|
||||||
\relax
|
|
||||||
\else
|
\else
|
||||||
\photobook@blockwidth
|
\photobook@blockwidth \fi}
|
||||||
\fi}
|
|
||||||
\setlength\pageblockwidth{\blockwidth}
|
\setlength\pageblockwidth{\blockwidth}
|
||||||
% layout: cover...
|
% layout: cover...
|
||||||
\ifcoverlayout
|
\ifcoverlayout
|
||||||
@ -756,8 +767,7 @@
|
|||||||
+ \spinewidth
|
+ \spinewidth
|
||||||
+ 2\spinefold
|
+ 2\spinefold
|
||||||
+ 2\coverboardgrow
|
+ 2\coverboardgrow
|
||||||
+ 2\coverflap
|
+ 2\coverflap \relax}\fi
|
||||||
\relax } \fi
|
|
||||||
% layout: jacket...
|
% layout: jacket...
|
||||||
% XXX this seems to be about 6mm off -- what are we missing here???
|
% XXX this seems to be about 6mm off -- what are we missing here???
|
||||||
\ifjacketlayout
|
\ifjacketlayout
|
||||||
@ -768,20 +778,17 @@
|
|||||||
+ 2\spinefold
|
+ 2\spinefold
|
||||||
+ 2\jacketwrap
|
+ 2\jacketwrap
|
||||||
+ \jacketflapfront
|
+ \jacketflapfront
|
||||||
+ \jacketflapback
|
+ \jacketflapback \relax}\fi
|
||||||
\relax } \fi
|
|
||||||
% layout: endpaper...
|
% layout: endpaper...
|
||||||
\ifendpaperlayout
|
\ifendpaperlayout
|
||||||
\setlength\blockwidth{ 2\blockwidth } \fi
|
\setlength\blockwidth{ 2\blockwidth }\fi\fi
|
||||||
\fi
|
|
||||||
\ifdim\blockheight=0pt
|
\ifdim\blockheight=0pt
|
||||||
% layout: block / endpaper...
|
% layout: block / endpaper...
|
||||||
\setlength\blockheight{
|
\setlength\blockheight{
|
||||||
\ifx\photobook@blockheight\empty
|
\ifx\photobook@blockheight\empty
|
||||||
\dimexpr \paperheight - 2\bleed \relax
|
\dimexpr \paperheight - 2\bleed \relax
|
||||||
\else
|
\else
|
||||||
\photobook@blockheight
|
\photobook@blockheight \fi}
|
||||||
\fi}
|
|
||||||
\setlength\pageblockheight{\blockheight}
|
\setlength\pageblockheight{\blockheight}
|
||||||
% layout: cover...
|
% layout: cover...
|
||||||
\ifcoverlayout
|
\ifcoverlayout
|
||||||
@ -790,36 +797,33 @@
|
|||||||
\blockheight
|
\blockheight
|
||||||
+ 2\coverboardgrow
|
+ 2\coverboardgrow
|
||||||
+ 2\coverflap
|
+ 2\coverflap
|
||||||
\relax } \fi
|
\relax }\fi
|
||||||
% layout: jacket...
|
% layout: jacket...
|
||||||
\ifjacketlayout
|
\ifjacketlayout
|
||||||
\setlength\blockheight{
|
\setlength\blockheight{
|
||||||
\dimexpr
|
\dimexpr
|
||||||
\blockheight
|
\blockheight
|
||||||
+ 2\coverboardgrow
|
+ 2\coverboardgrow
|
||||||
\relax } \fi
|
\relax }\fi\fi
|
||||||
\fi
|
|
||||||
% default image clearance...
|
% default image clearance...
|
||||||
\ifdim\clearimage=\maxdimen
|
\ifdim\clearimage=\maxdimen
|
||||||
\ifx\photobook@clearimage\empty
|
\ifx\photobook@clearimage\empty
|
||||||
%\setlength\clearimage{-\bleed}
|
%\setlength\clearimage{-\bleed}
|
||||||
\setlength\clearimage{10mm}
|
\setlength\clearimage{10mm}
|
||||||
\else
|
\else
|
||||||
\setlength\clearimage{\photobook@clearimage}
|
\setlength\clearimage{\photobook@clearimage}\fi\fi
|
||||||
\fi
|
|
||||||
\fi
|
|
||||||
% page with bleeds...
|
% page with bleeds...
|
||||||
% NOTE: this is essentially \paperwidth and \paperheight but we do
|
% NOTE: this is essentially \paperwidth and \paperheight but we do
|
||||||
% not rely on them being defined -- photobook settings take
|
% not rely on them being defined -- photobook settings take
|
||||||
% priority over \paperwidth and \paperwidth...
|
% priority over \paperwidth and \paperwidth...
|
||||||
\setlength\bleedblockwidth{\dimexpr
|
\setlength\bleedblockwidth{\dimexpr
|
||||||
2\bleed + \blockwidth
|
2\bleed
|
||||||
\relax}
|
+ \blockwidth \relax}
|
||||||
\setlength\bleedblockheight{\dimexpr
|
\setlength\bleedblockheight{\dimexpr
|
||||||
2\bleed + \blockheight
|
2\bleed
|
||||||
\relax}
|
+ \blockheight \relax}
|
||||||
% misc...
|
% misc...
|
||||||
\nprounddigits{\photobook@roundprintedlengthsto} }
|
\nprounddigits{\photobook@roundprintedlengthsto}}
|
||||||
|
|
||||||
|
|
||||||
%% \DescribeMacro{\ReInitPages}
|
%% \DescribeMacro{\ReInitPages}
|
||||||
@ -901,42 +905,7 @@
|
|||||||
% - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
|
% - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
|
||||||
% pdf boxes...
|
% pdf boxes...
|
||||||
|
|
||||||
% calculate pdf box dimensions in pt...
|
\pdfboxesset[\bleed]{\bleedblockwidth}{\bleedblockheight}
|
||||||
\edef\@pdfWidthPt{\strip@pt\dimexpr
|
|
||||||
0.996264009963\bleedblockwidth \relax}
|
|
||||||
\edef\@pdfHeightPt{\strip@pt\dimexpr
|
|
||||||
0.996264009963\bleedblockheight \relax}
|
|
||||||
\edef\@pdfBleedPt{\strip@pt\dimexpr
|
|
||||||
0.996264009963\bleed \relax}
|
|
||||||
\edef\@pdfTopPt{\strip@pt\dimexpr
|
|
||||||
0.996264009963\dimexpr
|
|
||||||
\bleedblockheight - \bleed \relax \relax}
|
|
||||||
\edef\@pdfRightPt{\strip@pt\dimexpr
|
|
||||||
0.996264009963\dimexpr
|
|
||||||
\bleedblockwidth - \bleed \relax \relax}
|
|
||||||
|
|
||||||
% set the boxes...
|
|
||||||
\ifxetex
|
|
||||||
% XXX not tested...
|
|
||||||
\AtBeginShipout{\AtBeginShipoutAddToBox{
|
|
||||||
\special{pdf:put @thispage <<
|
|
||||||
/MediaBox [0 0 \@pdfWidthPt\space \@pdfHeightPt]
|
|
||||||
/BleedBox [0 0 \@pdfWidthPt\space \@pdfHeightPt]
|
|
||||||
/ArtBox [\@pdfBleedPt\space \@pdfBleedPt\space \@pdfRightPt\space \@pdfTopPt]
|
|
||||||
/TrimBox [\@pdfBleedPt\space \@pdfBleedPt\space \@pdfRightPt\space \@pdfTopPt]
|
|
||||||
/CropBox [\@pdfBleedPt\space \@pdfBleedPt\space \@pdfRightPt\space \@pdfTopPt]
|
|
||||||
>>} }}
|
|
||||||
|
|
||||||
\else
|
|
||||||
\edef\pdfboxes{
|
|
||||||
/MediaBox [0 0 \@pdfWidthPt\space \@pdfHeightPt]
|
|
||||||
/BleedBox [0 0 \@pdfWidthPt\space \@pdfHeightPt]
|
|
||||||
/ArtBox [\@pdfBleedPt\space \@pdfBleedPt\space \@pdfRightPt\space \@pdfTopPt]
|
|
||||||
/TrimBox [\@pdfBleedPt\space \@pdfBleedPt\space \@pdfRightPt\space \@pdfTopPt]
|
|
||||||
/CropBox [\@pdfBleedPt\space \@pdfBleedPt\space \@pdfRightPt\space \@pdfTopPt]
|
|
||||||
}
|
|
||||||
\expandafter\pdfpageattr\expandafter{\pdfboxes}
|
|
||||||
\fi
|
|
||||||
|
|
||||||
} % \AtEndPreamble{..}
|
} % \AtEndPreamble{..}
|
||||||
|
|
||||||
@ -1074,6 +1043,25 @@
|
|||||||
\csname reset#1\endcsname}
|
\csname reset#1\endcsname}
|
||||||
|
|
||||||
|
|
||||||
|
% XXX EXPERIMENTAL
|
||||||
|
% >> \resizedpage[<bleed>]{<width>}{<height>}{<code>}
|
||||||
|
\newcommand\resizedpage[4][\bleed]{
|
||||||
|
\begingroup%
|
||||||
|
% setup page...
|
||||||
|
% XXX this does not work correctly yet...
|
||||||
|
\setlength\bleed{#1}%
|
||||||
|
\setlength\blockwidth{#2}%
|
||||||
|
\setlength\blockheight{#3}%
|
||||||
|
\edef\pdfpagelayout{}%
|
||||||
|
\InitPages%
|
||||||
|
\pdfboxesset[\bleed]{\bleedblockwidth}{\bleedblockheight}%
|
||||||
|
%
|
||||||
|
#4
|
||||||
|
\endgroup%
|
||||||
|
% reset...
|
||||||
|
\pdfboxesset[\bleed]{\bleedblockwidth}{\bleedblockheight}}
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
%----------------------------------------------------------------------
|
%----------------------------------------------------------------------
|
||||||
%%%% Environments and Cells
|
%%%% Environments and Cells
|
||||||
@ -1740,6 +1728,11 @@
|
|||||||
%% intersection between the image area and the parent cell padded by
|
%% intersection between the image area and the parent cell padded by
|
||||||
%% |captionclearparent|.
|
%% |captionclearparent|.
|
||||||
%%
|
%%
|
||||||
|
%% This will write image path, page and size to |\jobname|.image-list,
|
||||||
|
%% this is useful for final image pre-press. To disable this use:
|
||||||
|
%
|
||||||
|
%% >> \writeimagelistfalse
|
||||||
|
%%
|
||||||
% XXX do we need captionclearparent to be directional (a-la margin in adjustbox)???
|
% XXX do we need captionclearparent to be directional (a-la margin in adjustbox)???
|
||||||
% XXX might be a good idea to split this into two parts:
|
% XXX might be a good idea to split this into two parts:
|
||||||
% - \aligncell{..}
|
% - \aligncell{..}
|
||||||
@ -1750,6 +1743,31 @@
|
|||||||
% caption}
|
% caption}
|
||||||
% XXX document scale/offsettop/offsetleft...
|
% XXX document scale/offsettop/offsetleft...
|
||||||
|
|
||||||
|
% helpers...
|
||||||
|
|
||||||
|
% image size logging...
|
||||||
|
\newif\ifwriteimagelist
|
||||||
|
\writeimagelisttrue
|
||||||
|
|
||||||
|
\newwrite\photobook@imagelist
|
||||||
|
\def\photobook@logimagesize@setup{%
|
||||||
|
\immediate\openout\photobook@imagelist=\jobname.image-list%
|
||||||
|
\AfterEndDocument{%
|
||||||
|
\immediate\closeout\photobook@imagelist}%
|
||||||
|
% setup only once per job...
|
||||||
|
\global\def\photobook@logimagesize@setup{}}
|
||||||
|
|
||||||
|
% >> \photobook@logimagesize{<path>}{<page>}{<imagebox>}
|
||||||
|
% XXX for some reason can't use \lenprint[mm]{..} in \write{..}...
|
||||||
|
\newcommand\photobook@logimagesize[3]{%
|
||||||
|
\ifwriteimagelist%
|
||||||
|
% first setup...
|
||||||
|
\photobook@logimagesize@setup%
|
||||||
|
% write...
|
||||||
|
\immediate\write\photobook@imagelist{%
|
||||||
|
#1: p#2: \the\wd#3\space x \the\ht#3}\fi}%
|
||||||
|
|
||||||
|
|
||||||
% NOTE: these are macros and not lengths as we need to "resolve" these
|
% NOTE: these are macros and not lengths as we need to "resolve" these
|
||||||
% as late as possible, i.e. after all the arguments have been
|
% as late as possible, i.e. after all the arguments have been
|
||||||
% processed.
|
% processed.
|
||||||
@ -1933,6 +1951,7 @@
|
|||||||
\adjustbox{%
|
\adjustbox{%
|
||||||
margin={\celloffsetleft} 0pt 0pt {\celloffsettop},
|
margin={\celloffsetleft} 0pt 0pt {\celloffsettop},
|
||||||
valign=T}{%
|
valign=T}{%
|
||||||
|
\photobook@logimagesize{#3}{\thepage}{\photobook@imagebox}%
|
||||||
\usebox\photobook@imagebox}}}%
|
\usebox\photobook@imagebox}}}%
|
||||||
%
|
%
|
||||||
%
|
%
|
||||||
@ -3997,6 +4016,71 @@
|
|||||||
\fi}
|
\fi}
|
||||||
|
|
||||||
|
|
||||||
|
% XXX EXPERIMENTAL...
|
||||||
|
\def\photobook@pdfboxstore@stored{}
|
||||||
|
|
||||||
|
% XXX should these be stacked???
|
||||||
|
% XXX handle slot name...
|
||||||
|
\newcommand\storepdfboxes[1][stored]{%
|
||||||
|
\edef\photobook@pdfboxstore@stored{%
|
||||||
|
\photobook@pdfboxes}}
|
||||||
|
|
||||||
|
% XXX handle slot name...
|
||||||
|
\newcommand\restorepdfboxes[1][stored]{%
|
||||||
|
\expandafter\pdfpageattr\expandafter{\photobook@pdfboxstore@stored}}
|
||||||
|
|
||||||
|
|
||||||
|
%% \DescribeMacro{\pdfboxesset\{..}\}
|
||||||
|
%
|
||||||
|
%% >> \SetPDFBoxes[<bleed>]{<bleedblockwidth>}{<bleedblockheight>}
|
||||||
|
%%
|
||||||
|
\newcommand\pdfboxesset[3][\bleed]{%
|
||||||
|
% calculate pdf box dimensions in pt...
|
||||||
|
\edef\photobook@pdfboxesset@w{\strip@pt\dimexpr
|
||||||
|
0.996264009963\dimexpr #2 \relax\relax}%
|
||||||
|
\edef\photobook@pdfboxesset@h{\strip@pt\dimexpr
|
||||||
|
0.996264009963\dimexpr #3 \relax\relax}%
|
||||||
|
\edef\photobook@pdfboxesset@bleed{\strip@pt\dimexpr
|
||||||
|
0.996264009963\dimexpr #1 \relax\relax}%
|
||||||
|
\edef\photobook@pdfboxesset@t{\strip@pt\dimexpr
|
||||||
|
0.996264009963\dimexpr #3 - #1 \relax\relax}%
|
||||||
|
\edef\photobook@pdfboxesset@r{\strip@pt\dimexpr
|
||||||
|
0.996264009963\dimexpr #2 - #1 \relax\relax}%
|
||||||
|
%
|
||||||
|
% set the boxes...
|
||||||
|
\ifxetex%
|
||||||
|
% XXX not tested...
|
||||||
|
% XXX this is mostly the same as for the other branch -- reuse...
|
||||||
|
\AtBeginShipout{\AtBeginShipoutAddToBox{
|
||||||
|
\special{pdf:put @thispage <<
|
||||||
|
/MediaBox [0 0 \photobook@pdfboxesset@w\space \photobook@pdfboxesset@h]
|
||||||
|
/BleedBox [0 0 \photobook@pdfboxesset@w\space \photobook@pdfboxesset@h]
|
||||||
|
/ArtBox [
|
||||||
|
\photobook@pdfboxesset@bleed\space \photobook@pdfboxesset@bleed\space
|
||||||
|
\photobook@pdfboxesset@r\space \photobook@pdfboxesset@t]
|
||||||
|
/TrimBox [
|
||||||
|
\photobook@pdfboxesset@bleed\space \photobook@pdfboxesset@bleed\space
|
||||||
|
\photobook@pdfboxesset@r\space \photobook@pdfboxesset@t]
|
||||||
|
/CropBox [
|
||||||
|
\photobook@pdfboxesset@bleed\space \photobook@pdfboxesset@bleed\space
|
||||||
|
\photobook@pdfboxesset@r\space \photobook@pdfboxesset@t] >>}}}%
|
||||||
|
\else%
|
||||||
|
\edef\photobook@pdfboxes{
|
||||||
|
/MediaBox [0 0 \photobook@pdfboxesset@w\space \photobook@pdfboxesset@h]
|
||||||
|
/BleedBox [0 0 \photobook@pdfboxesset@w\space \photobook@pdfboxesset@h]
|
||||||
|
/ArtBox [
|
||||||
|
\photobook@pdfboxesset@bleed\space \photobook@pdfboxesset@bleed\space
|
||||||
|
\photobook@pdfboxesset@r\space \photobook@pdfboxesset@t]
|
||||||
|
/TrimBox [
|
||||||
|
\photobook@pdfboxesset@bleed\space \photobook@pdfboxesset@bleed\space
|
||||||
|
\photobook@pdfboxesset@r\space \photobook@pdfboxesset@t]
|
||||||
|
/CropBox [
|
||||||
|
\photobook@pdfboxesset@bleed\space \photobook@pdfboxesset@bleed\space
|
||||||
|
\photobook@pdfboxesset@r\space \photobook@pdfboxesset@t]}%
|
||||||
|
%
|
||||||
|
\expandafter\pdfpageattr\expandafter{\photobook@pdfboxes}\fi}
|
||||||
|
|
||||||
|
|
||||||
%% \DescribeMacro{\pdfcommentcell\{..\}}
|
%% \DescribeMacro{\pdfcommentcell\{..\}}
|
||||||
%
|
%
|
||||||
%% Add pdf comment as margin overlay.
|
%% Add pdf comment as margin overlay.
|
||||||
|
|||||||
@ -101,7 +101,7 @@ clean-dist:
|
|||||||
|
|
||||||
.PHONY: clean
|
.PHONY: clean
|
||||||
clean: sweep
|
clean: sweep
|
||||||
-rm -rf *.pdf PRINT ; true
|
-rm -rf *.pdf PRINT *.image-list ; true
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|||||||
@ -31,19 +31,17 @@
|
|||||||
|
|
||||||
\begin{document}
|
\begin{document}
|
||||||
|
|
||||||
\ImagePageClearR{ImagePageClearR}{\TestImageV}
|
\ImagePageFill{Caption text}{\TestImage}
|
||||||
%\ImagePageClearL[captionclearparent=2cm]{ImagePageClearL}{\TestImage}
|
|
||||||
\ImagePageClearL[center, captionclearparent=15mm]{ImagePageClearL}{\TestImageV}
|
|
||||||
\ImagePageClearL[captionclearparent=15mm]{ImagePageClearL}{\TestImageV}
|
|
||||||
|
|
||||||
\ImagePageFitL[captionclearparent=15mm]{ImagePageFitL}{\TestImageV}
|
\resizedpage{3\bleedblockwidth}{\bleedblockheight}{
|
||||||
\ImagePageFitR[captionclearparent=15mm]{ImagePageFitR}{\TestImageV}
|
\ImagePageFill{Caption text}{\TestImage}}
|
||||||
|
|
||||||
\ImagePageFitT[captionclearparent=15mm]{ImagePageFitT}{\TestImage}
|
\pdfboxesset{2\bleedblockwidth}{\bleedblockheight}
|
||||||
\ImagePageFitB[captionclearparent=15mm]{ImagePageFitB}{\TestImage}
|
\ImagePage{Caption text}{\TestImage}
|
||||||
|
|
||||||
|
\pdfboxesset[\bleed]{\bleedblockwidth}{\bleedblockheight}
|
||||||
|
\ImagePage{Caption text}{\TestImage}
|
||||||
|
|
||||||
\ImagePageFill{ImagePageFill}{\TestImageV}
|
|
||||||
\ImagePageFill[captionclearparent=15mm]{ImagePageFill}{\TestImageV}
|
|
||||||
|
|
||||||
\end{document}
|
\end{document}
|
||||||
|
|
||||||
|
|||||||
Loading…
x
Reference in New Issue
Block a user