mirror of
https://github.com/alexandrebobkov/ESP32-S3_Arduino-Uno.git
synced 2025-08-07 19:27:02 +00:00
ESP32-S3 Uno
This commit is contained in:
116
build/latex/sphinxlatexshadowbox.sty
Normal file
116
build/latex/sphinxlatexshadowbox.sty
Normal file
@@ -0,0 +1,116 @@
|
||||
%% TOPIC AND CONTENTS BOXES
|
||||
%
|
||||
% change this info string if making any custom modification
|
||||
\ProvidesFile{sphinxlatexshadowbox.sty}[2023/03/19 sphinxShadowBox]
|
||||
|
||||
% Provides support for this output mark-up from Sphinx latex writer:
|
||||
%
|
||||
% - sphinxShadowBox (environment)
|
||||
%
|
||||
% Dependencies (they do not need to be defined at time of loading):
|
||||
%
|
||||
% - of course the various colour and dimension options handled via sphinx.sty
|
||||
% - dimension register \spx@image@maxheight from sphinxlatexgraphics.sty
|
||||
% - \savenotes/\spewnotes from sphinxpackagefootnote
|
||||
% - \ifspx@inframed defined in sphinx.sty
|
||||
%
|
||||
% Requires:
|
||||
\RequirePackage{framed}
|
||||
\RequirePackage{sphinxpackageboxes}
|
||||
|
||||
% At 5.1.0 the code formerly here in a definition of \spx@ShadowFBox has been
|
||||
% refactored to hand over to a more powerful \spx@boxes@fcolorbox provided by
|
||||
% file sphinxpackageboxes.sty, it can draw rounded corners and add a background
|
||||
% color.
|
||||
|
||||
% At 6.2.0, \spx@ShadowFBox is so much simplified that it is now not
|
||||
% separately defined but directly incorporated into the \FrameCommand
|
||||
% definition done by sphinxShadowBox environment below.
|
||||
|
||||
% Use framed.sty \MakeFramed/\endMakeFramed to allow page breaks for topic
|
||||
% boxes. Originally Sphinx used \shadowbox from fancybox.sty but it did not
|
||||
% allow pagebreaks (which was problematic for "contents" directive if there
|
||||
% are many subsections).
|
||||
%
|
||||
% Docutils does not allow topic to be nested within topics or other body
|
||||
% elements. But the LaTeX code here does allow it:
|
||||
%
|
||||
% - a topic inside another topic would be rendered in a minipage (thus not
|
||||
% allowing pagebreaks). Its external frame would adapt perfectly to
|
||||
% the *current (smaller) width for text*.
|
||||
%
|
||||
% - a topic inside (nested) lists or quote environments would have its frame
|
||||
% take the *full width* of the page, but its text contents on the other hand
|
||||
% would obey exactly the current indentation plus inner separation. This is
|
||||
% in contrast with the framing used for literal blocks, also based, but in a
|
||||
% more sophisticated way on usage of \MakeFramed/\endMakeFramed, and
|
||||
% adjusting to current text indentation.
|
||||
\newenvironment{sphinxShadowBox}
|
||||
{%
|
||||
\spx@boxes@fcolorbox@setup{topic}%
|
||||
% we will use the dimen registers from sphinxpackageboxes.sty which now hold
|
||||
% the values from options related to topic/contents
|
||||
% MEMO: \spx@boxes@fcolorbox creates an \hbox but does not quit vertical
|
||||
% mode; but in context of framed.sty's \FrameCommand TeX is already
|
||||
% in restricted horizontal mode, so no need for a \leavevmode here.
|
||||
\def\FrameCommand {\spx@boxes@fcolorbox}%
|
||||
% 6.2.0 adds support for div.topic_box-decoration-break=slice.
|
||||
% (it is yet undecided if slice style should inhibit a bottom shadow)
|
||||
\ifspx@topic@border@open
|
||||
\def\FirstFrameCommand
|
||||
{\spx@boxes@fcolorbox@setup@openbottom\FrameCommand}%
|
||||
\def\MidFrameCommand
|
||||
{\spx@boxes@fcolorbox@setup@openboth \FrameCommand}%
|
||||
\def\LastFrameCommand
|
||||
{\spx@boxes@fcolorbox@setup@opentop \FrameCommand}%
|
||||
\fi
|
||||
\advance\spx@image@maxheight
|
||||
-\dimexpr\spx@boxes@border@top+\spx@boxes@border@bottom
|
||||
+\spx@boxes@padding@top+\spx@boxes@padding@bottom
|
||||
+\ifdim\spx@boxes@shadow@yoffset<\z@-\fi\spx@boxes@shadow@yoffset
|
||||
+\baselineskip\relax
|
||||
% configure framed.sty not to add extra vertical spacing
|
||||
\ltx@ifundefined{OuterFrameSep}{}{\OuterFrameSep\z@skip}%
|
||||
% the \trivlist will add the vertical spacing on top and bottom which is
|
||||
% typical of center environment as used in Sphinx <= 1.4.1
|
||||
% the \noindent has the effet of an extra blank line on top, to
|
||||
% imitate closely the layout from Sphinx <= 1.4.1; the \FrameHeightAdjust
|
||||
% will put top part of frame on this baseline.
|
||||
\def\FrameHeightAdjust {\baselineskip}%
|
||||
% use package footnote to handle footnotes
|
||||
\savenotes
|
||||
\trivlist\item\noindent
|
||||
% use a minipage if we are already inside a framed environment
|
||||
\ifspx@inframed\begin{minipage}{\linewidth}\fi
|
||||
\MakeFramed {\spx@inframedtrue
|
||||
% framed.sty puts into "\width" the added width (padding+border widths)
|
||||
% adjust \hsize to what the contents must use
|
||||
\advance\hsize-\width
|
||||
% adjust LaTeX parameters to behave properly in indented/quoted contexts
|
||||
\FrameRestore
|
||||
% typeset the contents as in a minipage (Sphinx <= 1.4.1 used a minipage and
|
||||
% itemize/enumerate are therein typeset more tightly, we want to keep
|
||||
% that). We copy-paste from LaTeX source code but don't do a real minipage.
|
||||
\@pboxswfalse
|
||||
\let\@listdepth\@mplistdepth \@mplistdepth\z@
|
||||
\@minipagerestore
|
||||
\@setminipage
|
||||
}%
|
||||
\color@begingroup % workaround upstream framed.sty bug
|
||||
\ifspx@topic@withtextcolor
|
||||
\color{sphinxtopicTextColor}%
|
||||
\fi
|
||||
\spx@topic@TeXextras
|
||||
}%
|
||||
{% insert the "endminipage" code
|
||||
\par\unskip
|
||||
\color@endgroup % matches the \color@begingroup
|
||||
\@minipagefalse
|
||||
\endMakeFramed
|
||||
\ifspx@inframed\end{minipage}\fi
|
||||
\endtrivlist
|
||||
% output the stored footnotes
|
||||
\spewnotes
|
||||
}
|
||||
|
||||
\endinput
|
Reference in New Issue
Block a user