mirror of
				https://github.com/flynx/photobook.git
				synced 2025-10-31 19:30:08 +00:00 
			
		
		
		
	moving in templates + refactoring...
Signed-off-by: Alex A. Naanou <alex.nanou@gmail.com>
This commit is contained in:
		
							parent
							
								
									5c493fa092
								
							
						
					
					
						commit
						dbf667836b
					
				
							
								
								
									
										420
									
								
								photobook.cls
									
									
									
									
									
								
							
							
						
						
									
										420
									
								
								photobook.cls
									
									
									
									
									
								
							| @ -117,7 +117,6 @@ | ||||
| \newlength\bleedblockwidth | ||||
| \newlength\bleedblockheight | ||||
| 
 | ||||
| 
 | ||||
| \newlength\bleed | ||||
| \setlength\bleed{\photobook@bleed} | ||||
| 
 | ||||
| @ -129,23 +128,32 @@ | ||||
| 		\photobook@innerbleed | ||||
| 	\fi } | ||||
| 
 | ||||
| 
 | ||||
| \newlength\bindingoffset | ||||
| \setlength\bindingoffset{\photobook@bindingoffset} | ||||
| 
 | ||||
| \edef\imageblockwidth{\photobook@imageblockwidth} | ||||
| 
 | ||||
| \edef\imageblockheight{\photobook@imageblockheight} | ||||
| 
 | ||||
| \edef\imageblockoffsettop{\photobook@imageblockoffsettop} | ||||
| 
 | ||||
| % distance from image to paper border (clearence) for full-page images. | ||||
| % | ||||
| % - negative value set bleed siae,  | ||||
| % - positive value set distance frome paper edge to image. | ||||
| % | ||||
| % XXX for some reason this is not even around the page and is less on  | ||||
| %	the left -- \OFFSETFIX is used to compensate for this effect... | ||||
| %	...need to find a real fix... | ||||
| % XXX make configurable... | ||||
| \newlength{\clearimage} | ||||
| \setlength{\clearimage}{-4mm} | ||||
| 
 | ||||
| 
 | ||||
| 
 | ||||
| %---------------------------------------------------------------------- | ||||
| % Commands... | ||||
| 
 | ||||
| \newcommand\keywords[1]{% | ||||
| 	\def\@keywords{#1}} | ||||
| 
 | ||||
| 
 | ||||
| \newcommand\subject[1]{% | ||||
| 	\def\@subject{#1}} | ||||
| 
 | ||||
| 
 | ||||
| \newcommand\RecalculatePageLengths{ | ||||
| 	% final page size... | ||||
| 	\setlength\pagewidth{ | ||||
| @ -259,14 +267,404 @@ | ||||
| 
 | ||||
| 
 | ||||
| 
 | ||||
| %---------------------------------------------------------------------- | ||||
| % Generic Commands.... | ||||
| 
 | ||||
| \newcommand\keywords[1]{% | ||||
| 	\def\@keywords{#1}} | ||||
| 
 | ||||
| 
 | ||||
| \newcommand\subject[1]{% | ||||
| 	\def\@subject{#1}} | ||||
| 
 | ||||
| 
 | ||||
| \newcommand*{\cleartoleftpage}{% | ||||
| 	\clearpage | ||||
| 	\if@twoside | ||||
| 		\ifodd\c@page | ||||
| 			\hbox{}\newpage | ||||
| 			\if@twocolumn | ||||
| 				\hbox{}\newpage | ||||
| 			\fi | ||||
| 		\fi | ||||
| 	\fi } | ||||
| 
 | ||||
| 
 | ||||
| 
 | ||||
| %---------------------------------------------------------------------- | ||||
| % Templates... | ||||
| % Captions... | ||||
| % XXX need to be able to configure/pass/override: | ||||
| %		- size / \captionsize... | ||||
| %		- color... | ||||
| % XXX captions seem not to account for \imageblockoffsettop... | ||||
| 
 | ||||
| %\newcommand\captionsize{\scriptsize} | ||||
| \newcommand\captionsize{\fontsize{6.5pt}{8pt}\selectfont} | ||||
| 
 | ||||
| 
 | ||||
| % \imagecaption{caption}{location-date} | ||||
| % | ||||
| \newcommand\imagecaption[2]{ | ||||
| 	{\captionsize% | ||||
| 		#1 % | ||||
| 		\par\vspace{-\parskip}% | ||||
| 		#2}} | ||||
| 
 | ||||
| 
 | ||||
| % \overlaycaption{caption}{location-date} | ||||
| % | ||||
| \newcommand\overlaycaption[2]{ | ||||
| 	\begin{flushright} | ||||
| 		\captionsize% | ||||
| 		\color{black}{% | ||||
| 			\colorbox{white}{ #1 }% | ||||
| 			\par\vspace{-\parskip}% | ||||
| 			\colorbox{white}{ #2 }} | ||||
| 	\end{flushright}} | ||||
| 
 | ||||
| 
 | ||||
| % XXX \pagewidth | ||||
| % XXX \nudgeimageby | ||||
| % \captionsidebox[offset]{imagebox}{text} | ||||
| % | ||||
| \newcommand\captionsidebox[3][0mm]{ | ||||
| 	\begin{minipage}{\dimexpr  | ||||
| 			% caption-image distance... | ||||
| 			-1em | ||||
| 			-\clearimage  | ||||
| 			+\pagewidth | ||||
| 			-(\wd#2 - #1) | ||||
| 			+(\nudgeimageby) | ||||
| 			-(0.5\pagewidth - 0.5\textwidth) \relax} | ||||
| 		{ \captionsize #3 } | ||||
| 	\end{minipage}} | ||||
| 
 | ||||
| 
 | ||||
| % \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}} | ||||
| 
 | ||||
| 
 | ||||
| % XXX \CAPTIONWIDTHFIX | ||||
| % \captionbottombox[offset]{imagebox}{text} | ||||
| % | ||||
| % XXX for some reason the width is wrong here... | ||||
| \newcommand\captionbottombox[3][0mm]{ | ||||
| 	\hspace{ #1 }{ | ||||
| 		% XXX the \CAPTIONWIDTHFIX factor is compensating for an odd alignment error... | ||||
| 		\begin{minipage}{\dimexpr \CAPTIONWIDTHFIX + \wd#2 \relax} | ||||
| 			{ \captionsize #3 } | ||||
| 		\end{minipage}}} | ||||
| 
 | ||||
| 
 | ||||
| % \graycaptionpage{text} | ||||
| % | ||||
| % XXX should this be \captionsize or \scriptsize | ||||
| \newcommand\graycaptionpage[1]{ | ||||
| 	\pagestyle{empty} | ||||
| 	\pagecolor{normgray} | ||||
| 	\color{white} | ||||
| 	\null | ||||
| 	\vfill | ||||
| 	\hspace{0.66\textwidth}{% | ||||
| 		\begin{minipage}{0.33\textwidth} | ||||
| 			\setlength{\parskip}{0.5em}% | ||||
| 			\captionsize\it% | ||||
| 			#1 | ||||
| 		\end{minipage} } | ||||
| 	\newpage | ||||
| 	\nopagecolor | ||||
| 	\color{black} } | ||||
| 
 | ||||
| 
 | ||||
| 
 | ||||
| %---------------------------------------------------------------------- | ||||
| % Page Templates... | ||||
| 
 | ||||
| \newsavebox\photobook@imagebox | ||||
| 
 | ||||
| 
 | ||||
| % - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - | ||||
| 
 | ||||
| % \imagepagefitWH{width}{height}{caption}{image} | ||||
| % | ||||
| % NOTE: width and hight are ratios of \textwidth and \textheight  | ||||
| %		respectively.  | ||||
| %		i.e. \imagepagefitWH{0.5}{0.5}{...} will set image size to half  | ||||
| %		the size of the text block.... | ||||
| % | ||||
| % XXX this generates lots of warnings... | ||||
| % XXX broblems with captions: | ||||
| %		- vertical offset is floating depending on image proportions... | ||||
| %		- width is a bit off... | ||||
| % XXX this does not account for \innerbleed... | ||||
| %		- image:  | ||||
| %			% odd/left  | ||||
| %			\hspace{\dimexpr \bleed - \innerbleed \relax}{\usebox\photobook@imagebox} | ||||
| %			% even/right | ||||
| %			\hspace{\dimexpr -(\bleed - \innerbleed) \relax}{\usebox\photobook@imagebox} | ||||
| %		- do the same for caption... | ||||
| % XXX BUG: vertical alignment falls apart if page head is changed... | ||||
| \newcommand\imagepagefitWH[4]{ | ||||
| 	\sbox{\photobook@imagebox}{ | ||||
| 		\includegraphics[ | ||||
| 			keepaspectratio=true,  | ||||
| 			width=#1\textwidth,  | ||||
| 			height=#2\textheight]{#4} } | ||||
| 	\null | ||||
| 	\vfill | ||||
| 	% image... | ||||
| 	\vspace{ \imageblockoffsettop\textheight } | ||||
| 	\begin{center} | ||||
| 		\usebox\photobook@imagebox | ||||
| 	\end{center} | ||||
| 	\vfill | ||||
| 	% caption... | ||||
| 	\ShipoutPicture{ | ||||
| 		\vfill | ||||
| 		\vspace{ \dimexpr  | ||||
| 				% XXX this is not accurate for some reason... | ||||
| 				( 1em | ||||
| 					+ (\dimexpr \imageblockoffsettop\textheight / 2 \relax) | ||||
| 					+ \paperheight  | ||||
| 					+ \ht\photobook@imagebox )  | ||||
| 				/ 2 \relax } | ||||
| 			\begin{minipage}{\paperwidth} | ||||
| 				\begin{center} | ||||
| 					\ifthenelse{\isodd{\thepage}}% | ||||
| 						% odd pages... | ||||
| 						{ \captionbottombox[ \bindingoffset ]{\photobook@imagebox}{% | ||||
| 							\begin{flushright} | ||||
| 								#3 | ||||
| 							\end{flushright} } }% | ||||
| 						% even pages... | ||||
| 						{ \captionbottombox[ -\bindingoffset ]{\photobook@imagebox}{% | ||||
| 							\begin{flushright} | ||||
| 								#3 | ||||
| 							\end{flushright} } }% | ||||
| 				\end{center} | ||||
| 			\end{minipage} } | ||||
| 	\newpage } | ||||
| 
 | ||||
| 
 | ||||
| % \imagepagefitH[height]{caption}{image} | ||||
| % \imagepagefitW[width]{caption}{image} | ||||
| % | ||||
| \newcommand\imagepagefitH[3][\imageblockheight]{ | ||||
| 	\imagepagefitWH{\imageblockwidth}{#1}{#2}{#3} } | ||||
| \newcommand\imagepagefitW[3][\imageblockwidth]{ | ||||
| 	\imagepagefitWH{#1}{\imageblockheight}{#2}{#3} } | ||||
| 
 | ||||
| 
 | ||||
| % \imagepage{caption}{path} | ||||
| % | ||||
| %	+---------------+ | ||||
| %	|				| | ||||
| %	| +-----------+	| | ||||
| %	| |.		 .|	| | ||||
| %	| |	 .	   .  |	| | ||||
| %	| |	  image	  |	| | ||||
| %	| |	 .	   .  |	| | ||||
| %	| |.		 .|	| | ||||
| %	| +-----------+	| | ||||
| %	|			  c	| | ||||
| %	|				| | ||||
| %	+---------------+ | ||||
| % | ||||
| \newcommand\imagepage[2]{ | ||||
| 	\imagepagefitWH{\imageblockwidth}{\imageblockheight}{#1}{#2} } | ||||
| 
 | ||||
| 
 | ||||
| % XXX | ||||
| % XXX \OFFSETFIX | ||||
| % \imagepagefit[clearence]{caption}{image} | ||||
| % | ||||
| %	+---------------+ | ||||
| %	| |.		 .| | | ||||
| %	| | .	    . |	| | ||||
| %	| |  .	   .  | | | ||||
| %	| |   .   .	  | | | ||||
| %	| |	  image	  | | | ||||
| %	| |	  .   .	  | | | ||||
| %	| |  .	   .  | | | ||||
| %	| | .		. | | | ||||
| %	| |.		 .| | | ||||
| %	+---------------+ | ||||
| % | ||||
| % NOTE: this is like \imagepage but will fit an image into page... | ||||
| % XXX captions untested...  | ||||
| \newcommand\imagepagefit[3][\clearimage]{ | ||||
| 	\sbox{\photobook@imagebox}{ | ||||
| 		\includegraphics[ | ||||
| 			keepaspectratio,  | ||||
| 			width=\dimexpr \pagewidth - ((#1) * 2) \relax, | ||||
| 			height=\dimexpr \pageheight - ((#1) * 2) \relax]{#3} } | ||||
| 	%\clearpage | ||||
| 	\null | ||||
| 	\captionboxright[-#1]{\photobook@imagebox}{#2} | ||||
| 	\ShipoutPicture{ | ||||
| 		\AtPageLowerLeft{ | ||||
| 			\hspace*{\dimexpr  | ||||
| 					+0.5\pagewidth  | ||||
| 					-0.5\wd\photobook@imagebox  | ||||
| 					-\bleed | ||||
| 					% XXX | ||||
| 					-0.5\OFFSETFIX  | ||||
| 				\relax}{ | ||||
| 			% XXX this is not correct... | ||||
| 			\raisebox{\dimexpr  | ||||
| 					+0.5\pageheight  | ||||
| 					-0.5\ht\photobook@imagebox  | ||||
| 					%+#1  | ||||
| 					%-\bleed  | ||||
| 				\relax}{ | ||||
| 				\usebox\photobook@imagebox } } } } | ||||
| 	\newpage } | ||||
| 
 | ||||
| 
 | ||||
| % XXX | ||||
| % XXX \OFFSETFIX | ||||
| % \imagepagefill[clearence]{caption}{image} | ||||
| % | ||||
| %	+---------------+ | ||||
| %	|---------------| | ||||
| %	|				| | ||||
| %	|.			   .| | ||||
| %	|	.		.	| | ||||
| %	|	  image		| | ||||
| %	|	.		.	| | ||||
| %	|.			   .| | ||||
| %	|				| | ||||
| %	|-------------c-| | ||||
| %	+---------------+ | ||||
| % | ||||
| % NOTE: this is like \imagepage but will fit an image into page... | ||||
| % XXX add option to align to top/bottom...  | ||||
| % XXX captions untested...  | ||||
| \newcommand\imagepagefill[3][\clearimage]{ | ||||
| 	\sbox{\photobook@imagebox}{ | ||||
| 		\includegraphics[ | ||||
| 			keepaspectratio,  | ||||
| 			width=\dimexpr \pagewidth - ((#1) * 2) \relax, | ||||
| 			% XXX make this use the minumum dimention and not width... | ||||
| 			%height=\dimexpr \pageheight - ((#1) * 2) \relax | ||||
| 			]{#3} } | ||||
| 	\clearpage | ||||
| 	\captionboxright[-#1]{\photobook@imagebox}{#2} | ||||
| 	\ShipoutPicture{ | ||||
| 		\AtPageLowerLeft{ | ||||
| 			\hspace*{\dimexpr  | ||||
| 					+0.5\pagewidth  | ||||
| 					-0.5\wd\photobook@imagebox  | ||||
| 					-\bleed | ||||
| 					% XXX | ||||
| 					-0.5\OFFSETFIX  | ||||
| 				\relax}{ | ||||
| 			\raisebox{\dimexpr  | ||||
| 					(#1) | ||||
| 					+\clearimage  | ||||
| 					+\bleed \relax}{ | ||||
| 				\usebox\photobook@imagebox } } } } | ||||
| 	\newpage } | ||||
| 
 | ||||
| 
 | ||||
| % XXX | ||||
| % XXX \OFFSETFIX | ||||
| % portraitimagepageleft[clearence]{caption}{image} | ||||
| % | ||||
| %	+---------------+ | ||||
| %	|.		   .|	| | ||||
| %	| .		  .	|	| | ||||
| %	|  .	 .	|	| | ||||
| %	|	.	.	|	| | ||||
| %	|	image	|	| | ||||
| %	|	.	.	|	| | ||||
| %	|  .	 .	|	| | ||||
| %	| .		  .	|	| | ||||
| %	|.		   .| c | | ||||
| %	+---------------+ | ||||
| % | ||||
| \newcommand\portraitimagepageleft[3][\clearimage]{ | ||||
| 	\sbox{\photobook@imagebox}{ | ||||
| 		\includegraphics[ | ||||
| 			keepaspectratio,  | ||||
| 			height=\dimexpr \pageheight - ((#1) * 2) \relax]{#3} } | ||||
| 	\clearpage | ||||
| 	\captionboxright[-#1]{\photobook@imagebox}{#2} | ||||
| 	\ShipoutPicture{ | ||||
| 		\AtPageLowerLeft{ | ||||
| 			\hspace*{\dimexpr \OFFSETFIX + #1 \relax}{ | ||||
| 			\raisebox{\dimexpr #1 + \bleed \relax}{ | ||||
| 				\usebox\photobook@imagebox } } } } | ||||
| 	\newpage } | ||||
| 
 | ||||
| 
 | ||||
| % XXX | ||||
| % portraitimagepageright{caption}{image} | ||||
| % | ||||
| %	+---------------+ | ||||
| %	|	|.		   .| | ||||
| %	|	| .		  .	| | ||||
| %	|	|  .	 .	| | ||||
| %	|	|	.	.	| | ||||
| %	|	|	image	| | ||||
| %	|	|	.	.	| | ||||
| %	|	|  .	 .	| | ||||
| %	|	| .		  .	| | ||||
| %	| c	|.		   .| | ||||
| %	+---------------+ | ||||
| % | ||||
| % | ||||
| \newcommand\portraitimagepageright[3][\clearimage]{ | ||||
| 	\sbox{\photobook@imagebox}{ | ||||
| 		\includegraphics[ | ||||
| 			keepaspectratio,  | ||||
| 			height=\dimexpr \pageheight - ((#1) * 2) \relax]{#3} } | ||||
| 	\clearpage | ||||
| 	\captionboxleft[-#1]{\photobook@imagebox}{#2} | ||||
| 	\ShipoutPicture{ | ||||
| 		\AtPageLowerLeft{ | ||||
| 			\hspace*{\dimexpr  | ||||
| 				-#1  | ||||
| 				+\pagewidth  | ||||
| 				-\wd\photobook@imagebox \relax}{ | ||||
| 			\raisebox{\dimexpr #1 + \bleed \relax}{ | ||||
| 				\usebox\photobook@imagebox } } } } | ||||
| 	\newpage } | ||||
| 
 | ||||
| 
 | ||||
| 
 | ||||
| %---------------------------------------------------------------------- | ||||
| % Spread Templates... | ||||
| 
 | ||||
| 
 | ||||
| 
 | ||||
| 
 | ||||
| 
 | ||||
| 
 | ||||
| 
 | ||||
| %---------------------------------------------------------------------- | ||||
| %%% XXX DEBUG... | ||||
| %%\AtBeginDocument{ | ||||
| %%} | ||||
| 
 | ||||
| 
 | ||||
| %---------------------------------------------------------------------- | ||||
|  | ||||
		Loading…
	
	
			
			x
			
			
		
	
		Reference in New Issue
	
	Block a user