mirror of
				https://github.com/flynx/photobook.git
				synced 2025-10-31 03:10:08 +00:00 
			
		
		
		
	lots of tweaks and refactoring...
Signed-off-by: Alex A. Naanou <alex.nanou@gmail.com>
This commit is contained in:
		
							parent
							
								
									39cf3f9c25
								
							
						
					
					
						commit
						2e7faac8a8
					
				
							
								
								
									
										219
									
								
								photobook.cls
									
									
									
									
									
								
							
							
						
						
									
										219
									
								
								photobook.cls
									
									
									
									
									
								
							| @ -267,44 +267,41 @@ | ||||
| \RequirePackage{iftex} | ||||
| \RequirePackage{etoolbox} | ||||
| \RequirePackage{atbegshi} | ||||
| %\RequirePackage{afterpage} | ||||
| %\RequirePackage{changepage} | ||||
| \RequirePackage[unicode]{hyperref} | ||||
| %\RequirePackage{pdfcomment} | ||||
| \RequirePackage{eso-pic} | ||||
| \RequirePackage{environ} | ||||
| \RequirePackage{xcolor} | ||||
| \RequirePackage{colorspace} | ||||
| \RequirePackage{graphicx} | ||||
| \RequirePackage[ | ||||
| 	overlay,absolute, | ||||
| 	%showboxes, | ||||
| ]{textpos} | ||||
| \RequirePackage[overlay,absolute]{textpos} | ||||
| \RequirePackage[linewidth=1pt]{mdframed} | ||||
| \RequirePackage{rotating} | ||||
| % XXX flow text frames... | ||||
| \RequirePackage{flowfram} | ||||
| 
 | ||||
| 
 | ||||
| 
 | ||||
| %---------------------------------------------------------------------- | ||||
| % Globals... | ||||
| % | ||||
| % NOTE: most of these are setup in \InitPageLengths... | ||||
| 
 | ||||
| \edef\layoutmode{\photobook@layoutmode} | ||||
| 
 | ||||
| \edef\pdfpagelayout{\photobook@pdfpagelayout} | ||||
| 
 | ||||
| 
 | ||||
| % layout modes... | ||||
| % | ||||
| % layout mode tests... | ||||
| \newif\ifcoverlayout | ||||
| 
 | ||||
| \newif\ifhardcoverlayout | ||||
| 
 | ||||
| \newif\ifsoftcoverlayout | ||||
| 
 | ||||
| \newif\ifendpaperlayout | ||||
| 
 | ||||
| \newif\ifjacketlayout | ||||
| 
 | ||||
| % agrigates... | ||||
| \newif\ifcoverlikelayout | ||||
| 
 | ||||
| \newif\ifblocklayout | ||||
| 
 | ||||
| \edef\pdfpagelayout{\photobook@pdfpagelayout} | ||||
| 
 | ||||
| \newlength\spinewidth | ||||
| \setlength\spinewidth{\photobook@spinewidth} | ||||
| @ -316,16 +313,11 @@ | ||||
| \setlength\coverboardgrow{\photobook@coverboardgrow} | ||||
| 
 | ||||
| \newlength\coverflap | ||||
| 
 | ||||
| \newlength\jacketwrap | ||||
| 
 | ||||
| \newlength\jacketflap | ||||
| 
 | ||||
| \newlength\jacketflapfront | ||||
| 
 | ||||
| \newlength\jacketflapback | ||||
| 
 | ||||
| % NOTE: page and bleed block sizes are set via \RecalculatePageLengths | ||||
| % NOTE: page and bleed block sizes are set via \InitPageLengths | ||||
| \newlength\blockwidth | ||||
| \newlength\blockheight | ||||
| % NOTE: these are equivalent to \paperwidth and \paperheight but are  | ||||
| @ -362,10 +354,10 @@ | ||||
| 
 | ||||
| 
 | ||||
| %---------------------------------------------------------------------- | ||||
| % Commands... | ||||
| % Init / reset... | ||||
| 
 | ||||
| \newcommand\RecalculatePageLengths{ | ||||
| 	% layout bools... | ||||
| \newcommand\InitPageLengths{ | ||||
| 	% layout bools/tests... | ||||
| 	\coverlayoutfalse | ||||
| 	\hardcoverlayoutfalse | ||||
| 	\softcoverlayoutfalse | ||||
| @ -509,15 +501,17 @@ | ||||
| 	\setlength\blockheight{0mm} | ||||
| 	\edef\pdfpagelayout{} | ||||
| 	% | ||||
| 	\RecalculatePageLengths } | ||||
| 	\InitPageLengths } | ||||
| 
 | ||||
| 
 | ||||
| 
 | ||||
| 
 | ||||
| 
 | ||||
| %---------------------------------------------------------------------- | ||||
| % Setup (early)... | ||||
| % Setup... | ||||
| 
 | ||||
| % init/update lengths... | ||||
| \RecalculatePageLengths | ||||
| \InitPageLengths | ||||
| 
 | ||||
| % minimal geometry setup... | ||||
| \RequirePackage[ | ||||
| @ -528,7 +522,8 @@ | ||||
| 
 | ||||
| 
 | ||||
| %---------------------------------------------------------------------- | ||||
| % Setup (late)... | ||||
| % Setup (pre-document)... | ||||
| 
 | ||||
| \AtEndPreamble{ | ||||
| 
 | ||||
| % - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - | ||||
| @ -548,7 +543,7 @@ | ||||
| % - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - | ||||
| % Geometry... | ||||
| 
 | ||||
| 	\RecalculatePageLengths | ||||
| 	\InitPageLengths | ||||
| 
 | ||||
| 	% no-defaults -- the user is expected to set things up... | ||||
| 	\ifphotobook@geometrynodefaults | ||||
| @ -641,6 +636,32 @@ | ||||
| 	\fi } | ||||
| 
 | ||||
| 
 | ||||
| \newcommand\pdfpagecount[1]{ | ||||
| 	\ifpdftex | ||||
| 		\pdfximage{#1} | ||||
|     	\number\pdflastximagepages% | ||||
| 	\else\ifxetex | ||||
| 		\number\XeTeXpdfpagecount"#1"% | ||||
| 	\else\ifluatex | ||||
| 		\number\directlua{% | ||||
| 			local pages = 0 | ||||
| 			local doc = pdfe.open("\luaescapestring{#1}") | ||||
| 			if doc then | ||||
| 				pages = pdfe.getnofpages(doc) | ||||
| 				pdfe.close(doc) | ||||
| 			end | ||||
| 			tex.write(pages) } \fi\fi } | ||||
| 
 | ||||
| 
 | ||||
| % \pdfspinewidth{paper-thikness}{cover-thikness}{block-pdf} | ||||
| % | ||||
| % NOTE: really "like" how LaTeX overcomplicats simple math... | ||||
| \newcommand\pdfspinewidth[3]{% | ||||
| 	\setlength\spinewidth{\dimexpr | ||||
| 			(#1 mm) * \numexpr \pdfpagecount{#3} / 2 \relax | ||||
| 			+ ((#2 mm) * 2)  | ||||
| 		\relax} } | ||||
| 
 | ||||
| 
 | ||||
| % XXX workaround a problem with xelatex vs. lualatex... | ||||
| \ifxetex | ||||
| @ -775,11 +796,21 @@ | ||||
| 
 | ||||
| 
 | ||||
| %---------------------------------------------------------------------- | ||||
| % Cover/endpaper Templates... | ||||
| % Envs... | ||||
| % | ||||
| % XXX need a way to place images / templates into these... | ||||
| % XXX should these only be visible in respective modes or for non-zero widths??? | ||||
| 
 | ||||
| 
 | ||||
| % within a block/cell env these store the cell width and height... | ||||
| \newlength\cellwidth | ||||
| \newlength\cellheight | ||||
| 
 | ||||
| 
 | ||||
| 
 | ||||
| % - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - | ||||
| % Generic... | ||||
| 
 | ||||
| % XXX this may span more than one page if there is enoug stuff packed  | ||||
| %		into it... | ||||
| \newenvironment{page}{}{% | ||||
| @ -787,45 +818,27 @@ | ||||
| 	\clearpage } | ||||
| 
 | ||||
| 
 | ||||
| %%% \photobook@newtemplatecell{name}{x}{y}{width}{heigth} | ||||
| %%% | ||||
| %%% XXX need to quote arguments to make them eval on env expansion and not  | ||||
| %%%		on command expansion.... | ||||
| %%\newcommand\photobook@newtemplatecell[5]{ | ||||
| %%	\newenvironment{#1}{% | ||||
| %%		\setlength\cellwidth{#4} | ||||
| %%		\setlength\cellheight{#5} | ||||
| %%		% | ||||
| %%		\begin{textblock*}{\pageblockwidth}(#2, #3)% | ||||
| %%		\begin{minipage}[t][\cellheight][t]{\cellwidth}%  | ||||
| %%	}{%  | ||||
| %%		\end{minipage}% | ||||
| %%		\end{textblock*} } } | ||||
| 
 | ||||
| 
 | ||||
| \newlength\cellwidth | ||||
| \newlength\cellheight | ||||
| 
 | ||||
| 
 | ||||
| 
 | ||||
| % - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - | ||||
| % Covers, Jackets and endpapers... | ||||
| 
 | ||||
| % endpaper... | ||||
| % | ||||
| % XXX for some reason naming this anything starting with endpaper will | ||||
| %		make LaTeX complain that that is already defined... | ||||
| 
 | ||||
| \newenvironment{leftside}{% | ||||
| \NewEnviron{leftside}{% | ||||
| 	\ifendpaperlayout | ||||
| 		\setlength\cellwidth{\pageblockwidth} | ||||
| 		\setlength\cellheight{\pageblockheight} | ||||
| 		% | ||||
| 		\begin{textblock*}{\pageblockwidth}(\bleed, \bleed)% | ||||
| 		\begin{minipage}[t][\cellheight][t]{\cellwidth}%  | ||||
| }{%  | ||||
| 			\BODY% | ||||
| 		\end{minipage}% | ||||
| 	\end{textblock*} } | ||||
| 		\end{textblock*} \fi } | ||||
| 
 | ||||
| 
 | ||||
| \newenvironment{rightside}{% | ||||
| \NewEnviron{rightside}{% | ||||
| 	\ifendpaperlayout | ||||
| 		\setlength\cellwidth{\pageblockwidth} | ||||
| 		\setlength\cellheight{\pageblockheight} | ||||
| 		% | ||||
| @ -834,17 +847,15 @@ | ||||
| 				+ \pageblockwidth,  | ||||
| 			\bleed )% | ||||
| 		\begin{minipage}[t][\cellheight][t]{\cellwidth}%  | ||||
| }{%  | ||||
| 			\BODY% | ||||
| 		\end{minipage}% | ||||
| 	\end{textblock*} } | ||||
| 		\end{textblock*} \fi } | ||||
| 
 | ||||
| 
 | ||||
| % - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - | ||||
| % cover-like layout components... | ||||
| 
 | ||||
| % front cover... | ||||
| % front/back covers... | ||||
| % | ||||
| \newenvironment{frontcover}{% | ||||
| \NewEnviron{frontcover}{% | ||||
| 	\ifcoverlikelayout | ||||
| 		\setlength\cellwidth{\dimexpr | ||||
| 			\pageblockwidth  | ||||
| 			+ \coverboardgrow \relax } | ||||
| @ -864,14 +875,12 @@ | ||||
| 				\bleed  | ||||
| 					+ \coverflap )% | ||||
| 		\begin{minipage}[t][\cellheight][t]{\cellwidth}%  | ||||
| }{%  | ||||
| 			\BODY% | ||||
| 		\end{minipage}% | ||||
| 	\end{textblock*} } | ||||
| 		\end{textblock*} \fi } | ||||
| 
 | ||||
| 
 | ||||
| % back cover... | ||||
| % | ||||
| \newenvironment{backcover}{% | ||||
| \NewEnviron{backcover}{% | ||||
| 	\ifcoverlikelayout | ||||
| 		\setlength\cellwidth{\dimexpr | ||||
| 			\pageblockwidth  | ||||
| 			+ \coverboardgrow \relax } | ||||
| @ -887,14 +896,15 @@ | ||||
| 			\bleed  | ||||
| 				+ \coverflap )% | ||||
| 		\begin{minipage}[t][\cellheight][t]{\cellwidth}%  | ||||
| }{%  | ||||
| 			\BODY% | ||||
| 		\end{minipage}% | ||||
| 	\end{textblock*} } | ||||
| 		\end{textblock*} \fi } | ||||
| 
 | ||||
| 
 | ||||
| % spine... | ||||
| % spines... | ||||
| % | ||||
| \newenvironment{spine}{% | ||||
| \NewEnviron{spine}{% | ||||
| 	\ifcoverlikelayout | ||||
| 		\setlength\cellwidth{\dimexpr | ||||
| 			\spinewidth \relax } | ||||
| 		\setlength\cellheight{\dimexpr | ||||
| @ -912,15 +922,13 @@ | ||||
| 			\bleed  | ||||
| 				+ \coverflap )% | ||||
| 		\begin{minipage}[t][\cellheight][t]{\cellwidth}%  | ||||
| }{%  | ||||
| 			\BODY% | ||||
| 		\end{minipage}% | ||||
| 	\end{textblock*} } | ||||
| 		\end{textblock*} \fi } | ||||
| 
 | ||||
| 
 | ||||
| % vertical spine... | ||||
| % | ||||
| % XXX make args be up or down... | ||||
| \newenvironment{vspine}[1][270]{% | ||||
| \NewEnviron{vspine}[1][270]{% | ||||
| 	\ifcoverlikelayout | ||||
| 		\setlength\cellwidth{\dimexpr | ||||
| 			\spinewidth \relax } | ||||
| 		\setlength\cellheight{\dimexpr | ||||
| @ -941,19 +949,16 @@ | ||||
| 		%\begin{turn}{\ifdefstring{#1}{up}{270}{90}} | ||||
| 		\begin{turn}{#1} | ||||
| 		\begin{minipage}[t][\cellwidth][t]{\cellheight}%  | ||||
| }{%  | ||||
| 			\BODY% | ||||
| 		\end{minipage}% | ||||
| 		\end{turn} | ||||
| 	\end{textblock*} } | ||||
| 		\end{textblock*} \fi } | ||||
| 
 | ||||
| 
 | ||||
| % - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - | ||||
| % jacket components... | ||||
| 
 | ||||
| 
 | ||||
| % front flap... | ||||
| % jackets flaps... | ||||
| % | ||||
| \newenvironment{frontflap}{% | ||||
| \NewEnviron{frontflap}{% | ||||
| 	\ifjacketlayout | ||||
| 		\setlength\cellwidth{\jacketflapfront } | ||||
| 		\setlength\cellheight{\dimexpr  | ||||
| 			\pageblockheight  | ||||
| @ -970,14 +975,12 @@ | ||||
| 			\bleed  | ||||
| 				+ \coverflap )%  | ||||
| 		\begin{minipage}[t][\cellheight][t]{\cellwidth}%  | ||||
| }{% | ||||
| 			\BODY% | ||||
| 		\end{minipage}% | ||||
| 	\end{textblock*} } | ||||
| 		\end{textblock*} \fi } | ||||
| 
 | ||||
| 
 | ||||
| % back flap... | ||||
| % | ||||
| \newenvironment{backflap}{% | ||||
| \NewEnviron{backflap}{% | ||||
| 	\ifjacketlayout | ||||
| 		\setlength\cellwidth{\jacketflapback} | ||||
| 		\setlength\cellheight{\dimexpr  | ||||
| 			\pageblockheight  | ||||
| @ -988,11 +991,13 @@ | ||||
| 			\bleed  | ||||
| 				+ \coverflap )% | ||||
| 		\begin{minipage}[t][\cellheight][t]{\cellwidth}%  | ||||
| }{% | ||||
| 			\BODY% | ||||
| 		\end{minipage}% | ||||
| 	\end{textblock*} }  | ||||
| 		\end{textblock*} \fi }  | ||||
| 
 | ||||
| 
 | ||||
| % - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - | ||||
| 
 | ||||
| \newcommand\photobook@TemplateCell[1]{ | ||||
| 	% XXX this seems to be bigger than the size given... | ||||
| 	%\fbox{\parbox[t][\cellheight][t]{\cellwidth}{% | ||||
| @ -1010,37 +1015,44 @@ | ||||
| 	\TPoptions{showboxes=true} | ||||
| 	\begin{page} | ||||
| 		\setlength{\parindent}{0em} | ||||
| 		\ifendpaperlayout | ||||
| 		% NOTE: only the relevant blocks will be visible... | ||||
| 		\begin{leftside} | ||||
| 			\photobook@TemplateCell{ENDPAPER LEFT} | ||||
| 		\end{leftside} | ||||
| 		\begin{rightside} | ||||
| 			\photobook@TemplateCell{ENDPAPER RIGHT} | ||||
| 		\end{rightside} | ||||
| 		\fi | ||||
| 		\ifcoverlikelayout | ||||
| 		\begin{frontcover} | ||||
| 			\photobook@TemplateCell{FRONT COVER} | ||||
| 		\end{frontcover} | ||||
| 		%\begin{vspine}[90] | ||||
| 			\begin{vspine}%[down] | ||||
| 		%\begin{vspine}[down] | ||||
| 		\begin{vspine} | ||||
| 			\photobook@TemplateCell{SPINE} | ||||
| 		\end{vspine} | ||||
| 		\begin{backcover} | ||||
| 			\photobook@TemplateCell{BACK COVER} | ||||
| 		\end{backcover} | ||||
| 		\fi | ||||
| 		\ifjacketlayout | ||||
| 		\begin{frontflap} | ||||
| 			\photobook@TemplateCell{FRONT FLAP} | ||||
| 		\end{frontflap} | ||||
| 		\begin{backflap} | ||||
| 			\photobook@TemplateCell{BACK FLAP} | ||||
| 		\end{backflap} | ||||
| 		\fi | ||||
| 	\end{page} } | ||||
| 
 | ||||
| 
 | ||||
| % - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - | ||||
| % pages... | ||||
| 
 | ||||
| % XXX | ||||
| 
 | ||||
| 
 | ||||
| 
 | ||||
| 
 | ||||
| 
 | ||||
| 
 | ||||
| 
 | ||||
| 
 | ||||
| 
 | ||||
| %---------------------------------------------------------------------- | ||||
| @ -1668,13 +1680,12 @@ | ||||
| 
 | ||||
| 
 | ||||
| 
 | ||||
| 
 | ||||
| 
 | ||||
| %---------------------------------------------------------------------- | ||||
| %%% XXX DEBUG... | ||||
| %%\AtBeginDocument{ | ||||
| %%} | ||||
| 
 | ||||
| 
 | ||||
| 
 | ||||
| %---------------------------------------------------------------------- | ||||
| %                                                  vim:set ts=4 sw=4 : | ||||
|  | ||||
		Loading…
	
	
			
			x
			
			
		
	
		Reference in New Issue
	
	Block a user