mirror of
https://github.com/sphinx-doc/sphinx.git
synced 2025-02-25 18:55:22 -06:00
LaTeX: refactoring to avoid code duplication
This commit is contained in:
parent
d50ae3c1c9
commit
00640b19ad
@ -97,7 +97,7 @@
|
||||
\spx@boxes@radius@topright \z@
|
||||
\spx@boxes@radius@bottomright \z@
|
||||
\spx@boxes@radius@bottomleft \z@
|
||||
% legacy has no shadow
|
||||
% legacy has no shadow (no need to set \ifspx@boxes@shadowinbbox)
|
||||
\spx@boxes@withshadowfalse
|
||||
\spx@boxes@insetshadowfalse
|
||||
\spx@boxes@withshadowcolorfalse
|
||||
@ -145,22 +145,12 @@
|
||||
\vspace{\FrameHeightAdjust}
|
||||
% copied/adapted from framed.sty's snugshade
|
||||
% but now using in place of \fcolorbox the Sphinx sophisticated own
|
||||
\def\FrameCommand##1{\hskip\@totalleftmargin
|
||||
\ifspx@boxes@withshadow
|
||||
\ifspx@boxes@insetshadow\else
|
||||
\ifdim\spx@boxes@shadow@xoffset<\z@\hskip\spx@boxes@shadow@xoffset\relax
|
||||
\fi
|
||||
\fi
|
||||
\fi
|
||||
% "setup" macro MUST have been called before
|
||||
\spx@boxes@fcolorbox{##1}%
|
||||
\ifspx@boxes@withshadow
|
||||
\ifspx@boxes@insetshadow\else
|
||||
\ifdim\spx@boxes@shadow@xoffset>\z@\hskip-\spx@boxes@shadow@xoffset\relax
|
||||
\fi
|
||||
\fi
|
||||
\fi
|
||||
\hskip-\linewidth \hskip-\@totalleftmargin \hskip\columnwidth}%
|
||||
\def\FrameCommand##1{%
|
||||
\hskip\@totalleftmargin
|
||||
% "setup" macro MUST have been called before
|
||||
\spx@boxes@fcolorbox{##1}%
|
||||
\hskip-\linewidth \hskip-\@totalleftmargin \hskip\columnwidth
|
||||
}%
|
||||
\savenotes
|
||||
% use a minipage if we are already inside a framed environment
|
||||
\ifspx@inframed
|
||||
|
@ -124,20 +124,8 @@
|
||||
% framing "adapt" to an indented context.
|
||||
\hskip\@totalleftmargin
|
||||
\hskip-\spx@boxes@border@left\hskip-\spx@boxes@padding@left
|
||||
\ifspx@boxes@withshadow
|
||||
\ifspx@boxes@insetshadow\else
|
||||
\ifdim\spx@boxes@shadow@xoffset<\z@\hskip\spx@boxes@shadow@xoffset
|
||||
\fi
|
||||
\fi
|
||||
\fi
|
||||
\spx@verb@fcolorbox {#1}{#2}{#3}%
|
||||
\hskip-\spx@boxes@padding@right\hskip-\spx@boxes@border@right
|
||||
\ifspx@boxes@withshadow
|
||||
\ifspx@boxes@insetshadow\else
|
||||
\ifdim\spx@boxes@shadow@xoffset>\z@\hskip-\spx@boxes@shadow@xoffset
|
||||
\fi
|
||||
\fi
|
||||
\fi
|
||||
\hskip-\linewidth \hskip-\@totalleftmargin \hskip\columnwidth
|
||||
}%
|
||||
\long\def\spx@verb@fcolorbox #1#2#3{%
|
||||
|
@ -29,22 +29,8 @@
|
||||
\long\def\spx@ShadowFBox#1{%
|
||||
\leavevmode
|
||||
\setbox\z@\hbox{#1}%
|
||||
\ifspx@topic@withshadow
|
||||
\ifspx@topic@insetshadow\else
|
||||
\ifdim\spx@topic@shadow@xoffset<\z@\hskip\spx@topic@shadow@xoffset\relax
|
||||
\fi
|
||||
\fi
|
||||
\fi
|
||||
% \spx@shadowbox@boxes@fcolorbox@setup MUST have been called before
|
||||
\spx@boxes@fcolorbox{\box\z@}%
|
||||
\ifspx@topic@withshadow
|
||||
\ifspx@topic@insetshadow\else
|
||||
% A strangely unnoticed 5.1.0 breakage of the legacy placement of the
|
||||
% shadow was caused by a lacking minus sign here, fixed at 6.1.2
|
||||
\ifdim\spx@topic@shadow@xoffset>\z@\hskip-\spx@topic@shadow@xoffset\relax
|
||||
\fi
|
||||
\fi
|
||||
\fi
|
||||
% \spx@shadowbox@boxes@fcolorbox@setup MUST have been called before
|
||||
\spx@boxes@fcolorbox{\box\z@}%
|
||||
}
|
||||
|
||||
% Use framed.sty \MakeFramed/\endMakeFramed to allow page breaks for topic
|
||||
|
@ -50,11 +50,12 @@
|
||||
% Internal registers, conditionals, colors to be configured by each caller
|
||||
% via a preliminary "setup" call
|
||||
%
|
||||
\newif\ifspx@boxes@withshadow
|
||||
\newif\ifspx@boxes@insetshadow
|
||||
\newif\ifspx@boxes@withshadow
|
||||
\newif\ifspx@boxes@insetshadow
|
||||
\newif\ifspx@boxes@withbackgroundcolor
|
||||
\newif\ifspx@boxes@withshadowcolor
|
||||
\newif\ifspx@boxes@withbordercolor
|
||||
\newif\ifspx@boxes@withshadowcolor
|
||||
\newif\ifspx@boxes@withbordercolor
|
||||
\newif\ifspx@boxes@shadowinbbox
|
||||
%
|
||||
\newdimen\spx@boxes@border
|
||||
\newdimen\spx@boxes@border@top
|
||||
@ -151,6 +152,13 @@
|
||||
\else
|
||||
\spx@boxes@withshadowcolorfalse
|
||||
\fi
|
||||
% Display elements pre, topic, warning et al. by default do not include
|
||||
% shadow in box (legacy; and only topic actually uses a shadow per default)
|
||||
% This may be refactored still more in future, but this 6.2.0 extra helped
|
||||
% reduce workload from code-blocks (pre), contents (topic) and admonitions.
|
||||
% As this conditional is a priori false and should only be changed locally
|
||||
% (by \sphinxbox), this line is actually superfluous.
|
||||
\spx@boxes@shadowinbboxfalse
|
||||
\spx@boxes@fcolorbox@setup@b
|
||||
}
|
||||
\@ifpackageloaded{pict2e}
|
||||
@ -189,6 +197,7 @@
|
||||
{sphinxboxBorderColor}
|
||||
{sphinxboxBgColor}
|
||||
{sphinxboxShadowColor}%
|
||||
\spx@boxes@shadowinbboxtrue% inline sphinx boxes include shadow in bbox
|
||||
\setbox0\hbox\bgroup\aftergroup\spx@boxes@sphinxbox@a
|
||||
\let\next=%
|
||||
}
|
||||
@ -208,7 +217,7 @@
|
||||
% or \spx@boxes@fcolorbox@rounded depending on preliminary set-up.
|
||||
% Let's give it some default fall-back:
|
||||
% (but preliminary "setup" of \spx@boxes@fcolorbox@rectangle parameters
|
||||
% is mandatory requirement for it to work)
|
||||
% is mandatory requirement for it to work)
|
||||
\def\spx@boxes@fcolorbox{\spx@boxes@fcolorbox@rectangle}
|
||||
|
||||
% Then:
|
||||
@ -276,9 +285,11 @@
|
||||
}
|
||||
|
||||
\def\spx@boxes@fcolorbox@externalshadow{%
|
||||
% reserve space to shadow if on left
|
||||
% reserve space to external shadow if on left
|
||||
\ifspx@boxes@withshadow
|
||||
\ifspx@boxes@shadowinbbox
|
||||
\ifdim\spx@boxes@shadow@xoffset<\z@\kern-\spx@boxes@shadow@xoffset\fi
|
||||
\fi
|
||||
\fi
|
||||
% BACKGROUND
|
||||
% draw background and move back to reference point
|
||||
@ -350,7 +361,9 @@
|
||||
\box\spx@tempboxa
|
||||
% include lateral shadow in total width
|
||||
\ifspx@boxes@withshadow
|
||||
\ifspx@boxes@shadowinbbox
|
||||
\ifdim\spx@boxes@shadow@xoffset>\z@\kern\spx@boxes@shadow@xoffset\fi
|
||||
\fi
|
||||
\fi
|
||||
\egroup
|
||||
}
|
||||
@ -520,9 +533,11 @@
|
||||
\long\def\spx@boxes@fcolorbox@rounded #1{%
|
||||
\hbox{%
|
||||
\spx@boxes@fcolorbox@setuphook
|
||||
% reserve space to shadow if on left
|
||||
% reserve space to external shadow if on left
|
||||
\ifspx@boxes@withshadow
|
||||
\ifspx@boxes@shadowinbbox
|
||||
\ifdim\spx@boxes@shadow@xoffset<\z@\kern-\spx@boxes@shadow@xoffset\fi
|
||||
\fi
|
||||
\fi
|
||||
\vbox{%
|
||||
% adjust vertical bbox
|
||||
@ -601,7 +616,9 @@
|
||||
}% end of \vbox
|
||||
% include lateral shadow in total width
|
||||
\ifspx@boxes@withshadow
|
||||
\ifspx@boxes@shadowinbbox
|
||||
\ifdim\spx@boxes@shadow@xoffset>\z@\kern\spx@boxes@shadow@xoffset\fi
|
||||
\fi
|
||||
\fi
|
||||
}% end of \hbox
|
||||
}%
|
||||
|
Loading…
Reference in New Issue
Block a user