mirror of
https://github.com/flynx/photobook.git
synced 2025-10-29 02:10:08 +00:00
bugfix...
Signed-off-by: Alex A. Naanou <alex.nanou@gmail.com>
This commit is contained in:
parent
3b86a3e8de
commit
e3d6cfff37
268
photobook.cls
268
photobook.cls
@ -7,6 +7,10 @@
|
||||
% - adds basic templates for image pages (XXX)
|
||||
%
|
||||
%
|
||||
% XXX add nudge/grow support -> renamed vars...
|
||||
% - add relevant vars -- DONE
|
||||
% - API -- DONE (revise)
|
||||
% - reset state -- DONE
|
||||
% XXX revise command naming -- should be obvious from name what is what:
|
||||
% - meta commands -- ??? (currently same as templates)
|
||||
% - general macros -- \usecell{..}
|
||||
@ -1429,6 +1433,7 @@
|
||||
%% |<caption-cell>| occupies the same space as the image clipped by the
|
||||
%% containing cell and provides all the cell functionality.
|
||||
%%
|
||||
% XXX document scale/offsettop/offsetleft...
|
||||
|
||||
% 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
|
||||
@ -1516,6 +1521,21 @@
|
||||
\define@key{imagecell@args}{clearance}{%
|
||||
\setlength\photobook@imagecell@clearance{#1}}%
|
||||
|
||||
% offsettop=<len> / offsetleft=<len>...
|
||||
\newlength\photobook@imagecell@offsettop%
|
||||
\setlength\photobook@imagecell@offsettop{0pt}%
|
||||
\define@key{imagecell@args}{offsettop}[0pt]{%
|
||||
\setlength\photobook@imagecell@offsettop{#1}}%
|
||||
\newlength\photobook@imagecell@offsetleft%
|
||||
\setlength\photobook@imagecell@offsetleft{0pt}%
|
||||
\define@key{imagecell@args}{offsetleft}[0pt]{%
|
||||
\setlength\photobook@imagecell@offsetleft{#1}}%
|
||||
|
||||
% scale=<num>...
|
||||
\edef\photobook@imagecell@scale{1}%
|
||||
\define@key{imagecell@args}{scale}[1]{%
|
||||
\edef\photobook@imagecell@scale{#1}}%
|
||||
|
||||
\def\photobook@imagecell@captionalign{t}
|
||||
\define@choicekey{imagecell@args}{caption-align}{t,c,b}[t]{%
|
||||
\def\photobook@imagecell@captionalign{#1}}%
|
||||
@ -1539,10 +1559,10 @@
|
||||
\sbox{\photobook@imagebox}{%
|
||||
\includegraphics[%
|
||||
keepaspectratio,
|
||||
width=\dimexpr
|
||||
width=\photobook@imagecell@scale\dimexpr
|
||||
\cellwidth
|
||||
- ((\photobook@imagecell@clearance) * 2) \relax,
|
||||
height=\dimexpr
|
||||
height=\photobook@imagecell@scale\dimexpr
|
||||
\cellheight
|
||||
- ((\photobook@imagecell@clearance) * 2) \relax]{#3}}%
|
||||
% fill...
|
||||
@ -1561,14 +1581,14 @@
|
||||
\sbox{\photobook@imagebox}{%
|
||||
\includegraphics[%
|
||||
keepaspectratio,
|
||||
width=\dimexpr
|
||||
width=\photobook@imagecell@scale\dimexpr
|
||||
+ \cellwidth
|
||||
- ((\photobook@imagecell@clearance) * 2) \relax]{#3}}%
|
||||
\else%
|
||||
\sbox{\photobook@imagebox}{%
|
||||
\includegraphics[%
|
||||
keepaspectratio,
|
||||
height=\dimexpr
|
||||
height=\photobook@imagecell@scale\dimexpr
|
||||
+ \cellheight
|
||||
- ((\photobook@imagecell@clearance) * 2) \relax]{#3}}
|
||||
\fi\fi\fi%
|
||||
@ -1576,7 +1596,15 @@
|
||||
% XXX for some odd reason without this the alignment completely breaks...
|
||||
\vspace{0pt}%
|
||||
\adjustbox{%
|
||||
margin={\photobook@imagecell@left} 0pt 0pt {\photobook@imagecell@top}}{%
|
||||
%margin={\photobook@imagecell@left} 0pt 0pt {\photobook@imagecell@top}}{%
|
||||
margin=
|
||||
{\dimexpr
|
||||
\photobook@imagecell@offsetleft
|
||||
+ \photobook@imagecell@left \relax}
|
||||
0pt 0pt
|
||||
{\dimexpr
|
||||
\photobook@imagecell@offsettop
|
||||
+ \photobook@imagecell@top \relax}}{%
|
||||
% image....
|
||||
\usebox\photobook@imagebox%
|
||||
%
|
||||
@ -1857,6 +1885,9 @@
|
||||
|
||||
% XXX need to do a caption block -- a cell to one side of an image to the
|
||||
% end of the page...
|
||||
\newcommand\captionblockcell[2][]{%
|
||||
% XXX
|
||||
}
|
||||
|
||||
|
||||
% - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
|
||||
@ -2292,59 +2323,51 @@
|
||||
\captionsize #1}}
|
||||
|
||||
|
||||
%% \DescribeMacro{\captionsidebox\{..\}}
|
||||
%
|
||||
%% \LEGACY
|
||||
%
|
||||
%% >> \captionsidebox[<offset>]{<imagebox>}{<text>}
|
||||
%%
|
||||
\newcommand\captionsidebox[3][0mm]{
|
||||
\begin{minipage}{\dimexpr
|
||||
% caption-image distance...
|
||||
-1em
|
||||
-\clearimage
|
||||
+\blockwidth
|
||||
-(\wd#2 - #1)
|
||||
+(\nudgeimageby)
|
||||
-(0.5\blockwidth - 0.5\textwidth) \relax}%
|
||||
{ \captionsize #3 }
|
||||
\end{minipage}}
|
||||
|
||||
|
||||
%% \DescribeMacro{\captionboxleft\{..\}}
|
||||
%% \DescribeMacro{\captionboxright\{..\}}
|
||||
%
|
||||
%% \LEGACY
|
||||
%
|
||||
%% >> \captionboxleft[<offset>]{<imagebox>}{<text>}
|
||||
%% >> \captionboxright[<offset>]{<imagebox>}{<text>}
|
||||
%%
|
||||
\newcommand\captionboxleft[3][0mm]{
|
||||
\null
|
||||
\vfill
|
||||
\begin{flushleft}
|
||||
\captionsidebox[#1]{#2}{%
|
||||
\begin{flushright}
|
||||
#3
|
||||
\end{flushright}}
|
||||
\end{flushleft}}
|
||||
\newcommand\captionboxright[3][0mm]{
|
||||
\null
|
||||
\vfill
|
||||
\begin{flushright}
|
||||
\captionsidebox[#1]{#2}{%
|
||||
\begin{flushleft}
|
||||
#3
|
||||
\end{flushleft}}
|
||||
\end{flushright}}
|
||||
|
||||
|
||||
|
||||
%----------------------------------------------------------------------
|
||||
%%%% Page Templates
|
||||
|
||||
\newsavebox\photobook@imagebox
|
||||
|
||||
|
||||
% - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
|
||||
|
||||
%% \DescribeMacro{\imagescale=<num>}
|
||||
%% \DescribeMacro{\imageoffsettop=<len>}
|
||||
%% \DescribeMacro{\imageoffsetleft=<len>}
|
||||
%
|
||||
%% Tweak next image templates scale/offsettop/offsetleft
|
||||
%%
|
||||
\edef\imagescale{1}
|
||||
\newlength\imageoffsettop
|
||||
\newlength\imageoffsetleft
|
||||
|
||||
%% \DescribeMacro{\tweakimagescale\{..\}}
|
||||
%% \DescribeMacro{\tweakimageoffsetleft\{..\}}
|
||||
%% \DescribeMacro{\tweakimageoffsetleft\{..\}}
|
||||
%
|
||||
%% Convenience commands
|
||||
%%
|
||||
\newcommand\tweakimagescale[1]{%
|
||||
\edef\imagescale{#1}}
|
||||
\newcommand\tweakimageoffsettop[1]{%
|
||||
\setlength\imageoffsettop{#1}}
|
||||
\newcommand\tweakimageoffsetleft[1]{%
|
||||
\setlength\imageoffsetleft{#1}}
|
||||
|
||||
%% \DescribeMacro{\resetimagetweaks\{..\}}
|
||||
%
|
||||
%% Reset tweaked values.
|
||||
%%
|
||||
\newcommand\resetimagetweaks{%
|
||||
\edef\imagescale{1}%
|
||||
\setlength\imageoffsettop{0pt}%
|
||||
\setlength\imageoffsetleft{0pt}}
|
||||
|
||||
% setup initial state...
|
||||
\resetimagetweaks
|
||||
|
||||
|
||||
% - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
|
||||
% meta-commands...
|
||||
|
||||
@ -2365,14 +2388,16 @@
|
||||
\def\ImagePageTemplate#1#2{%
|
||||
% handle <macro>* version...
|
||||
\expandafter\def\csname #1\endcsname{\@ifstar{%
|
||||
\csname photobook@ImagePageTemplate@#1\endcsname%
|
||||
\csname photobook@ImagePageTemplate@#1@star\endcsname%
|
||||
}{%
|
||||
\csname photobook@ImagePageTemplate@#1@captiontpl\endcsname}}%
|
||||
\csname photobook@ImagePageTemplate@#1\endcsname}}%
|
||||
% main implementation (raw caption)...
|
||||
\expandafter\newcommand\csname photobook@ImagePageTemplate@#1\endcsname[3][]{#2}%
|
||||
\expandafter\newcommand\csname photobook@ImagePageTemplate@#1@star\endcsname[3][]{%
|
||||
#2%
|
||||
\resetimagetweaks}%
|
||||
% main implementation with caption template...
|
||||
\expandafter\newcommand\csname photobook@ImagePageTemplate@#1@captiontpl\endcsname[3][]{%
|
||||
\csname photobook@ImagePageTemplate@#1\endcsname[##1]{%
|
||||
\expandafter\newcommand\csname photobook@ImagePageTemplate@#1\endcsname[3][]{%
|
||||
\csname photobook@ImagePageTemplate@#1@star\endcsname[##1]{%
|
||||
\@ifundefined{#1Caption}{%
|
||||
##2%
|
||||
}{%
|
||||
@ -2440,7 +2465,9 @@
|
||||
\begin{inlinecell*}%
|
||||
{\imageblockwidth\pagetextwidth}%
|
||||
{\imageblockheight\pagetextheight}%
|
||||
\imagecell[fit]{#2}{#3}%
|
||||
\imagecell[fit,
|
||||
scale=\imagescale,
|
||||
#1]{#2}{#3}%
|
||||
\end{inlinecell*}}%
|
||||
\end{center}%
|
||||
\end{minipage}%
|
||||
@ -2493,7 +2520,12 @@
|
||||
\ImagePageTemplate{ImagePageFit}{%
|
||||
\begin{page}%
|
||||
\begin{pagecell}%
|
||||
\imagecell[center, clearance=\clearimage, #1]{#2}{#3}%
|
||||
\imagecell[center,
|
||||
clearance=\clearimage,
|
||||
scale=\imagescale,
|
||||
offsettop=\imageoffsettop,
|
||||
offsetleft=\imageoffsetleft,
|
||||
#1]{#2}{#3}%
|
||||
\end{pagecell}%
|
||||
\end{page}}
|
||||
|
||||
@ -2574,7 +2606,7 @@
|
||||
keepaspectratio,
|
||||
height=\dimexpr \blockheight - ((#1) * 2) \relax,]{#3} }
|
||||
\clearpage
|
||||
\captionboxright[-#1]{\photobook@imagebox}{#2}
|
||||
%\captionboxright[-#1]{\photobook@imagebox}{#2}
|
||||
\ShipoutPicture{
|
||||
\AtPageLowerLeft{
|
||||
\hspace*{\dimexpr \OFFSETFIX + #1 \relax}{
|
||||
@ -2616,7 +2648,7 @@
|
||||
keepaspectratio,
|
||||
height=\dimexpr \blockheight - ((#1) * 2) \relax,]{#3} }
|
||||
\clearpage
|
||||
\captionboxleft[-#1]{\photobook@imagebox}{#2}
|
||||
%\captionboxleft[-#1]{\photobook@imagebox}{#2}
|
||||
\ShipoutPicture{
|
||||
\AtPageLowerLeft{
|
||||
\hspace*{\dimexpr
|
||||
@ -2666,13 +2698,19 @@
|
||||
% XXX add nudge/grow support...
|
||||
\ImagePageTemplate{ImageLeftHalfPage}{%
|
||||
\begin{spreadtopages*}[2]{photobook@ImageLeftHalfPage@cell}%
|
||||
\imagecell[fill, clearance=\clearimage, #1]{#2}{#3}%
|
||||
\imagecell[fill,
|
||||
clearance=\clearimage,
|
||||
scale=\imagescale,
|
||||
offsettop=\imageoffsettop,
|
||||
offsetleft=\imageoffsetleft,
|
||||
#1]{#2}{#3}%
|
||||
\end{spreadtopages*}%
|
||||
%
|
||||
\cleartoleftpage%
|
||||
\usespreadpage[1]{photobook@ImageLeftHalfPage@cell}}
|
||||
|
||||
|
||||
|
||||
%% \DescribeMacro{\ImageRightHalfPage\{..\}}
|
||||
%% \DescribeMacro{\ImageRightHalfPageCaption\{..\}}
|
||||
%% \DescribeMacro{\resetImageRightHalfPageCaption}
|
||||
@ -2711,7 +2749,12 @@
|
||||
% XXX add nudge/grow support...
|
||||
\ImagePageTemplate{ImageRightHalfPage}{%
|
||||
\begin{spreadtopages*}[2]{photobook@ImageRightHalfPage@cell}%
|
||||
\imagecell[fill, clearance=\clearimage, #1]{#2}{#3}%
|
||||
\imagecell[fill,
|
||||
clearance=\clearimage,
|
||||
scale=\imagescale,
|
||||
offsettop=\imageoffsettop,
|
||||
offsetleft=\imageoffsetleft,
|
||||
#1]{#2}{#3}%
|
||||
\end{spreadtopages*}%
|
||||
%
|
||||
\cleartoleftpage%
|
||||
@ -2722,79 +2765,6 @@
|
||||
%----------------------------------------------------------------------
|
||||
%%%% Spread Templates
|
||||
|
||||
\newlength{\photobook@tmpnudgeimageby}
|
||||
\newlength{\photobook@tmpvnudgeimageby}
|
||||
\newlength{\photobook@tmpvgrowimageby}
|
||||
|
||||
\newlength{\nudgeimageby}
|
||||
\setlength{\nudgeimageby}{0mm}
|
||||
|
||||
\newlength{\vnudgeimageby}
|
||||
\setlength{\vnudgeimageby}{0mm}
|
||||
|
||||
\newlength{\vgrowimageby}
|
||||
\setlength{\vgrowimageby}{0mm}
|
||||
|
||||
|
||||
% - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
|
||||
|
||||
%% \DescribeMacro{\nudgeimage\{..\}}
|
||||
%
|
||||
%% Nudge an image horizontally within bleeds. Positive values nudge/move
|
||||
%% to the right negative values nudge left.
|
||||
%
|
||||
%% >> \nudgeimage{<amount>}
|
||||
%
|
||||
%% in addition to spread commands below this is also used by |\captionsidebox{..}|
|
||||
%%
|
||||
\newcommand\nudgeimage[1]{%
|
||||
\setlength{\nudgeimageby}{#1}}
|
||||
|
||||
%% \DescribeMacro{\vnudgeimage\{..\}}
|
||||
%
|
||||
%% Like |\nudgeimage{..}| but nudges vertically.
|
||||
%
|
||||
%% >> \vnudgeimage{<amount>}
|
||||
%%
|
||||
%
|
||||
% NOTE: this should not be used in conjunction with \vgrowimage{..} and
|
||||
% should not exceed 1/2 of the amount given to \vgrowimage{..}
|
||||
\newcommand\vnudgeimage[1]{%
|
||||
\setlength{\vnudgeimageby}{#1}}
|
||||
|
||||
%% \DescribeMacro{\vgrowimage\{..\}}
|
||||
%
|
||||
%% Grow an image within bleeds.
|
||||
%
|
||||
%% >> \vgrowimage{<amount>}
|
||||
%
|
||||
%% This sizes the image relative to its center this adding 1/2 the
|
||||
%% amount to the top and 1/2 to the bottom.
|
||||
%%
|
||||
\newcommand\vgrowimage[1]{%
|
||||
\setlength{\vgrowimageby}{#1}}
|
||||
|
||||
|
||||
%% \DescribeMacro{\resetnudgeimage}
|
||||
%
|
||||
%% Reset the effects of nudging and growing back to 0.
|
||||
%
|
||||
%% >> \resetnudgeimage
|
||||
%
|
||||
%% When working with shipout place this after |\newpage| as when
|
||||
%% placed before this will reset the |\nudgeimageby{..}| BEFORE the image
|
||||
%% placing commands have a chance to execute.
|
||||
%%
|
||||
% XXX rename
|
||||
\newcommand\resetnudgeimage{%
|
||||
\setlength{\vgrowimageby}{0mm}%
|
||||
\setlength{\vnudgeimageby}{0mm}%
|
||||
\setlength{\nudgeimageby}{0mm}}
|
||||
|
||||
|
||||
|
||||
% - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
|
||||
|
||||
% XXX
|
||||
%% \DescribeMacro{\portraitspreadbleedleft\{..\}}
|
||||
%
|
||||
@ -2910,11 +2880,16 @@
|
||||
\vcaptioncell[after, align=flushleft]{%
|
||||
\captionformat{#1}}}
|
||||
|
||||
% XXX add nudge/grow support...
|
||||
\ImagePageTemplate{ImageSpreadLeft}{%
|
||||
\cleartoleftpage%
|
||||
\begin{spreadtopages}[2]%
|
||||
\imagecell[fit, left, clearance=\clearimage, #1]{#2}{#3}%
|
||||
\imagecell[fit,
|
||||
left,
|
||||
clearance=\clearimage,
|
||||
scale=\imagescale,
|
||||
offsettop=\imageoffsettop,
|
||||
offsetleft=\imageoffsetleft,
|
||||
#1]{#2}{#3}%
|
||||
\end{spreadtopages}}
|
||||
|
||||
|
||||
@ -2954,11 +2929,16 @@
|
||||
\vcaptioncell[before, align=flushleft]{%
|
||||
\captionformat{#1}}}
|
||||
|
||||
% XXX add nudge/grow support...
|
||||
\ImagePageTemplate{ImageSpreadRight}{%
|
||||
\cleartoleftpage%
|
||||
\begin{spreadtopages}[2]%
|
||||
\imagecell[fit, right, clearance=\clearimage, #1]{#2}{#3}%
|
||||
\imagecell[fit,
|
||||
right,
|
||||
clearance=\clearimage,
|
||||
scale=\imagescale,
|
||||
offsettop=\imageoffsettop,
|
||||
offsetleft=\imageoffsetleft,
|
||||
#1]{#2}{#3}%
|
||||
\end{spreadtopages}}
|
||||
|
||||
|
||||
@ -2997,11 +2977,15 @@
|
||||
\captioncell[bottom, align=flushright]{%
|
||||
\captionformat{#1}}}
|
||||
|
||||
% XXX add nudge/grow support...
|
||||
\ImagePageTemplate{ImageSpreadFill}{%
|
||||
\cleartoleftpage%
|
||||
\begin{spreadtopages}[2]%
|
||||
\imagecell[fill, clearance=\clearimage, #1]{#2}{#3}%
|
||||
\imagecell[fill,
|
||||
clearance=\clearimage,
|
||||
scale=\imagescale,
|
||||
offsettop=\imageoffsettop,
|
||||
offsetleft=\imageoffsetleft,
|
||||
#1]{#2}{#3}%
|
||||
\end{spreadtopages}}
|
||||
|
||||
|
||||
|
||||
@ -15,6 +15,9 @@
|
||||
|
||||
\setlength\parindent{0pt}
|
||||
|
||||
\edef\TestImage{DSC00403-2}
|
||||
|
||||
|
||||
% - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
|
||||
|
||||
|
||||
@ -22,32 +25,6 @@
|
||||
|
||||
\begin{document}
|
||||
|
||||
\imagespreadleft{mooo}{DSC00403-2}
|
||||
|
||||
\imagespreadright{mooo}{DSC00403-2}
|
||||
|
||||
\imagespreadfill{mooo}{DSC00403-2}
|
||||
|
||||
\begin{spreadtopages*}{moo}{%
|
||||
\imagecell[fill, clearance=-\bleed]{}{DSC00403-2}}
|
||||
\end{spreadtopages*}
|
||||
|
||||
\usespreadpage{moo}
|
||||
|
||||
\usespreadpage{moo}
|
||||
|
||||
%\savecell{moo}{\paperwidth}{\paperheight}{
|
||||
% \imagecell[fill, clearance=-\bleed]{}{DSC00403-2}}
|
||||
%
|
||||
%\usespreadpage[2]{moo}
|
||||
|
||||
%\usecell{moo}(3cm,3cm){10cm}{10cm}
|
||||
|
||||
|
||||
|
||||
%\imagepage*{moo}{DSC00403-2}
|
||||
%\imagepage{moo}{DSC00403-2}
|
||||
|
||||
|
||||
\end{document}
|
||||
|
||||
|
||||
Loading…
x
Reference in New Issue
Block a user