mirror of
https://github.com/flynx/photobook.git
synced 2025-10-29 10:20:08 +00:00
Woraround an Arythmetic overflow in calc's \ratio{..}{..}, see Issues section in docs.
Signed-off-by: Alex A. Naanou <alex.nanou@gmail.com>
This commit is contained in:
parent
9ad5a81054
commit
1508055cf3
@ -38,6 +38,7 @@
|
|||||||
%
|
%
|
||||||
% - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
|
% - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
|
||||||
%
|
%
|
||||||
|
%
|
||||||
% XXX ASAP: imagecell: photobook@imagecell@left and photobook@imagecell@top
|
% XXX ASAP: imagecell: photobook@imagecell@left and photobook@imagecell@top
|
||||||
% should explicitly account for clearence@left and clearence@top resp.
|
% should explicitly account for clearence@left and clearence@top resp.
|
||||||
% XXX ASAP: imagecell: clearance should have the same semantics as cliptocell
|
% XXX ASAP: imagecell: clearance should have the same semantics as cliptocell
|
||||||
@ -88,12 +89,25 @@
|
|||||||
% cell/cell* depend on absolute mode being set globally
|
% cell/cell* depend on absolute mode being set globally
|
||||||
%
|
%
|
||||||
%
|
%
|
||||||
|
% - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
|
||||||
|
%
|
||||||
|
% Work around an issue with calc's \ratio{..}{..} breaking into an
|
||||||
|
% "Arythmetic overflow" when working with large images.
|
||||||
|
% (see Issues section for more info)
|
||||||
|
%
|
||||||
|
% NOTE: if the error persists just make this smaller but note that the
|
||||||
|
% smaller this gets the greater the error can be for very small
|
||||||
|
% images
|
||||||
|
%
|
||||||
|
\def\CalcOverflowFactor{0.1}%
|
||||||
|
|
||||||
|
|
||||||
%----------------------------------------------------------------------
|
%----------------------------------------------------------------------
|
||||||
|
|
||||||
%%% NOTE: \def\<module-name>@[A-Z]+ macros will be visible to both the
|
%%% NOTE: \def\<module-name>@[A-Z]+ macros will be visible to both the
|
||||||
%%% code and the generated docs...
|
%%% code and the generated docs...
|
||||||
\edef\photobook@FILEVERSION{v0.1.30}
|
\edef\photobook@FILEVERSION{v0.1.31}
|
||||||
\edef\photobook@FILEDATE{2024-07-18}
|
\edef\photobook@FILEDATE{2024-07-19}
|
||||||
|
|
||||||
|
|
||||||
%% \documentclass{ltxdoc}
|
%% \documentclass{ltxdoc}
|
||||||
@ -921,7 +935,7 @@
|
|||||||
|
|
||||||
%% \DescribeMacro{\imageblockoffsettop=<ratio>}
|
%% \DescribeMacro{\imageblockoffsettop=<ratio>}
|
||||||
%
|
%
|
||||||
%% The ration by which the image is raised in |\ImagePage{..}| and
|
%% The ratio by which the image is raised in |\ImagePage{..}| and
|
||||||
%% derived templates.
|
%% derived templates.
|
||||||
%%
|
%%
|
||||||
\edef\imageblockoffsettop{\photobook@imageblockoffsettop}
|
\edef\imageblockoffsettop{\photobook@imageblockoffsettop}
|
||||||
@ -2519,8 +2533,9 @@
|
|||||||
% NOTE: here we calculate image/cell eccentricity to decide
|
% NOTE: here we calculate image/cell eccentricity to decide
|
||||||
% to fit to width or heigh of cell...
|
% to fit to width or heigh of cell...
|
||||||
% NOTE: did I say that I "love" how LaTeX does basic math??
|
% NOTE: did I say that I "love" how LaTeX does basic math??
|
||||||
|
% NOTE: \ratio{..}{..} here can break, see Issues for more info...
|
||||||
\setlength\photobook@imagecell@imgratio{%
|
\setlength\photobook@imagecell@imgratio{%
|
||||||
1pt * \ratio{\wd\photobook@imagebox}{\ht\photobook@imagebox}}%
|
1pt * \ratio{\CalcOverflowFactor\wd\photobook@imagebox}{\CalcOverflowFactor\ht\photobook@imagebox}}%
|
||||||
\setlength\photobook@imagecell@cellratio{%
|
\setlength\photobook@imagecell@cellratio{%
|
||||||
1pt * \ratio{\cellwidth}{\cellheight}}%
|
1pt * \ratio{\cellwidth}{\cellheight}}%
|
||||||
\ifdim \photobook@imagecell@imgratio < \photobook@imagecell@cellratio%
|
\ifdim \photobook@imagecell@imgratio < \photobook@imagecell@cellratio%
|
||||||
@ -2528,7 +2543,7 @@
|
|||||||
\includegraphics[%
|
\includegraphics[%
|
||||||
keepaspectratio,
|
keepaspectratio,
|
||||||
width=\photobook@imagecell@scale\dimexpr
|
width=\photobook@imagecell@scale\dimexpr
|
||||||
+ \cellwidth
|
\cellwidth
|
||||||
- \photobook@imagecell@clearance@left
|
- \photobook@imagecell@clearance@left
|
||||||
- \photobook@imagecell@clearance@right \relax]{#3}}%
|
- \photobook@imagecell@clearance@right \relax]{#3}}%
|
||||||
\else%
|
\else%
|
||||||
@ -2536,7 +2551,7 @@
|
|||||||
\includegraphics[%
|
\includegraphics[%
|
||||||
keepaspectratio,
|
keepaspectratio,
|
||||||
height=\photobook@imagecell@scale\dimexpr
|
height=\photobook@imagecell@scale\dimexpr
|
||||||
+ \cellheight
|
\cellheight
|
||||||
- \photobook@imagecell@clearance@top
|
- \photobook@imagecell@clearance@top
|
||||||
- \photobook@imagecell@clearance@bottom \relax]{#3}}%
|
- \photobook@imagecell@clearance@bottom \relax]{#3}}%
|
||||||
\fi\fi\fi%
|
\fi\fi\fi%
|
||||||
@ -4852,8 +4867,9 @@
|
|||||||
% align center -> check if image fits vertically...
|
% align center -> check if image fits vertically...
|
||||||
\ifphotobook@ImagePageFit@centered\else%
|
\ifphotobook@ImagePageFit@centered\else%
|
||||||
\sbox{\photobook@imagebox}{\includegraphics{#3}}%
|
\sbox{\photobook@imagebox}{\includegraphics{#3}}%
|
||||||
|
% NOTE: \ratio{..}{..} here can break, see Issues for more info...
|
||||||
\setlength\photobook@ImagePageFit@imgratio{%
|
\setlength\photobook@ImagePageFit@imgratio{%
|
||||||
1pt * \ratio{\wd\photobook@imagebox}{\ht\photobook@imagebox}}%
|
1pt * \ratio{\CalcOverflowFactor\wd\photobook@imagebox}{\CalcOverflowFactor\ht\photobook@imagebox}}%
|
||||||
% NOTE: subtracting \bindingoffset from \cellwidth here makes sure that
|
% NOTE: subtracting \bindingoffset from \cellwidth here makes sure that
|
||||||
% we avoid offsetting images close enough in ratio to the page and
|
% we avoid offsetting images close enough in ratio to the page and
|
||||||
% messing up bleeds...
|
% messing up bleeds...
|
||||||
@ -5695,6 +5711,26 @@
|
|||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
%----------------------------------------------------------------------
|
||||||
|
%%%% Issues
|
||||||
|
%
|
||||||
|
%% \subsection*{Large images can cause "Arythmetic overflow"}
|
||||||
|
%
|
||||||
|
%% \DescribeMacro{\CalcOverflowFactor=0.1}
|
||||||
|
%
|
||||||
|
%% If the issue occurs set |\CalcOverflowFactor| to a smaller value.
|
||||||
|
%% But note, a value too small can lead to errors in the affected macros,
|
||||||
|
%% a good value is between 0.1 and 0.01.
|
||||||
|
%%
|
||||||
|
%% Also note that it is recommended to pre-size images the print outside
|
||||||
|
%% of \LaTeX.
|
||||||
|
%%
|
||||||
|
%% Affected macros: |\imagecell[fill]{..}{..}|, |\ImagePageFit|.
|
||||||
|
%%
|
||||||
|
% The issue occurs in the calc's |\ratio{..}{..}| macro when calculating
|
||||||
|
% image proportions.
|
||||||
|
%
|
||||||
|
%
|
||||||
%----------------------------------------------------------------------
|
%----------------------------------------------------------------------
|
||||||
% Index...
|
% Index...
|
||||||
%
|
%
|
||||||
|
|||||||
Loading…
x
Reference in New Issue
Block a user