this repo has no description
1\NeedsTeXFormat{LaTeX2e}[1995/12/01]
2\ProvidesPackage{mznstyle}[2016/12/18 LaTeX package (MiniZinc for Sphinx)]
3
4\RequirePackage{trace}
5\RequirePackage[breakable]{tcolorbox}
6\RequirePackage{caption}
7\PassOptionsToPackage{hanging,nooneline}{caption}
8
9\RequirePackage{chngcntr}
10
11\RequirePackage{inputenc}
12\PassOptionsToPackage{utf8}{inputenc}
13
14\counterwithin{chapter}{part}
15\renewcommand{\thepart}{\arabic{part}}
16
17%\definecolor{UglyGreen}{rgb}{0,1,0}
18\definecolor{UglyGreen}{rgb}{0.418,0.556,0.137}
19%\definecolor{UglyBlue}{rgb}{0,0,1}
20\definecolor{UglyBlue}{rgb}{0.273,0.508,0.703}
21%\definecolor{UglyRed}{rgb}{0.2,0,0}
22\definecolor{UglyRed}{rgb}{0.801,0.359,0.359}
23%\definecolor{UglyOrange}{rgb}{0.2,0,0}
24\definecolor{UglyOrange}{rgb}{0.930,0.906,0.664}
25
26\DeclareCaptionFont{white}{\color{white}}
27
28
29\RequirePackage{tocloft}
30\PassOptionsToPackage{titles}{tocloft}
31
32\setcounter{tocdepth}{4}
33\renewcommand*\cftchapnumwidth{2em}
34\renewcommand*\cftsecnumwidth{3em}
35\renewcommand*\cftsubsecnumwidth{4em}
36
37\renewenvironment{sphinxadmonition}[2]{
38 \begin{tcolorbox}[colbacktitle=UglyBlue,coltitle=white,colframe=UglyBlue,fonttitle=\bfseries\large,title=#2]
39}{\end{tcolorbox}}
40
41\tcbset{boxrule=0.4pt}
42
43\newtcolorbox[auto counter,number within=chapter]{codebox}[2][]{%
44 title=\textbf{Listing~\thetcbcounter:} #2,#1}
45
46\renewcommand\sphinxcaption[2][\linewidth]{%
47 \noindent\hb@xt@\linewidth{\hss
48 \vtop{\@tempdima\dimexpr#1\relax
49% don't exceed linewidth for the caption width
50 \ifdim\@tempdima>\linewidth\hsize\linewidth\else\hsize\@tempdima\fi
51% longtable ignores \abovecaptionskip/\belowcaptionskip, so add hooks here
52% to uniformize control of caption distance to tables
53 \abovecaptionskip\sphinxabovecaptionskip
54 \belowcaptionskip\sphinxbelowcaptionskip
55 \caption[{#2}]%
56 {\strut\ignorespaces#2\ifhmode\unskip\@finalstrut\strutbox\fi}%
57 }\hss}%
58 \par\prevdepth\dp\strutbox
59}%
60
61\renewenvironment{sphinxVerbatim}{%
62 % first, let's check if there is a caption
63 \ifx\sphinxVerbatimTitle\empty
64 \sphinxvspacefixafterfrenchlists
65 % \parskip\z@skip
66 \vskip\sphinxverbatimsmallskipamount
67 % there was no caption. Check if nevertheless a label was set.
68 \ifx\sphinxLiteralBlockLabel\empty\else
69 % we require some space to be sure hyperlink target from \phantomsection
70 % will not be separated from upcoming verbatim by a page break
71 \needspace{\sphinxliteralblockwithoutcaptionneedspace}%
72 \phantomsection\sphinxLiteralBlockLabel
73 \fi
74 \else
75 \parskip\z@skip
76 \if t\spx@opt@literalblockcappos
77 \vskip\spx@abovecaptionskip
78 \def\sphinxVerbatim@Before
79 {\sphinxVerbatim@Title\nointerlineskip
80 \kern\dimexpr-\dp\strutbox+\sphinxbelowcaptionspace\relax}%
81 \else
82 \vskip\sphinxverbatimsmallskipamount
83 \def\sphinxVerbatim@After
84 {\nointerlineskip\kern\dp\strutbox\sphinxVerbatim@Title}%
85 \fi
86 \def\@captype{literalblock}%
87 \capstart
88 % \sphinxVerbatimTitle must reset color
89 % \setbox\sphinxVerbatim@TitleBox
90 % \hbox{\begin{minipage}{\linewidth}%
91 % \sphinxVerbatimTitle
92 % \end{minipage}}%
93 \fi
94 \fboxsep\sphinxverbatimsep \fboxrule\sphinxverbatimborder
95 \ifspx@opt@verbatimwithframe\else\fboxrule\z@\fi
96 \let\FrameCommand \sphinxVerbatim@FrameCommand
97 \let\FirstFrameCommand\sphinxVerbatim@FirstFrameCommand
98 \let\MidFrameCommand \sphinxVerbatim@MidFrameCommand
99 \let\LastFrameCommand \sphinxVerbatim@LastFrameCommand
100 \ifspx@opt@verbatimhintsturnover\else
101 \let\sphinxVerbatim@Continued\@empty
102 \let\sphinxVerbatim@Continues\@empty
103 \fi
104 \ifspx@opt@verbatimwrapslines
105 % fancyvrb's Verbatim puts each input line in (unbreakable) horizontal boxes.
106 % This customization wraps each line from the input in a \vtop, thus
107 % allowing it to wrap and display on two or more lines in the latex output.
108 % - The codeline counter will be increased only once.
109 % - The wrapped material will not break across pages, it is impossible
110 % to achieve this without extensive rewrite of fancyvrb.
111 % - The (not used in sphinx) obeytabs option to Verbatim is
112 % broken by this change (showtabs and tabspace work).
113 \let\sphinxVerbatimFormatLine\sphinxVerbatimFormatLineWrap
114 \let\FV@Space\spx@verbatim@space
115 % Allow breaks at special characters using \PYG... macros.
116 \sphinxbreaksatspecials
117 % Breaks at punctuation characters . , ; ? ! and / (needs catcode activation)
118 \fvset{codes*=\sphinxbreaksviaactive}%
119 \else % end of conditional code for wrapping long code lines
120 \let\sphinxVerbatimFormatLine\sphinxVerbatimFormatLineNoWrap
121 \fi
122 \let\FancyVerbFormatLine\sphinxFancyVerbFormatLine
123 % workaround to fancyvrb's check of \@currenvir
124 \let\VerbatimEnvironment\sphinxVerbatimEnvironment
125 % workaround to fancyvrb's check of current list depth
126 \def\@toodeep {\advance\@listdepth\@ne}%
127 % The list environment is needed to control perfectly the vertical space.
128 % Note: \OuterFrameSep used by framed.sty is later set to \topsep hence 0pt.
129 % - if caption: distance from last text baseline to caption baseline is
130 % A+(B-F)+\ht\strutbox, A = \abovecaptionskip (default 10pt), B =
131 % \baselineskip, F is the framed.sty \FrameHeightAdjust macro, default 6pt.
132 % Formula valid for F < 10pt.
133 % - distance of baseline of caption to top of frame is like for tables:
134 % \sphinxbelowcaptionspace (=0.5\baselineskip)
135 % - if no caption: distance of last text baseline to code frame is S+(B-F),
136 % with S = \sphinxverbatimtopskip (=\smallskip)
137 % - and distance from bottom of frame to next text baseline is
138 % \baselineskip+\parskip.
139 % The \trivlist is used to avoid possible "too deeply nested" error.
140 \itemsep \z@skip
141 \topsep \z@skip
142 \partopsep \z@skip
143 % trivlist will set \parsep to \parskip = zero
144 % \leftmargin will be set to zero by trivlist
145 \rightmargin\z@
146 \parindent \z@% becomes \itemindent. Default zero, but perhaps overwritten.
147 \trivlist\item\relax
148 \ifsphinxverbatimwithminipage\spx@inframedtrue\fi
149 % use a minipage if we are already inside a framed environment
150 \ifspx@inframed\noindent\begin{minipage}{\linewidth}\fi
151 \ifx\sphinxVerbatimTitle\empty
152 \begin{tcolorbox}[breakable,toprule at break=0pt,bottomrule at break=0pt,pad at break*=2mm]
153 \else
154 % \show\sphinxVerbatimTitle
155 % \begin{codebox}{\sphinxLiteralBlockLabel \sphinxVerbatimTitle}
156 \captionsetup{margin=0pt,aboveskip=0pt,belowskip=0pt,justification=raggedright,singlelinecheck=false,font=white}
157 % \traceon
158\begin{tcolorbox}[breakable,,toprule at break=0pt,bottomrule at break=0pt,pad at break*=2mm,title={\sphinxVerbatimTitle}]
159 % \traceoff
160 \fi
161 % \MakeFramed {% adapted over from framed.sty's snugshade environment
162 % \advance\hsize-\width\@totalleftmargin\z@\linewidth\hsize\@setminipage
163 % }%
164 % For grid placement from \strut's in \FancyVerbFormatLine
165 \lineskip\z@skip
166 % active comma should not be overwritten by \@noligs
167 \ifspx@opt@verbatimwrapslines
168 \let\verbatim@nolig@list \sphinx@verbatim@nolig@list
169 \fi
170 % will fetch its optional arguments if any
171 \OriginalVerbatim
172}
173{%
174 \endOriginalVerbatim
175 % \par\unskip\@minipagefalse\endMakeFramed % from framed.sty snugshade
176 \end{tcolorbox}
177 \ifspx@inframed\end{minipage}\fi
178 \global\let\sphinxLiteralBlockLabel\empty
179 \global\let\sphinxVerbatimTitle\empty
180 \endtrivlist
181}
182
183\def\theliteralblock{\arabic{part}.\arabic{chapter}.\arabic{literalblock}}
184\def\thefigure{\arabic{part}.\arabic{chapter}.\arabic{figure}}