mirror of
				https://github.com/alexandrebobkov/CanadianPayroll.git
				synced 2025-10-31 04:49:49 +00:00 
			
		
		
		
	
		
			
				
	
	
		
			124 lines
		
	
	
		
			4.8 KiB
		
	
	
	
		
			TeX
		
	
	
	
	
	
			
		
		
	
	
			124 lines
		
	
	
		
			4.8 KiB
		
	
	
	
		
			TeX
		
	
	
	
	
	
| %% GRAPHICS
 | |
| %
 | |
| % change this info string if making any custom modification
 | |
| \ProvidesPackage{sphinxlatexgraphics}[2024/08/13 v8.1.0 graphics]
 | |
| 
 | |
| % Provides support for this output mark-up from Sphinx latex writer:
 | |
| %
 | |
| % - macros:
 | |
| %
 | |
| %   - \sphinxfigcaption
 | |
| %   - \sphinxincludegraphics
 | |
| %
 | |
| % - environments:
 | |
| %
 | |
| %   - sphinxfigure-in-table
 | |
| %
 | |
| % May change:
 | |
| %
 | |
| % - \sphinxcaption (at begin document)
 | |
| %
 | |
| % Also provides:
 | |
| %
 | |
| % - \sphinxsafeincludegraphics (default of \sphinxincludegraphics since 2.0)
 | |
| % - \spx@image@maxheight dimension (used by sphinxlatexadmonitions.sty)
 | |
| % - \spx@image@box scratch box register (also used by sphinxlatexliterals.sty)
 | |
| %
 | |
| % Requires:
 | |
| % \RequirePackage{graphicx}% done in sphinx.sty
 | |
| \RequirePackage{amstext}% needed for \firstchoice@true(false)
 | |
| 
 | |
| % \sphinxincludegraphics resizes images larger than the TeX \linewidth (which
 | |
| % is adjusted in indented environments), or taller than a certain maximal
 | |
| % height (usually \textheight and this is reduced in the environments which use
 | |
| % framed.sty to avoid infinite loop if image too tall).
 | |
| %
 | |
| % In case height or width options are present the rescaling is done
 | |
| % (since 2.0), in a way keeping the width:height ratio either native from
 | |
| % image or from the width and height options if both were present.
 | |
| %
 | |
| \newdimen\spx@image@maxheight
 | |
| \AtBeginDocument{\spx@image@maxheight\textheight}
 | |
| 
 | |
| % box scratch register
 | |
| \newbox\spx@image@box
 | |
| \newcommand*{\sphinxsafeincludegraphics}[2][]{%
 | |
|     % #1 contains possibly width=, height=, but no scale= since 1.8.4
 | |
|     \setbox\spx@image@box\hbox{\includegraphics[#1,draft]{#2}}%
 | |
|     \in@false % use some handy boolean flag
 | |
|     \ifdim \wd\spx@image@box>\linewidth
 | |
|       \in@true % flag to remember to adjust options and set box dimensions
 | |
|       % compute height which results from rescaling width to \linewidth
 | |
|       % and keep current aspect ratio. multiply-divide in \numexpr uses
 | |
|       % temporarily doubled precision, hence no overflow. (of course we
 | |
|       % assume \ht is not a few sp's below \maxdimen...(about 16384pt).
 | |
|       \edef\spx@image@rescaledheight % with sp units
 | |
|            {\the\numexpr\ht\spx@image@box
 | |
|                         *\linewidth/\wd\spx@image@box sp}%
 | |
|       \ifdim\spx@image@rescaledheight>\spx@image@maxheight
 | |
|         % the rescaled height will be too big, so it is height which decides
 | |
|         % the rescaling factor
 | |
|         \def\spx@image@requiredheight{\spx@image@maxheight}% dimen register
 | |
|         \edef\spx@image@requiredwidth % with sp units
 | |
|          {\the\numexpr\wd\spx@image@box
 | |
|                       *\spx@image@maxheight/\ht\spx@image@box sp}%
 | |
|         % TODO: decide if this commented-out block could be needed due to
 | |
|         % rounding in numexpr operations going up
 | |
|         % \ifdim\spx@image@requiredwidth>\linewidth
 | |
|         %     \def\spx@image@requiredwidth{\linewidth}% dimen register
 | |
|         % \fi
 | |
|       \else
 | |
|         \def\spx@image@requiredwidth{\linewidth}% dimen register
 | |
|         \let\spx@image@requiredheight\spx@image@rescaledheight% sp units
 | |
|       \fi
 | |
|     \else
 | |
|       % width is ok, let's check height
 | |
|       \ifdim\ht\spx@image@box>\spx@image@maxheight
 | |
|         \in@true
 | |
|         \edef\spx@image@requiredwidth % with sp units
 | |
|             {\the\numexpr\wd\spx@image@box
 | |
|                          *\spx@image@maxheight/\ht\spx@image@box sp}%
 | |
|         \def\spx@image@requiredheight{\spx@image@maxheight}% dimen register
 | |
|       \fi
 | |
|     \fi % end of check of width and height
 | |
|     \ifin@
 | |
|       \setbox\spx@image@box
 | |
|       \hbox{\includegraphics
 | |
|             [#1,% contains only width and/or height which are overruled next
 | |
|                 % but in future may contain page=N hence must be kept
 | |
|             width=\spx@image@requiredwidth,height=\spx@image@requiredheight]%
 | |
|             {#2}}%
 | |
|       % \includegraphics does not set box dimensions to the exactly
 | |
|       % requested ones, see https://github.com/latex3/latex2e/issues/112
 | |
|       \wd\spx@image@box\spx@image@requiredwidth
 | |
|       \ht\spx@image@box\spx@image@requiredheight
 | |
|       \leavevmode\box\spx@image@box
 | |
|     \else
 | |
|       % here we do not modify the options, no need to adjust width and height
 | |
|       % on output, they will be computed exactly as with "draft" option
 | |
|       \setbox\spx@image@box\box\voidb@x % clear memory
 | |
|       \includegraphics[#1]{#2}%
 | |
|     \fi
 | |
| }%
 | |
| % Use the "safe" one by default (2.0)
 | |
| \def\sphinxincludegraphics{\sphinxsafeincludegraphics}
 | |
| 
 | |
| 
 | |
| %% FIGURE IN TABLE
 | |
| %
 | |
| \newenvironment{sphinxfigure-in-table}[1][\linewidth]{%
 | |
|   \def\@captype{figure}%
 | |
|   \sphinxsetvskipsforfigintablecaption
 | |
|   \begin{minipage}{#1}%
 | |
| }{\end{minipage}}
 | |
| % tabulary expands twice contents, we need to prevent double counter stepping
 | |
| \newcommand*\sphinxfigcaption
 | |
|   {\ifx\equation$%$% this is trick to identify tabulary first pass
 | |
|        \firstchoice@false\else\firstchoice@true\fi
 | |
|    \spx@originalcaption }
 | |
| \newcommand*\sphinxsetvskipsforfigintablecaption
 | |
|   {\abovecaptionskip\smallskipamount
 | |
|    \belowcaptionskip\smallskipamount}
 | |
| 
 | |
| \endinput
 |