1 | %
|
---|
2 | % sphinx.sty
|
---|
3 | %
|
---|
4 | % Adapted from the old python.sty, mostly written by Fred Drake,
|
---|
5 | % by Georg Brandl.
|
---|
6 | %
|
---|
7 |
|
---|
8 | \NeedsTeXFormat{LaTeX2e}[1995/12/01]
|
---|
9 | \ProvidesPackage{sphinx}[2010/01/15 LaTeX package (Sphinx markup)]
|
---|
10 |
|
---|
11 | \RequirePackage{textcomp}
|
---|
12 | \RequirePackage{fancyhdr}
|
---|
13 | \RequirePackage{fancybox}
|
---|
14 | \RequirePackage{titlesec}
|
---|
15 | \RequirePackage{tabulary}
|
---|
16 | \RequirePackage{amsmath} % for \text
|
---|
17 | \RequirePackage{makeidx}
|
---|
18 | \RequirePackage{framed}
|
---|
19 | \RequirePackage{color}
|
---|
20 | % For highlighted code.
|
---|
21 | \RequirePackage{fancyvrb}
|
---|
22 | % For table captions.
|
---|
23 | \RequirePackage{threeparttable}
|
---|
24 | % Handle footnotes in tables.
|
---|
25 | \RequirePackage{footnote}
|
---|
26 | \makesavenoteenv{tabulary}
|
---|
27 | % For floating figures in the text.
|
---|
28 | \RequirePackage{wrapfig}
|
---|
29 | % Separate paragraphs by space by default.
|
---|
30 | \RequirePackage{parskip}
|
---|
31 |
|
---|
32 | % Redefine these colors to your liking in the preamble.
|
---|
33 | \definecolor{TitleColor}{rgb}{0.126,0.263,0.361}
|
---|
34 | \definecolor{InnerLinkColor}{rgb}{0.208,0.374,0.486}
|
---|
35 | \definecolor{OuterLinkColor}{rgb}{0.216,0.439,0.388}
|
---|
36 | % Redefine these colors to something not white if you want to have colored
|
---|
37 | % background and border for code examples.
|
---|
38 | \definecolor{VerbatimColor}{rgb}{1,1,1}
|
---|
39 | \definecolor{VerbatimBorderColor}{rgb}{1,1,1}
|
---|
40 |
|
---|
41 | % Uncomment these two lines to ignore the paper size and make the page
|
---|
42 | % size more like a typical published manual.
|
---|
43 | %\renewcommand{\paperheight}{9in}
|
---|
44 | %\renewcommand{\paperwidth}{8.5in} % typical squarish manual
|
---|
45 | %\renewcommand{\paperwidth}{7in} % O'Reilly ``Programmming Python''
|
---|
46 |
|
---|
47 | % For graphicx, check if we are compiling under latex or pdflatex.
|
---|
48 | \ifx\pdftexversion\undefined
|
---|
49 | \usepackage{graphicx}
|
---|
50 | \else
|
---|
51 | \usepackage[pdftex]{graphicx}
|
---|
52 | \fi
|
---|
53 |
|
---|
54 | % for PDF output, use colors and maximal compression
|
---|
55 | \newif\ifsphinxpdfoutput\sphinxpdfoutputfalse
|
---|
56 | \ifx\pdfoutput\undefined\else\ifcase\pdfoutput
|
---|
57 | \let\py@NormalColor\relax
|
---|
58 | \let\py@TitleColor\relax
|
---|
59 | \else
|
---|
60 | \sphinxpdfoutputtrue
|
---|
61 | \input{pdfcolor}
|
---|
62 | \def\py@NormalColor{\color[rgb]{0.0,0.0,0.0}}
|
---|
63 | \def\py@TitleColor{\color{TitleColor}}
|
---|
64 | \pdfcompresslevel=9
|
---|
65 | \fi\fi
|
---|
66 |
|
---|
67 | % XeLaTeX can do colors, too
|
---|
68 | \ifx\XeTeXrevision\undefined\else
|
---|
69 | \def\py@NormalColor{\color[rgb]{0.0,0.0,0.0}}
|
---|
70 | \def\py@TitleColor{\color{TitleColor}}
|
---|
71 | \fi
|
---|
72 |
|
---|
73 | % Increase printable page size (copied from fullpage.sty)
|
---|
74 | \topmargin 0pt
|
---|
75 | \advance \topmargin by -\headheight
|
---|
76 | \advance \topmargin by -\headsep
|
---|
77 |
|
---|
78 | % attempt to work a little better for A4 users
|
---|
79 | \textheight \paperheight
|
---|
80 | \advance\textheight by -2in
|
---|
81 |
|
---|
82 | \oddsidemargin 0pt
|
---|
83 | \evensidemargin 0pt
|
---|
84 | %\evensidemargin -.25in % for ``manual size'' documents
|
---|
85 | \marginparwidth 0.5in
|
---|
86 |
|
---|
87 | \textwidth \paperwidth
|
---|
88 | \advance\textwidth by -2in
|
---|
89 |
|
---|
90 |
|
---|
91 | % Style parameters and macros used by most documents here
|
---|
92 | \raggedbottom
|
---|
93 | \sloppy
|
---|
94 | \hbadness = 5000 % don't print trivial gripes
|
---|
95 |
|
---|
96 | \pagestyle{empty} % start this way; change for
|
---|
97 | \pagenumbering{roman} % ToC & chapters
|
---|
98 |
|
---|
99 | % Use this to set the font family for headers and other decor:
|
---|
100 | \newcommand{\py@HeaderFamily}{\sffamily\bfseries}
|
---|
101 |
|
---|
102 | % Redefine the 'normal' header/footer style when using "fancyhdr" package:
|
---|
103 | \@ifundefined{fancyhf}{}{
|
---|
104 | % Use \pagestyle{normal} as the primary pagestyle for text.
|
---|
105 | \fancypagestyle{normal}{
|
---|
106 | \fancyhf{}
|
---|
107 | \fancyfoot[LE,RO]{{\py@HeaderFamily\thepage}}
|
---|
108 | \fancyfoot[LO]{{\py@HeaderFamily\nouppercase{\rightmark}}}
|
---|
109 | \fancyfoot[RE]{{\py@HeaderFamily\nouppercase{\leftmark}}}
|
---|
110 | \fancyhead[LE,RO]{{\py@HeaderFamily \@title, \py@release}}
|
---|
111 | \renewcommand{\headrulewidth}{0.4pt}
|
---|
112 | \renewcommand{\footrulewidth}{0.4pt}
|
---|
113 | }
|
---|
114 | % Update the plain style so we get the page number & footer line,
|
---|
115 | % but not a chapter or section title. This is to keep the first
|
---|
116 | % page of a chapter and the blank page between chapters `clean.'
|
---|
117 | \fancypagestyle{plain}{
|
---|
118 | \fancyhf{}
|
---|
119 | \fancyfoot[LE,RO]{{\py@HeaderFamily\thepage}}
|
---|
120 | \renewcommand{\headrulewidth}{0pt}
|
---|
121 | \renewcommand{\footrulewidth}{0.4pt}
|
---|
122 | }
|
---|
123 | }
|
---|
124 |
|
---|
125 | % Some custom font markup commands.
|
---|
126 | %
|
---|
127 | \newcommand{\strong}[1]{{\bf #1}}
|
---|
128 | \newcommand{\code}[1]{\texttt{#1}}
|
---|
129 | \newcommand{\bfcode}[1]{\code{\bfseries#1}}
|
---|
130 | \newcommand{\samp}[1]{`\code{#1}'}
|
---|
131 | \newcommand{\email}[1]{\textsf{#1}}
|
---|
132 |
|
---|
133 | % Redefine the Verbatim environment to allow border and background colors.
|
---|
134 | % The original environment is still used for verbatims within tables.
|
---|
135 | \let\OriginalVerbatim=\Verbatim
|
---|
136 | \let\endOriginalVerbatim=\endVerbatim
|
---|
137 |
|
---|
138 | % Play with vspace to be able to keep the indentation.
|
---|
139 | \newlength\distancetoright
|
---|
140 | \newlength\leftsidespace
|
---|
141 | \def\mycolorbox#1{%
|
---|
142 | \setlength\leftsidespace{\@totalleftmargin}%
|
---|
143 | \setlength\distancetoright{\linewidth}%
|
---|
144 | \advance\distancetoright -\@totalleftmargin %
|
---|
145 | \noindent\hspace*{\@totalleftmargin}%
|
---|
146 | \fcolorbox{VerbatimBorderColor}{VerbatimColor}{%
|
---|
147 | \begin{minipage}{\distancetoright}%
|
---|
148 | \noindent\hspace*{-\leftsidespace}%
|
---|
149 | #1
|
---|
150 | \end{minipage}%
|
---|
151 | }%
|
---|
152 | }
|
---|
153 | \def\FrameCommand{\mycolorbox}
|
---|
154 |
|
---|
155 | \renewcommand{\Verbatim}[1][1]{%
|
---|
156 | % list starts new par, but we don't want it to be set apart vertically
|
---|
157 | \bgroup\parskip=0pt%
|
---|
158 | \smallskip%
|
---|
159 | % The list environement is needed to control perfectly the vertical
|
---|
160 | % space.
|
---|
161 | \list{}{%
|
---|
162 | \setlength\parskip{0pt}%
|
---|
163 | \setlength\itemsep{0ex}%
|
---|
164 | \setlength\topsep{0ex}%
|
---|
165 | \setlength\partopsep{0pt}%
|
---|
166 | \setlength\leftmargin{0pt}%
|
---|
167 | }%
|
---|
168 | \item\MakeFramed {\FrameRestore}%
|
---|
169 | \small%
|
---|
170 | \OriginalVerbatim[#1]%
|
---|
171 | }
|
---|
172 | \renewcommand{\endVerbatim}{%
|
---|
173 | \endOriginalVerbatim%
|
---|
174 | \endMakeFramed%
|
---|
175 | \endlist%
|
---|
176 | % close group to restore \parskip
|
---|
177 | \egroup%
|
---|
178 | }
|
---|
179 |
|
---|
180 |
|
---|
181 | % Index-entry generation support.
|
---|
182 | %
|
---|
183 |
|
---|
184 | % Command to generate two index entries (using subentries)
|
---|
185 | \newcommand{\indexii}[2]{\index{#1!#2}\index{#2!#1}}
|
---|
186 |
|
---|
187 | % And three entries (using only one level of subentries)
|
---|
188 | \newcommand{\indexiii}[3]{\index{#1!#2 #3}\index{#2!#3, #1}\index{#3!#1 #2}}
|
---|
189 |
|
---|
190 | % And four (again, using only one level of subentries)
|
---|
191 | \newcommand{\indexiv}[4]{
|
---|
192 | \index{#1!#2 #3 #4}
|
---|
193 | \index{#2!#3 #4, #1}
|
---|
194 | \index{#3!#4, #1 #2}
|
---|
195 | \index{#4!#1 #2 #3}
|
---|
196 | }
|
---|
197 |
|
---|
198 | % \moduleauthor{name}{email}
|
---|
199 | \newcommand{\moduleauthor}[2]{}
|
---|
200 |
|
---|
201 | % \sectionauthor{name}{email}
|
---|
202 | \newcommand{\sectionauthor}[2]{}
|
---|
203 |
|
---|
204 | % Augment the sectioning commands used to get our own font family in place,
|
---|
205 | % and reset some internal data items:
|
---|
206 | \titleformat{\section}{\Large\py@HeaderFamily}%
|
---|
207 | {\py@TitleColor\thesection}{0.5em}{\py@TitleColor}{\py@NormalColor}
|
---|
208 | \titleformat{\subsection}{\large\py@HeaderFamily}%
|
---|
209 | {\py@TitleColor\thesubsection}{0.5em}{\py@TitleColor}{\py@NormalColor}
|
---|
210 | \titleformat{\subsubsection}{\py@HeaderFamily}%
|
---|
211 | {\py@TitleColor\thesubsubsection}{0.5em}{\py@TitleColor}{\py@NormalColor}
|
---|
212 | \titleformat{\paragraph}{\large\py@HeaderFamily}%
|
---|
213 | {\py@TitleColor}{0em}{\py@TitleColor}{\py@NormalColor}
|
---|
214 |
|
---|
215 | % {fulllineitems} is the main environment for object descriptions.
|
---|
216 | %
|
---|
217 | \newcommand{\py@itemnewline}[1]{%
|
---|
218 | \@tempdima\linewidth%
|
---|
219 | \advance\@tempdima \leftmargin\makebox[\@tempdima][l]{#1}%
|
---|
220 | }
|
---|
221 |
|
---|
222 | \newenvironment{fulllineitems}{
|
---|
223 | \begin{list}{}{\labelwidth \leftmargin \labelsep 0pt
|
---|
224 | \rightmargin 0pt \topsep -\parskip \partopsep \parskip
|
---|
225 | \itemsep -\parsep
|
---|
226 | \let\makelabel=\py@itemnewline}
|
---|
227 | }{\end{list}}
|
---|
228 |
|
---|
229 | % \optional is used for ``[, arg]``, i.e. desc_optional nodes.
|
---|
230 | \newcommand{\optional}[1]{%
|
---|
231 | {\textnormal{\Large[}}{#1}\hspace{0.5mm}{\textnormal{\Large]}}}
|
---|
232 |
|
---|
233 | \newlength{\py@argswidth}
|
---|
234 | \newcommand{\py@sigparams}[2]{%
|
---|
235 | \parbox[t]{\py@argswidth}{#1\code{)}#2}}
|
---|
236 | \newcommand{\pysigline}[1]{\item[#1]\nopagebreak}
|
---|
237 | \newcommand{\pysiglinewithargsret}[3]{%
|
---|
238 | \settowidth{\py@argswidth}{#1\code{(}}%
|
---|
239 | \addtolength{\py@argswidth}{-2\py@argswidth}%
|
---|
240 | \addtolength{\py@argswidth}{\linewidth}%
|
---|
241 | \item[#1\code{(}\py@sigparams{#2}{#3}]}
|
---|
242 |
|
---|
243 | % This version is being checked in for the historical record; it shows
|
---|
244 | % how I've managed to get some aspects of this to work. It will not
|
---|
245 | % be used in practice, so a subsequent revision will change things
|
---|
246 | % again. This version has problems, but shows how to do something
|
---|
247 | % that proved more tedious than I'd expected, so I don't want to lose
|
---|
248 | % the example completely.
|
---|
249 | %
|
---|
250 | \newcommand{\grammartoken}[1]{\texttt{#1}}
|
---|
251 | \newenvironment{productionlist}[1][\@undefined]{
|
---|
252 | \def\optional##1{{\Large[}##1{\Large]}}
|
---|
253 | \def\production##1##2{\hypertarget{grammar-token-##1}{}%
|
---|
254 | \code{##1}&::=&\code{##2}\\}
|
---|
255 | \def\productioncont##1{& &\code{##1}\\}
|
---|
256 | \def\token##1{##1}
|
---|
257 | \let\grammartoken=\token
|
---|
258 | \parindent=2em
|
---|
259 | \indent
|
---|
260 | \begin{tabular}{lcl}
|
---|
261 | }{%
|
---|
262 | \end{tabular}
|
---|
263 | }
|
---|
264 |
|
---|
265 | % Notices / Admonitions
|
---|
266 | %
|
---|
267 | \newlength{\py@noticelength}
|
---|
268 |
|
---|
269 | \newcommand{\py@heavybox}{
|
---|
270 | \setlength{\fboxrule}{1pt}
|
---|
271 | \setlength{\fboxsep}{7pt}
|
---|
272 | \setlength{\py@noticelength}{\linewidth}
|
---|
273 | \addtolength{\py@noticelength}{-2\fboxsep}
|
---|
274 | \addtolength{\py@noticelength}{-2\fboxrule}
|
---|
275 | \setlength{\shadowsize}{3pt}
|
---|
276 | \Sbox
|
---|
277 | \minipage{\py@noticelength}
|
---|
278 | }
|
---|
279 | \newcommand{\py@endheavybox}{
|
---|
280 | \endminipage
|
---|
281 | \endSbox
|
---|
282 | \fbox{\TheSbox}
|
---|
283 | }
|
---|
284 |
|
---|
285 | % Some are quite plain:
|
---|
286 | \newcommand{\py@noticestart@note}{}
|
---|
287 | \newcommand{\py@noticeend@note}{}
|
---|
288 | \newcommand{\py@noticestart@hint}{}
|
---|
289 | \newcommand{\py@noticeend@hint}{}
|
---|
290 | \newcommand{\py@noticestart@important}{}
|
---|
291 | \newcommand{\py@noticeend@important}{}
|
---|
292 | \newcommand{\py@noticestart@tip}{}
|
---|
293 | \newcommand{\py@noticeend@tip}{}
|
---|
294 |
|
---|
295 | % Others gets more visible distinction:
|
---|
296 | \newcommand{\py@noticestart@warning}{\py@heavybox}
|
---|
297 | \newcommand{\py@noticeend@warning}{\py@endheavybox}
|
---|
298 | \newcommand{\py@noticestart@caution}{\py@heavybox}
|
---|
299 | \newcommand{\py@noticeend@caution}{\py@endheavybox}
|
---|
300 | \newcommand{\py@noticestart@attention}{\py@heavybox}
|
---|
301 | \newcommand{\py@noticeend@attention}{\py@endheavybox}
|
---|
302 | \newcommand{\py@noticestart@danger}{\py@heavybox}
|
---|
303 | \newcommand{\py@noticeend@danger}{\py@endheavybox}
|
---|
304 | \newcommand{\py@noticestart@error}{\py@heavybox}
|
---|
305 | \newcommand{\py@noticeend@error}{\py@endheavybox}
|
---|
306 |
|
---|
307 | \newenvironment{notice}[2]{
|
---|
308 | \def\py@noticetype{#1}
|
---|
309 | \csname py@noticestart@#1\endcsname
|
---|
310 | \par\strong{#2}
|
---|
311 | }{\csname py@noticeend@\py@noticetype\endcsname}
|
---|
312 |
|
---|
313 | % Allow the release number to be specified independently of the
|
---|
314 | % \date{}. This allows the date to reflect the document's date and
|
---|
315 | % release to specify the release that is documented.
|
---|
316 | %
|
---|
317 | \newcommand{\py@release}{}
|
---|
318 | \newcommand{\version}{}
|
---|
319 | \newcommand{\shortversion}{}
|
---|
320 | \newcommand{\releaseinfo}{}
|
---|
321 | \newcommand{\releasename}{Release}
|
---|
322 | \newcommand{\release}[1]{%
|
---|
323 | \renewcommand{\py@release}{\releasename\space\version}%
|
---|
324 | \renewcommand{\version}{#1}}
|
---|
325 | \newcommand{\setshortversion}[1]{%
|
---|
326 | \renewcommand{\shortversion}{#1}}
|
---|
327 | \newcommand{\setreleaseinfo}[1]{%
|
---|
328 | \renewcommand{\releaseinfo}{#1}}
|
---|
329 |
|
---|
330 | % Allow specification of the author's address separately from the
|
---|
331 | % author's name. This can be used to format them differently, which
|
---|
332 | % is a good thing.
|
---|
333 | %
|
---|
334 | \newcommand{\py@authoraddress}{}
|
---|
335 | \newcommand{\authoraddress}[1]{\renewcommand{\py@authoraddress}{#1}}
|
---|
336 |
|
---|
337 | % This sets up the fancy chapter headings that make the documents look
|
---|
338 | % at least a little better than the usual LaTeX output.
|
---|
339 | %
|
---|
340 | \@ifundefined{ChTitleVar}{}{
|
---|
341 | \ChNameVar{\raggedleft\normalsize\py@HeaderFamily}
|
---|
342 | \ChNumVar{\raggedleft \bfseries\Large\py@HeaderFamily}
|
---|
343 | \ChTitleVar{\raggedleft \rm\Huge\py@HeaderFamily}
|
---|
344 | % This creates chapter heads without the leading \vspace*{}:
|
---|
345 | \def\@makechapterhead#1{%
|
---|
346 | {\parindent \z@ \raggedright \normalfont
|
---|
347 | \ifnum \c@secnumdepth >\m@ne
|
---|
348 | \DOCH
|
---|
349 | \fi
|
---|
350 | \interlinepenalty\@M
|
---|
351 | \DOTI{#1}
|
---|
352 | }
|
---|
353 | }
|
---|
354 | }
|
---|
355 |
|
---|
356 | % Redefine description environment so that it is usable inside fulllineitems.
|
---|
357 | %
|
---|
358 | \renewcommand{\description}{%
|
---|
359 | \list{}{\labelwidth\z@%
|
---|
360 | \itemindent-\leftmargin%
|
---|
361 | \labelsep5pt%
|
---|
362 | \let\makelabel=\descriptionlabel}}
|
---|
363 |
|
---|
364 | % Definition lists; requested by AMK for HOWTO documents. Probably useful
|
---|
365 | % elsewhere as well, so keep in in the general style support.
|
---|
366 | %
|
---|
367 | \newenvironment{definitions}{%
|
---|
368 | \begin{description}%
|
---|
369 | \def\term##1{\item[##1]\mbox{}\\*[0mm]}
|
---|
370 | }{%
|
---|
371 | \end{description}%
|
---|
372 | }
|
---|
373 |
|
---|
374 | % Tell TeX about pathological hyphenation cases:
|
---|
375 | \hyphenation{Base-HTTP-Re-quest-Hand-ler}
|
---|
376 |
|
---|
377 |
|
---|
378 | % The following is stuff copied from docutils' latex writer.
|
---|
379 | %
|
---|
380 | \newcommand{\optionlistlabel}[1]{\bf #1 \hfill}
|
---|
381 | \newenvironment{optionlist}[1]
|
---|
382 | {\begin{list}{}
|
---|
383 | {\setlength{\labelwidth}{#1}
|
---|
384 | \setlength{\rightmargin}{1cm}
|
---|
385 | \setlength{\leftmargin}{\rightmargin}
|
---|
386 | \addtolength{\leftmargin}{\labelwidth}
|
---|
387 | \addtolength{\leftmargin}{\labelsep}
|
---|
388 | \renewcommand{\makelabel}{\optionlistlabel}}
|
---|
389 | }{\end{list}}
|
---|
390 |
|
---|
391 | \newlength{\lineblockindentation}
|
---|
392 | \setlength{\lineblockindentation}{2.5em}
|
---|
393 | \newenvironment{lineblock}[1]
|
---|
394 | {\begin{list}{}
|
---|
395 | {\setlength{\partopsep}{\parskip}
|
---|
396 | \addtolength{\partopsep}{\baselineskip}
|
---|
397 | \topsep0pt\itemsep0.15\baselineskip\parsep0pt
|
---|
398 | \leftmargin#1}
|
---|
399 | \raggedright}
|
---|
400 | {\end{list}}
|
---|
401 |
|
---|
402 | % Redefine includgraphics for avoiding images larger than the screen size
|
---|
403 | % If the size is not specified.
|
---|
404 | \let\py@Oldincludegraphics\includegraphics
|
---|
405 |
|
---|
406 | \newbox\image@box%
|
---|
407 | \newdimen\image@width%
|
---|
408 | \renewcommand\includegraphics[2][\@empty]{%
|
---|
409 | \ifx#1\@empty%
|
---|
410 | \setbox\image@box=\hbox{\py@Oldincludegraphics{#2}}%
|
---|
411 | \image@width\wd\image@box%
|
---|
412 | \ifdim \image@width>\linewidth%
|
---|
413 | \setbox\image@box=\hbox{\py@Oldincludegraphics[width=\linewidth]{#2}}%
|
---|
414 | \box\image@box%
|
---|
415 | \else%
|
---|
416 | \py@Oldincludegraphics{#2}%
|
---|
417 | \fi%
|
---|
418 | \else%
|
---|
419 | \py@Oldincludegraphics[#1]{#2}%
|
---|
420 | \fi%
|
---|
421 | }
|
---|
422 |
|
---|
423 |
|
---|
424 | % Fix the index and bibliography environments to add an entry to the Table of
|
---|
425 | % Contents; this is much nicer than just having to jump to the end of the book
|
---|
426 | % and flip around, especially with multiple indexes.
|
---|
427 | %
|
---|
428 | \let\py@OldTheindex=\theindex
|
---|
429 | \renewcommand{\theindex}{
|
---|
430 | \cleardoublepage
|
---|
431 | \phantomsection
|
---|
432 | \py@OldTheindex
|
---|
433 | \addcontentsline{toc}{chapter}{\indexname}
|
---|
434 | }
|
---|
435 |
|
---|
436 | \let\py@OldThebibliography=\thebibliography
|
---|
437 | \renewcommand{\thebibliography}[1]{
|
---|
438 | \cleardoublepage
|
---|
439 | \phantomsection
|
---|
440 | \py@OldThebibliography{1}
|
---|
441 | \addcontentsline{toc}{chapter}{\bibname}
|
---|
442 | }
|
---|
443 |
|
---|
444 | % Include hyperref last.
|
---|
445 | \RequirePackage[colorlinks,breaklinks,
|
---|
446 | linkcolor=InnerLinkColor,filecolor=OuterLinkColor,
|
---|
447 | menucolor=OuterLinkColor,urlcolor=OuterLinkColor,
|
---|
448 | citecolor=InnerLinkColor]{hyperref}
|
---|
449 | % Fix anchor placement for figures with captions.
|
---|
450 | % (Note: we don't use a package option here; instead, we give an explicit
|
---|
451 | % \capstart for figures that actually have a caption.)
|
---|
452 | \RequirePackage{hypcap}
|
---|
453 |
|
---|
454 | % From docutils.writers.latex2e
|
---|
455 | \providecommand{\DUspan}[2]{%
|
---|
456 | {% group ("span") to limit the scope of styling commands
|
---|
457 | \@for\node@class@name:=#1\do{%
|
---|
458 | \ifcsname docutilsrole\node@class@name\endcsname%
|
---|
459 | \csname docutilsrole\node@class@name\endcsname%
|
---|
460 | \fi%
|
---|
461 | }%
|
---|
462 | {#2}% node content
|
---|
463 | }% close "span"
|
---|
464 | }
|
---|