%---------------------------------------------------------------------- % Stripped code file generated by: % ./scripts/cls2tex.sh --strip photobook.tex ./scripts/cls2tex.sh --prefix M --strip % NOTE: multiple messages indicate multiple runs. %---------------------------------------------------------------------- %---------------------------------------------------------------------- % Documentation file generated by: % ./scripts/cls2tex.sh photobook.cls % NOTE: multiple messages indicate multiple runs. %---------------------------------------------------------------------- % NOTE: \def\@[A-Z]+ macros will be visible to both the % code and the generated docs... \edef\FILEVERSION{v0.1.15} \edef\FILEDATE{2023-03-18} \documentclass{ltxdoc} % \usepackage{iftex} % \ifluatex % \edef\pdfcompresslevel{\pdfvariable compresslevel} % \edef\pdfobjcompresslevel{\pdfvariable objcompresslevel} % \fi % \pdfcompresslevel 0 % \pdfobjcompresslevel 0 \usepackage[a4paper,margin=25mm,left=55mm,nohead]{geometry} % NOTE: this needs to load before hyperref or bookmarks will break... % NOTE: loading hyperref here will break it loading later in one of % the packages... \usepackage{titlesec} \usepackage[numbered]{hypdoc} \usepackage{doctools} \usepackage{needspace} \usepackage[toc]{multitoc} \renewcommand*{\multicolumntoc}{2} \setlength{\columnseprule}{0.5pt} \usepackage{imakeidx} \makeindex[ columns=1, title=Alphabetical Index, intoc, options= -s photobook.ist ] % \newcommand\DescribeGlobal[1]{% % \DescribeMacro{#1}} \newcommand\LEGACY[1][]{\fbox{LEGACY #1}} \newcommand\EXPERIMENTAL[1][]{\fbox{EXPERIMENTAL #1}} % sections to new pages... \newcommand\sectionbreak{\Needspace{5\baselineskip}} % remove section numbering... \setcounter{secnumdepth}{0} % paragraph configuration... \setlength\parindent{0pt} \setlength\parskip{0.5em} \newcommand\blankfootnote[1]{% \begingroup \renewcommand\thefootnote{}% \footnote{#1}% \addtocounter{footnote}{-1}% \endgroup} \begin{document} \title{\textsf{photobook} --- Document class for building photo-books \thanks{This file describes version \FILEVERSION, last revised \FILEDATE.}} \author{Alex A. Naanou\thanks{E-mail: alex.nanou@gmail.com}} \date{Released \FILEDATE} \maketitle \begin{abstract} The |photobook| \LaTeX\space document class extends the |book| class defining a set of parameters, meta-macros, macros and environments with reasonable defaults to help typeset, build and print books mainly based on visual/image content. \end{abstract} \tableofcontents \section{Introduction}\label{sec:Introduction} \LaTeX\ is great with textual and text-primary content with figures peppered in, as long as pictures/figures flow within, with or as part of text, vanilla \LaTeX\ is fantastic. One can relatively easily stretch the flow concept to more complex layouts introducing {\it even} and {\it odd} pages (the |book| class is one example) and flow rules based on them, but the next step, {\it bleeds}, combining page pairs into {\it spreads} as is often needed when designing image-oriented books is lacking. Full-bleed images/pages can be implemented manually, some more effort is needed to split something horizontally into a page spread, but doing so for whole book's worth of content is not practical -- automating and experimenting with this process is how |photobook| began. |photobook| extends the |book| class adding page layout types, bleeds and other global geometry configuration, introduces the {\it page} and {\it spread} as first-class elements into the document flow. These concepts are generalized as |cell|s. A |cell| is similar to a figure, it can be placed within the document flow, but unlike a figure a |cell| can be aligned relative to a page, it can fill a page, a cell can even be horizontally split to fill several pages (how spreads are implemented). On top of the |cell|, {\it page}, and {\it spread} concepts, |photobook| also builds a set of configurable high level macros and templates for common use cases like full bleed image spreads, foldouts, ... etc. \section{Usage}\label{sec:Usage} \begin{verbatim} \documentclass[]{photobook} \end{verbatim} \section{Options}\label{sec:Options} \subsection{Page geometry}\label{subsec:Page geometry} \DescribeMacro{blockwidth=} \DescribeMacro{blockheight=} \DescribeMacro{bindingoffset=} \DescribeMacro{bleed=} This is similar to what |geometry| does, but adds bleed support. \begin{minipage}{\textwidth} \begin{verbatim} <---> bleed <---> bleed + - - - - - - - - - - - - - - - - - - - - - + - + ^ . . . | bleed . +---------------------------------------+----- v . . --- . | ^ . = . . | . . . . . . | . . = . ^ . |<-- blockwidth ----------------------->= . | . | . | . . = . | . | | . = . textheight . | . Page | . . = . | . | blockheight . = . | . | . | . . = . | . | | <---> bindingoffset | . | . . . . . . | . . = . v . | v . = . . +---------------------------------------+----- ^ . . --- . . . . | bleed + - - - - - - - - - - - - - - - - - - - - - + - + v . . | <-- textwidth --------------> . | ^ gutter \end{verbatim} \end{minipage} \DescribeMacro{flatfold=} Sets the clearance set aside for a flat fold, used for foldouts (see: \nameref{subsec:Foldout page cells} section). \DescribeMacro{pagefold=} Sets the default fold type. Can be |in| or |out|. \DescribeMacro{foldout=} Sets the default fold specification (i.e. sets |\defaultfoldout|). For more information see: \nameref{subsec:Foldout page cells} section. \subsection{layout}\label{subsec:layout} \DescribeMacro{layoutmode=} \DescribeMacro{block} \DescribeMacro{endpaper} \DescribeMacro{cover} \DescribeMacro{jacket} Sat page layout mode. \begin{verbatim} layoutmode=