
    ohe                    8   d Z dZddlZddlmZ ddlZddlZddlm	Z	 ddl
Z
	 ddlZddlZddlmZmZmZmZmZ ddlmZ ddlmZmZ  e ej2                  ej4                  j7                  e                  Z G d	 d
ej<                        Z G d d      Z G d de       Z! G d d      Z"de"_#        de"_$        de"_%        de"_&        de"_'        de"_(        de"_)        de"_*        de"_+        de"_,        de"_-        de"_.        de"_/        d Z0ej4                  jc                   ej2                  ej4                  j7                  e      d      d       Z2 e3e2d!"      5 Z4e4D ]_  Z5e5jm                  d#      Z5e5jo                  d$      s&e5jq                  d%      Z9e9s: e0e4      Z:e9d&v re:jm                         Z: e;e"e9e:       a 	 ddd        G d' d(      Z< G d) d*      Z= G d+ d,      Z> G d- d.ej~                        Z@y# e$ r ddlmc mZ Y w xY w# 1 sw Y   RxY w)/zLaTeX2e document tree Writer.reStructuredText    N)Path)url2pathname)frontendnodes	languageswritersutils)
writer_aux)pick_math_environmentunichar2texc                   <    e Zd ZdZ	 dZeZdZg dZddg ddgd	d
ifddgd	difddgddgddddfddgdde	j                  dfddgdde	j                  dfddgg d d!dd"fd#d$gd%d&d'e	j                  d(fd)d*gd&d+e	j                  d,fd-d.gd/dd0fd1d2gd3de	j                  dfd4d5gd6e	j                  d7gd8fd9d:gd	eifd;ez  d<ged=d>fd?d@gdAde	j                  dfdBdCgdDde	j                  dfdEdFgd3de	j                  dfdGdHgdIde	j                  dfdJdKgd3de	j                  dfdLdMgdNde	j                  dfdOdPgd3de	j                  dfdQdRgd	dSifdTdUgd	d%ifdVdWgd3de	j                  dfdXdYgddZd[fd\d]gdde	j                  dfd^d_gdd`d[fdadbgdcddd>fdedfgd	d%ifdgdhgde	j                  difdjdkgdlgddme	j                  ednfdodpgd	d%ifdqdrgd	dsifdtdugd	d%ifdvdwgd%dxe	j                  dyfdzd{gd3de	j                  dfd|d}gd~de	j                  dfddgdde	j                  dfddgdde	j                  dfddgdAde	j                  dffZddiZdZdZdZedz   ZdZ	 d Z fdZd Zd Z xZS )Writer)latexlatex2ezdefault.texzg% PDF Standard Fonts
\usepackage{mathptmx} % Times
\usepackage[scaled=.90]{helvet}
\usepackage{courier})booktabs
borderlesscolwidths-autonolinesstandardzLaTeX-Specific OptionsNz1Specify LaTeX documentclass.  Default: "article".z--documentclassdefaultarticlezcSpecify document options.  Multiple options can be given, separated by commas.  Default: "a4paper".z--documentoptionsa4paperz\Format for footnote references: one of "superscript" or "brackets".  Default: "superscript".z--footnote-referencessuperscriptbracketsz<format>trim_footnote_reference_space)choicesr   metavar	overridesz1Use \cite command for citations. (future default)z--use-latex-citations
store_true)r   action	validatorzZUse figure floats for citations (might get mixed with real figures). (provisional default)z--figure-citationsuse_latex_citationsstore_false)destr!   r"   zyFormat for block quote attributions: one of "dash" (em-dash prefix), "parentheses"/"parens", or "none".  Default: "dash".z--attributiondashparenthesesparensnoner'   )r   r   r   zSpecify LaTeX packages/stylesheets. A style is referenced with "\usepackage" if extension is ".sty" or omitted and with "\input" else.  Overrides previous --stylesheet and --stylesheet-path settings.z--stylesheet z<file[,file,...]>stylesheet_path)r   r   r   r"   zComma separated list of LaTeX packages/stylesheets. Relative paths are expanded if a matching file is found in the --stylesheet-dirs. With --link-stylesheet, the path is rewritten relative to the output *.tex file. z--stylesheet-path
stylesheet)r   r   r"   z7Link to the stylesheet(s) in the output file. (default)z--link-stylesheetembed_stylesheet)r%   r!   z^Embed the stylesheet(s) in the output file. Stylesheets must be accessible during processing. z--embed-stylesheetFzComma-separated list of directories where stylesheets are found. Used by --stylesheet-path when expanding relative path arguments. Default: ".".z--stylesheet-dirsz<dir[,dir,...]>.)r   r"   r   zlCustomization by LaTeX code in the preamble. Default: select PDF standard fonts (Times, Helvetica, Courier).z--latex-preamblez)Specify the template file. Default: "%s".z
--templatez<file>)r   r   z%Table of contents by LaTeX. (default)z--use-latex-tocTz5Table of contents by Docutils (without page numbers).z--use-docutils-tocuse_latex_tocz*Add parts on top of the section hierarchy.z--use-part-sectionz<Attach author and date to the document info table. (default)z--use-docutils-docinfouse_latex_docinfoz-Attach author and date to the document title.z--use-latex-docinfoz$Typeset abstract as topic. (default)z--topic-abstractuse_latex_abstractz;Use LaTeX abstract environment for the document's abstract.z--use-latex-abstractzSColor of any hyperlinks embedded in text. Default: "blue" (use "false" to disable).z--hyperlink-colorbluez-Additional options to the "hyperref" package.z--hyperref-optionszJEnable compound enumerators for nested enumerated lists (e.g. "1.2.a.ii").z--compound-enumeratorszCDisable compound enumerators for nested enumerated lists. (default)z--no-compound-enumeratorscompound_enumerators)r!   r%   zzEnable section ("." subsection ...) prefixes for compound enumerators.  This has no effect without --compound-enumerators.z --section-prefix-for-enumeratorsz<Disable section prefixes for compound enumerators. (default)z#--no-section-prefix-for-enumeratorssection_prefix_for_enumeratorszeSet the separator between section number and enumerator for compound enumerated lists.  Default: "-".z--section-enumerator-separator-z<char>zdWhen possible, use the specified environment for literal-blocks. Default: "" (fall back to "alltt").z--literal-block-envz4Deprecated alias for "--literal-block-env=verbatim".z--use-verbatim-when-possible)r!   r"   zTable style. "standard" with horizontal and vertical lines, "booktabs" (LaTeX booktabs style) only horizontal lines above and below the table and below the header, or "borderless". Default: "standard"z--table-styler   append)r   r   r!   r"   r   zLaTeX graphicx package option. Possible values are "dvipdfmx", "dvips", "dvisvgm", "luatex", "pdftex", and "xetex".Default: "".z--graphicx-optionzLaTeX font encoding. Possible values are "", "T1" (default), "OT1", "LGR,T1" or any other combination of options to the `fontenc` package. z--font-encodingT1zPer default the latex-writer puts the reference title into hyperreferences. Specify "ref*" or "pageref*" to get the section number or the page number.z--reference-labelzdSpecify style and database(s) for bibtex, for example "--use-bibtex=unsrt,mydb1,mydb2". Provisional!z--use-bibtexz<style,bibfile[,bibfile,...]>)r   r   r"   zJUse legacy functions with class value list for \DUtitle and \DUadmonition.z--legacy-class-functionszjUse \DUrole and "DUclass" wrappers for class values. Place admonition content in an environment. (default)z--new-class-functionslegacy_class_functionszLUse legacy algorithm to determine table column widths. (provisional default)z--legacy-column-widthszDUse new algorithm to determine table column widths. (future default)z--new-column-widthslegacy_column_widthszsFootnotes with numbers/symbols by Docutils. (default) (The alternative, --latex-footnotes, is not implemented yet.)z--docutils-footnotessectnum_depthr   zlatex2e writer)r	   zlatex writers)head_prefixrequirementslatex_preambler-   	fallbackspdfsetup	titledata)titlesubtitlebody_pre_docinfodocinfo
dedicationabstractbodyc                 X    t         j                  j                  |        t        | _        y N)r	   r   __init__LaTeXTranslatortranslator_classselfs    C/usr/lib/python3/dist-packages/docutils/writers/latex2e/__init__.pyrK   zWriter.__init__  s    % /    c                 D    t         |          t        j                  gz   S rJ   )superget_transformsr   Admonitions)rO   	__class__s    rP   rT   zWriter.get_transforms  s&    w%'))+  	rQ   c           	         | j                  | j                        }| j                  j                  |       | j                  D ]  }t	        | |t        ||              t        | j                  j                  j                        }|j                         s| j                  |z  }|j                  d      }| j                          t        j                  |      j                  | j                         | _        y )Nutf-8encoding)rM   document	walkaboutvisitor_attributessetattrgetattrr   settingstemplateexistsdefault_template_path	read_textassemble_partsstringTemplate
substitutepartsoutput)rO   visitorparttemplatepathra   s        rP   	translatezWriter.translate  s    ''6(++ 	8DD$ 67	8 DMM22;;<""$55DL))7);ooh/::4::FrQ   c                 8   t         j                  j                  |        | j                  D ]l  }t	        | |      }|| j
                  v r2|r|j                  d       dj                  |      | j                  |<   Odj                  |      | j                  |<   n y)z9Assemble the `self.parts` dictionary of output fragments.r+   
N)	r	   r   re   r]   r_   
head_partsr7   joinri   )rO   rl   liness      rP   re   zWriter.assemble_parts  s    %%d+++ 	2DD$'Et&LL$#'99U#3

4  $&775>

4 	2rQ   )__name__
__module____qualname__	supporteddefault_templateLATEX_WRITER_DIRrc   default_preambletable_style_valuesr   validate_booleanvalidate_comma_separated_listsettings_specsettings_defaultsconfig_sectionconfig_section_dependenciesrq   r]   rj   rK   rT   rn   re   __classcell__rV   s   @rP   r   r   "   s   $I'$,01
 	!}	
=
i
"
$ }	6
i
"
$}	1"
#$j1m 79
:}	 ?"
#l 113
4}	"G
 (M 113
4#}	,J
?5
6-}	6M 
%8) >>@
A7}	FF 
) >>@
AG}	T D
%
?
AU}	Z?
 | 113
4[}	d 
' >>e	
e}	rL
&
'
)s}	z 68H
H.&8
<
>{}	@ 2
l 113
4A}	H B
 "m 113
4I}	P 7
 | 113
4Q}	X I#
$&- 113
4Y}	` : 
!| 113
4a}	h 1
'= 113
4i}	p H!
"| 113
4q}	x6
)V!4
6y}	~ :
 9b/
3}	B#
$| 113
4C}	L&
'",B
C
EM}	TM-
.l 113
4U}	^ I0
1",L
M
O_}	d:+
,h
/
1e}	l0 
!b/
m}	t A)
*! 113
4u}	|  
!l  >>(	*	
+}}	P 
b/
Q}	\H 
d
	
]}	f' 
b/	
g}	p;
5 >>@
Aq}	|*%
&! 113
4}}	HB"
#+" 113
4I}	T"#
$! 113
4U}	` 
!)" 113
4a}	nJ!
"! 113
4o}	A
MF )!,%N">FJ# 'I I F.0G2rQ   r   c                   P   e Zd ZdZi dddddddd	d
dddddddddddddddddddddd d!d"d#i d$d%d&d'd(d)d*d+d,d-d.d/d0d1d2d3d4d5d6d7d8d9d:d;d<d=d>d?d@dAdBdCdDdEi dFdGdHdIdJdKdLdMdNdOdPdQdRdSdTdUdVdWdXdYdZd[d\d]d^d_d`dadbdcddd_dedfi dgdhdidjdkdldmdndodpdqdrdsdtdudvdwdxdydzd{drd|dtd}d~ddddddZej                         D  ci c]  \  }}|j                         | c}}} ZdZdddZddZ	d Z
d Zd Zyc c}}} w )BabelzLanguage specifics for LaTeX.af	afrikaansararabicbg	bulgarianbrbretoncacatalancsczechcywelshdadanishdengermanzde-1901germanzde-AT	naustrianz
de-AT-1901austriandsblowersorbianelgreekz
el-polytonpolutonikogreekenenglishzen-AU
australianzen-CAcanadianzen-GBbritishzen-NZ
newzealandzen-USamericaneo	esperantoesspanishetestonianeubasquefifinnishfrfrenchzfr-CAcanadiengairishz
grc-ibycusibycusglgalicianhehebrewhrcroatianhsbuppersorbianhumagyariainterlinguaidbahasaiis	icelandicititalianjajapanesekkkazakhlalatinlt
lithuanianlvlatvianmn	mongolianmsbahasamnbnorsknldutchnnnynorsknoplpolishptportugeszpt-BRbrazilroromanianrurussiansesaminzsh-Cyrlserbianczsh-Latnserbianskslovakslslovenesqalbaniansrzsr-Latnsvswedishtrturkishuk	ukrainianvivietnamz,Language "%s" not supported by LaTeX (babel)z.<>)r   r   Nc                 L    || _         | j                  |      | _        i | _        y rJ   )reporterlanguage_namelanguageotherlanguages)rO   language_coder   s      rP   rK   zBabel.__init__  s#     **=9 rQ   c                     t         j                  j                               } |j                   j                  xs d       ddj                  |      z  g _        g }dj                   fd|D              D ]  }||vs|j                  |        |r- j                  j                  ddj                  |      z         d|v r j                  j                  d       d	|v r j                  j                  g d
       d|v r j                  j                  g d       |d   dk(  rAd j                  j                         v r% xj                  ddd j                  z  gz  c_        dj                   j                        S )z7Return the babel call with correct options and settingsr   z\usepackage[%s]{babel},r+   c              3   V   K   | ]   }j                   j                  |d        " yw)r+   N)active_charsget).0lngrO   s     rP   	<genexpr>z!Babel.__call__.<locals>.<genexpr>  s$     MC**..sB7Ms   &)z#\AtBeginDocument{\shorthandoff{%s}}r   z)\deactivatetilden % restore ~ in Galicianr   )\makeatletterz+  \addto\extrasestonian{\bbl@deactivate{~}}\makeatotherr   )r  z)  \addto\extrasbasque{\bbl@deactivate{~}}r	  r   zE% Prevent side-effects if French hyphenation patterns are not loaded:z\frenchbsetup{StandardLayout}z4\AtBeginDocument{\selectlanguage{%s}\noextrasfrench}rp   )sortedr   keysr7   r   rr   setupextend)rO   r   
shorthandscs   `   rP   __call__zBabel.__call__  sv   4..3356		3)4/#((92EEF

M9MM 	%A
"!!!$	% JJD "
 34 5 "JJJK"JJ 0 1 y JJ 0 1 bMY&D//4466JJ 6;/15?@ @J
 yy$$rQ   c                     t        j                  |      D ]  }	 | j                  |   c S  | j                  (| j                  j                  | j                  |z         y# t        $ r Y Vw xY w)z,Return TeX language name for `language_code`r+   )r
   normalize_language_taglanguage_codesKeyErrorr   warningwarn_msg)rO   r   tags      rP   r   zBabel.language_name  sp    //> 	C**3//	
 ==$MM!!$---"?@	  s   A!!	A-,A-c                     | j                   S rJ   )r   rN   s    rP   get_languagezBabel.get_language  s    }}rQ   rJ   )rt   ru   rv   __doc__r  itemslowerr  r  rK   r  r   r  )r  kvs   000rP   r   r   *  s    'K
K
 	K

 	K
 	K
 		K
 	K
 	K
 	K
 		K
 	K
 	K
 	
K
  	!K
" 	#K
$ 	)%K
& 		'K
( 	)K
* 	
+K
, 		-K
. 	/K
0 	
1K
2 	3K
4 		5K
6 	
7K
8 	9K
< 		=K
> 	?K
@ 	
AK
B 	CK
F 	GK
H 	
IK
J 	KK
L 	
MK
N 	OK
P 	QK
R 	SK
T 		UK
V 	WK
X 		YK
Z 	
[K
\ 	]K
^ 	_K
` 	aK
b 		cK
d 	eK
f 		gK
h 	iK
j 	kK
l 		mK
n 	oK
p 	qK
r 	
sK
t 	uK
v 	
wK
x 		yK
z 	{K
| 	
}K
~ 		K
@ 	AK
B 		CK
D 	
EK
F 	
GK
H 		IK
J 		KK
N 		OK
P 	QK
R 		SK
NZ 0>/C/C/EFFtq!aggilFN=H* (-',
L!
%B	] Gs   ,D!r   c                       e Zd ZdZd Zd Zy)SortableDictzDictionary with additional sorting methods

    Tip: use key starting with with '_' for sorting before small letters
         and with '~' for sorting after small letters.
    c                 4    t        | j                               S )zReturn sorted list of keys)r  r  rN   s    rP   
sortedkeyszSortableDict.sortedkeys  s    diik""rQ   c                 N    | j                         D cg c]  }| |   	 c}S c c}w )z$Return list of values sorted by keys)r#  )rO   keys     rP   sortedvalueszSortableDict.sortedvalues  s!    %)__%67cS	777s   "N)rt   ru   rv   r  r#  r&   rQ   rP   r!  r!    s    
#8rQ   r!  c                       e Zd ZdZy)PreambleCmdsz'Building blocks for the latex preamble.N)rt   ru   rv   r  r'  rQ   rP   r)  r)    s    1rQ   r)  z\usepackage{color}zl\usepackage{float} % extended float configuration
\floatplacement{figure}{H} % place figures here definitelyz%% hyperlinks:
\ifthenelse{\isundefined{\hypersetup}}{
  \usepackage[%s]{hyperref}
  \usepackage{bookmark}
  \urlstyle{same} %% normal text font (alternatives: tt, rm, sf)
}{}z/%% local table of contents
\usepackage{minitoc}zz\usepackage{longtable,ltcaption,array}
\setlength{\extrarowheight}{2pt}
\newlength{\DUtablewidth} % internal use in tableszI\newcommand{\DUcolumnwidth}[1]{\dimexpr#1\DUtablewidth-2\tabcolsep\relax}z*\usepackage{textcomp} % text symbol macroszQ
% abstract title
\providecommand*{\DUtitleabstract}[1]{\centerline{\textbf{#1}}}a  
% admonition (specially marked topic)
\providecommand{\DUadmonition}[2][class-arg]{%
  % try \DUadmonition#1{#2}:
  \ifcsname DUadmonition#1\endcsname%
    \csname DUadmonition#1\endcsname{#2}%
  \else
    \begin{center}
      \fbox{\parbox{0.9\linewidth}{#2}}
    \end{center}
  \fi
}zU
% error admonition title
\providecommand*{\DUtitleerror}[1]{\DUtitle{\color{red}#1}}a  
% title for topics, admonitions, unsupported section levels, and sidebar
\providecommand*{\DUtitle}[2][class-arg]{%
  % call \DUtitle#1{#2} if it exists:
  \ifcsname DUtitle#1\endcsname%
    \csname DUtitle#1\endcsname{#2}%
  \else
    \smallskip\noindent\textbf{#2}\smallskip%
  \fi
}z
\providecommand*{\DUCLASScontents}{%
  \renewenvironment{itemize}%
    {\begin{list}{}{\setlength{\partopsep}{0pt}
                    \setlength{\parsep}{0pt}}
                   }%
    {\end{list}}%
}za
% character width in monospaced font
\newlength{\ttemwidth}
\settowidth{\ttemwidth}{\ttfamily M}c                     t        |       g}| D ]%  }|j                         s n|j                  |       ' dj                  |      j	                         S )Nr+   )nextstripr7   rr   rstrip)fpblocklines      rP   _read_blockr1  L  sM    "XJE zz|T 775>  ""rQ   localdocutils.styrX   rY   z% 
z:::)colorfloattabletextcompc                      e Zd ZdZ ed      d ed      d ed      diZ ed      d	 ed
      d ed      d ed      d ed      d ed      d ed      d ed      d ed      d ed      dddiZi ddd d!d"dd#d!d$d%d&d'd(d%d)d*d+d,d-d.d/d0d1d2d3d4d5d6d7d8d9d:d;d<d=d>d?d@dAZi dBddCdDdEdFdGdHdIdJdKdLdMdNdOdPdQdRdSdTdUdVdWdXdYdZd[d\d]d^d_d`dadbdcdddedfdgZi dhdidjdkdldmdndodpdqdrdsdtdudvdwdxdydzd{d|d}d~dddddddddddi ddddddddddddddddddddddddddddddddddi ddddddddddddddddddddddddddddēddƓddȓddʓi dd̓ddΓddГddfddӓddՓddדddٓddۓddݓddߓddddddddddddddddddZ	dddddZ
y)CharMapsz8LaTeX representations for active and Unicode characters.\z\textbackslash{}{z\{}z\}#\#$z\$%\%&z\&~z\textasciitilde{}_\_^z\textasciicircum{}"z\textquotedbl{}[z{[}]z{]}   z\-i    z\enskipi   z\quadi   i   i   z\,i   z\hspace{0pt}i/   i   z\hbox{-}i+!  z\AAi!  z\ensuremath{\Leftrightarrow}i`"  z\ensuremath{\neq}ia"  z\ensuremath{\equiv}id"  z\ensuremath{\le}ie"  z\ensuremath{\ge}i`&  z\ensuremath{\spadesuit}ic&  z\ensuremath{\clubsuit}i   ffr   flffiffl)i  i  i  i        z\guillemotleft{}   z\guillemotright{}i   z\textcompwordmark{}i   z\textendash{}i   z\textemdash{}i   z\textquoteleft{}i   z\textquoteright{}i   z\quotesinglbase{}i   z\textquotedblleft{}i   z\textquotedblright{}i   z\quotedblbase{}i0   z\textperthousand{}i1   z\textpertenthousand{}i9   z\guilsinglleft{}i:   z\guilsinglright{}i#$  z\textvisiblespace{}z\dag{}z\ddag{}z\dots{}z\texttrademark{})i    i!   i&   "!     z\textcent{}   z\textcurrency{}   z
\textyen{}   z\textbrokenbar{}   z\textsection{}   z\textasciidieresis{}   z\textcopyright{}   z\textordfeminine{}   z\textlnot{}   z\textregistered{}   z\textasciimacron{}   z\textdegree{}   z	\textpm{}   z\texttwosuperior{}   z\textthreesuperior{}   z\textasciiacute{}   z	\textmu{}   z\textparagraph{}   z\textonesuperior{}   z\textordmasculine{}   z\textonequarter{}   z\textonehalf{}   z\textthreequarters{}   z\texttimes{}   z
\textdiv{}i  z\textflorin{}i  i  z\textacutedbl{}i   z\textbardbl{}i"   z\textbullet{}i2   i3   i5   z\textasciigrave{}i6   z\textgravedbl{}i;   z\textreferencemark{}i=   z\textinterrobang{}iD   z\textfractionsolidus{}iE   z\textlquill{}iF   z\textrquill{}iR   z\textdiscount{}i   z\textcolonmonetary{}i   z\textfrenchfranc{}i   z\textlira{}i   z\textnaira{}i   z
\textwon{}i   z\textdong{}i   z\texteuro{}i   z\textpeso{}i   z\textguarani{}i!  z\textcelsius{}i!  z\textnumero{}i!  z\textcircledP{}i!  z\textrecipe{}i !  z\textservicemark{}rS  i&!  z
\textohm{}i'!  z
\textmho{}i.!  z\textestimated{}i!  z\textleftarrow{}i!  z\textuparrow{}i!  z\textrightarrow{}i!  z\textdownarrow{}i"  z\textminus{}i"  z\textasteriskcentered{}i"  z\textsurd{}i"$  z\textblank{}i%  z\textopenbullet{}i%  z\textbigcircle{}z\textmusicalnote{}z\textmarried{}z\textdivorced{}z\textlangle{}z\textrangle{})ij&  i&  i&  i'  i'  z
\ding{170}z
\ding{169}z	\ding{51}z	\ding{55})ie&  if&  i'  i'  N)rt   ru   rv   r  ordallttspecialunsupported_unicodeutf8_supported_unicoder8  pifontr'  rQ   rP   r:  r:  l  s   B 	D	&C%C%E 	C%C%C%C%C&C%C'C$ 	C%C% 	)G. 	
 		
 	
 	 	 	 	 	 	 	0 	% 	'  	$!" 	$#& 	+'( 	*)* 	+, 38# 	$ 	&	
 	  	  	# 	$ 	$ 	& 	' 	" 	% 	( 	#  	$!" 	&#$ #+0LL 	"L 		L
 	#L 	!L 	'L 	#L 	%L 	L 	$L 	%L 	 L 	L 	%L  	'!L" 	$#L$ 	%L& 	#'L( 	%)L* 	&+L, 	$-L. 	!/L0 	'1L2 	3L4 	5L8 	 9L: 	$;L< 	"=L> 	 ?L@ 	 ALB 	$CLD 	"ELF 	$GLH 	"ILJ 	'KLL 	%MLN 	)OLP 	 QLR 	 SLT 	"ULV 	'WLX 	%YLZ 	[L\ 	]L^ 	_L` 	aLb 	cLd 	eLf 	!gLh 	!iLj 	 kLl 	"mLn 	 oLp 	%qLr 	#sLt 	uLv 	wLx 	#yLz 	#{L| 	!}L~ 	$L@ 	#ALB 	CLD 	*ELF 	GLH 	ILJ 	$KLL 	#MLN &!"  WLH^ 	FrQ   r:  c                   $    e Zd ZdZddZd Zd Zy)DocumentClassz"Details of a LaTeX document class.c                     || _         || _        g d| _        | j                   dv r| j                  j                  dd       | j                  r| j                  j                  dd       y y )N)section
subsectionsubsubsection	paragraphsubparagraph)bookmemoirreportscrbookscrreprtr   chapterrl   )document_class
_with_partsectionsinsert)rO   r  	with_parts      rP   rK   zDocumentClass.__init__  sa    ,#6 #: :MM  I.??MM  F+ rQ   c                 X    |t        | j                        k  r| j                  |dz
     S y)zReturn the LaTeX section name for section `level`.

        The name depends on the specific document class.
        Level is 1,2,3..., as level 0 is the title.
           DUtitle)lenr  )rO   levels     rP   rv  zDocumentClass.section)  s+     C&&==q))rQ   c                     t        |t        | j                              }d| j                  v r|dz  }| j                  d   dk(  r|dz  }|S )a  
        Return LaTeX equivalent of Docutils section level `depth`.

        Given the value of the ``:depth:`` option of the "contents" or
        "sectnum" directive, return the corresponding value for the
        LaTeX ``tocdepth`` or ``secnumdepth`` counters.
        r  r  r   rl   )minr  r  )rO   depths     rP   latex_section_depthz!DocumentClass.latex_section_depth4  sM     E3t}}-.%QJE==v%QJErQ   N)F)rt   ru   rv   r  rK   rv  r  r'  rQ   rP   rt  rt    s    ,	,	rQ   rt  c                       e Zd ZdZd Zd Zd Zd Zd Zd Z	d Z
d	 Zd
 ZddZd Zd Zd Zd Zd Zd Zd Zd Zd Zd Zd Zd Zd Zd Zd Zd Zy)TableaH  Manage a table while traversing.

    Table style might be

    :standard:   horizontal and vertical lines
    :booktabs:   only horizontal lines (requires "booktabs" LaTeX package)
    :borderless: no borders around table cells
    :nolines:    alias for borderless

    :colwidths-auto:  column widths determined by LaTeX
    c                 x    || _         || _        d| _        | j                          g | _        g | _        d| _        y )NFr   )_translator_latex_typer:   close
_colwidths_rowspan	_in_thead)rO   
translator
latex_types      rP   rK   zTable.__init__P  s8    %%$)!

rQ   c                 J    d| _         g | _        g | _        i | _        d| _        y )NTF)_open
_col_specscaption_attrs_in_headrN   s    rP   openz
Table.openZ  s%    
rQ   c                 X    d| _         d | _        g | _        i | _        g | _        d| _        y NF)r  r  r  r  stubscolwidths_autorN   s    rP   r  zTable.closea  s-    

#rQ   c                     | j                   S rJ   )r  rN   s    rP   is_openzTable.is_openi  s    zzrQ   c                 :   |j                   | _         d|v r| j                  d|d          dg|j                  z   |d   z   D cg c]  }|dv r|j                  dd       }}|d   | _        d|d   v xs d|j                  v xr d	|d   vxr d
|v| _        y c c}w )Nalignr   classes)r   r   r   r   r   r   r
  r   colwidths-givenwidth)r:   settable_stylereplacebordersr  )rO   noder`   clsr  s        rP   set_table_stylezTable.set_table_stylel  s    $,$A$A!d?HHWd7m, !+|!)!5!5 6!%i 1P NN	 ;;y,7 P P
 r{ 0DO C !L#3x7K7K#K 7#4DO#K 7 $+$#6 	Ps   Bc                 R    | j                   dk(  r| j                  sy| j                   S )N	longtable
longtable*)r  r  rN   s    rP   get_latex_typezTable.get_latex_type}  s%    {*4<<rQ   c                 "    || j                   |<   y rJ   r  )rO   attrvalues      rP   r  z	Table.set  s    !DrQ   c                 >    || j                   v r| j                   |   S y rJ   r  )rO   r  s     rP   r  z	Table.get  s     4;;;;t$$rQ   c                 $    | j                   dk(  ryy)Nr   |r+   )r  rN   s    rP   get_vertical_barzTable.get_vertical_bar  s    <<:%rQ   c                    ddddd}|j                  | j                  d            }| j                         }|r|dvrd|d	d
|dg}n	d
|d|g}| j                  s^| j                  dk(  r:| j                  s.|j                  dd|t        | j                        dz   fz         n|j                  dd|z         dj                  |      S )Nz[l]z[c]z[r]r+   )leftcenterrightNr  r  r  z\noindent\makebox[\linewidth]z{%\begin{r=  r   r
  z?\setlength{\DUtablewidth}{\dimexpr%s-%i\arrayrulewidth\relax}%%r  z\setlength{\DUtablewidth}{%s}%%rp   )	r  r  r  r  r:   r  r  r  rr   )rO   r  	align_mapr  r  openings         rP   get_openingzTable.get_opening  s    "$#	 dhhw/0((*
Z'BB@EG(246G +5e<=G""||z)$2K2Kr $I"'T__)=a)?!@$A B r#E#MNyy!!rQ   c                    g }| j                   dk(  r|j                  d       |j                  d| j                         z         | j                  d      r#| j                         dvr|j                  d       dj	                  |      S )Nr   z\bottomrule\end{%s}r  r  r=  rp   )r  r7   r  r  rr   )rO   closings     rP   get_closingzTable.get_closing  st    <<:%NN>* 	{T%8%8%::;HHW##%-HHNN3yy!!rQ   c                     | j                   j                  |       | j                  j                  |j                  j	                  d             y )Nstub)r  r7   r  
attributesr  rO   r  s     rP   visit_colspeczTable.visit_colspec  s5    t$

$//--f56rQ   c                    | j                         }dgt        | j                        z  | _        | j                  r"g | _        dgt        | j                        z  }nH| j                  rxd}d}t        d | j                  D              }||kD  r|||z  z  }| j                  D cg c]  }||d   dz   z  |z  dz    c}| _        | j
                  D cg c]  }d	|z  	 }}nd
}d|j                  j                  d   vrd}	nd}	| j                  D cg c]  }|d   |	z   |z   c}| _        t        | j
                        }|dkD  s"dj                  j                  j                  v r"| j
                  D cg c]  }||z  	 c}| _        | j
                  D cg c]  }d|z  	 }}||j                  |      z   |z   S c c}w c c}w c c}w c c}w c c}w )z3Return column specification for longtable.
        r   lP   g(\?c              3   ,   K   | ]  }|d    dz     yw)colwidthr  Nr'  r  r  s     rP   r  z%Table.get_colspecs.<locals>.<genexpr>  s     MTd:.q0M   r  r  g{Gzt?zp{%.3f\DUtablewidth}(   r  r  r  p{\DUcolumnwidth{%.3f}})r  r  r  r  r  r  r:   sumparentr  rr   )
rO   r  barlatex_colspecsr  factortotal_widthr  norm_length	allowances
             rP   get_colspecszTable.get_colspecs  s    ##%c$//22 DO!US%99N&&EFMT__MMKU"%+--37??D+/ !'$z*:1*< =e C!& ' DDO /3oo?"* 6@ ?N ? K !(:(:9(EE		+/??<#' !%Z 0 :KG <DOdoo.KQ'T[[-?-?-J-J"J37??#D'/ $,K#7 #D /3oo?"* 98C ?N ?SXXn--337D? <
#D?s   $F<GG5GGc                     	 | j                   rd| j                  | j                     z  S d| j                  | j                     z  S # t        $ r Y yw xY w)z4Return columnwidth for current cell (not multicell).z%.2f\DUtablewidthz\DUcolumnwidth{%.2f}*)r:   r  _cell_in_row
IndexErrorrN   s    rP   get_column_widthzTable.get_column_width  sV    	((+DOOD<M<M,NNN*4??4;L;L+MMM 		s   'A A 	AAc                      	 t         fdt        |      D              } j                  rd|z  S d|z  S # t        $ r Y yw xY w)z)Return sum of columnwidths for multicell.c              3   B   K   | ]  }j                   |z        y wrJ   )r  )r  corO   starts     rP   r  z.Table.get_multicolumn_width.<locals>.<genexpr>  s&      !8%' "&!< !8s   zp{%.2f\DUtablewidth}r  r  )r  ranger:   r  )rO   r  len_multicol_widths   ``  rP   get_multicolumn_widthzTable.get_multicolumn_width  sT    	  !8+0;!8 8N((.??->> 		s   .8 8 	AAc                     | j                   sydj                  | j                         }d| j                  j                         k(  rd|z  S d|z  S )Nr+   r  z\caption{%s}\\
z!\caption[]{%s (... continued)}\\
)r  rr   r  thead_depth)rO   r  s     rP   get_captionzTable.get_caption  sK    ||''$,,'  ,,..)G337'AArQ   c                 \    | j                   dk(  rd| j                  j                         k(  S y)Nr  r  r   )r  r  r  rN   s    rP   need_recursezTable.need_recurse   s-    {*((44666rQ   c                 x    | xj                   dz  c_         | j                  dk(  rdgS | j                  dk(  rdgS g S )Nr  r   \hline
r   z	\toprule
)r  r  rN   s    rP   visit_theadzTable.visit_thead  s=    !<<:%= \\Z'!?"	rQ   c                    g }| j                   dk(  r|j                  d       | j                  dk(  rd| j                  j	                         k(  r|j                  d       nt        | j                        }|j                  d       t        d | j                  D              }|dkD  s|d	kD  r8| j                  s,|j                  d
|| j                  d|      fz  dz   dz          |j                  d       | xj                  dz  c_
        |S )Nr   z	\midrule
r  r  z\endfirsthead
z	\endhead
c              3   ,   K   | ]  }|d    dz     yw)r     Nr'  r  s     rP   r  z%Table.depart_thead.<locals>.<genexpr>  s     LDT*-a/Lr        z\multicolumn{%d}{%s}r   z,{\raggedleft\ldots continued on next page}\\rp   z\endfoot
\endlastfoot
)r  r7   r  r  r  r  r  r  r  r  r  )rO   an_ctwidths       rP   depart_theadzTable.depart_thead  s     <<:%HH]#{*D$$0022+,$//*'LDOOLLB;6B;t7J7JHH4 #T%?%?3%GHINO  $$ % 56!rQ   c                     d| _         y Nr   r  rN   s    rP   	visit_rowzTable.visit_row%  s
    rQ   c                 d   dg}d | _         t        t        | j                              D ],  }| j                  |   dkD  s| j                  |xx   dz  cc<   . | j                  dk(  rt        t        | j                              D cg c]  }| j                  |   dk  r|dz    }}t        |      t        | j                        k(  r|j                  d       |S d}|j                          	 	 |j                         }|d||fz  z  }|S c c}w # t        $ r Y nw xY w|j                  |       ()N \\
r   r  r   r  r+   z\cline{%d-%d}
)	r  r  r  r  r  r7   reversepopr  )rO   resirowspansclinec_starts         rP   
depart_rowzTable.depart_row(  s9   k s4==)* 	&A}}Q!#a A% 	& <<:%%*3t}}+=%> 2==+q0 ! 2H 28}DMM 22

;' 
   ""*,,. /7G2DDDE  
2 &  

5!s   D/D 	DDc                 B    	 || j                   |<   y # t        $ r Y y w xY wrJ   r  r  )rO   cellr  s      rP   set_rowspanzTable.set_rowspanA  s'    	"'DMM$ 		s    	c                 @    	 | j                   |   S # t        $ r Y yw xY wr  r  )rO   r  s     rP   get_rowspanzTable.get_rowspanG  s(    	==&& 		s    	c                     | j                   S rJ   r  rN   s    rP   get_entry_numberzTable.get_entry_numberM         rQ   c                 .    | xj                   dz  c_         y Nr  r  rN   s    rP   visit_entryzTable.visit_entryP  s    QrQ   c                 z    t        | j                        | j                  k\  r| j                  | j                     S yr  )r  r  r  rN   s    rP   is_stub_columnzTable.is_stub_columnS  s0    tzz?d///::d//00rQ   N)
\linewidth)rt   ru   rv   r  rK   r  r  r  r  r  r  r  r  r  r  r  r  r  r  r  r  r  r   r  r  r  r  r  r  r  r'  rQ   rP   r  r  D  s    
$8" "
"*
"7
+4Z	B
02!rQ   r  c                   Z    e Zd ZdZdZdZdZdZdZdZ	dZ
dZdZdZdZdZef fd	Zd Zd Zd Zd	 Z ej.                  d
      fdZd Zd Z	 	 ddZd ZddZd Zd Zd Z d Z!d Z"d Z#d Z$d Z%d Z&d Z'd Z(d Z)d Z*d Z+d Z,d  Z-d! Z.d" Z/d# Z0d$ Z1d% Z2d& Z3d' Z4d( Z5d) Z6d* Z7d+ Z8d, Z9d- Z:d. Z;d/ Z<d0 Z=d1 Z>d2 Z?d3 Z@d4 ZAd5 ZBd6 ZCd7 ZDd8 ZEd9 ZFd: ZGd; ZHd< ZId= ZJd> ZKd? ZLd@ ZMdA ZNdB ZOdC ZPdD ZQdE ZRdF ZSdG ZTdH ZUdI ZVdJ ZWdK ZXdL ZYdM ZZdN Z[dO Z\dP Z]dQ Z^dR Z_dS Z`dT ZadU ZbdV ZcdW ZddX ZedY ZfdZ Zgd[ Zhd\ Zid] Zjd^ Zkd_ Zld` Zmda Zndb Zodc Zpdd Zqde Zrdf Zsdg Ztdh Zudi Zvdj Zwdk Zxdl Zydm Zzdn Z{do Z|dp Z}dq Z~dr Zds Zdt Zdu Zdv Zdw ZddxZdy Zdz Zd{ Zd| Zd} Zd~ Zd Zd Zd Zd Zd Zd Zd Zd Zd Zd Zd Zd Zd ZddZd Zd Zd Zd Zd Zd Zd Zd Zd Zd Zd Zd Zd Zd Zd Zd Zd Zd Zd Zd Zd Zd Zd Zd Zd Zd Zd Zd Zd Zd Zd Zd Zd Zd ZdddddZd Zd Zd Zd Zd Zd Zd Zd Zd Zd Zd Zd Zd Zd Zd Zd ZdÄ ZdĄ Zdń ZdƄ ZdǄ ZdȄ ZdZdɄ Zdʄ Zd˄ Zd̄ Zd̈́ Zd΄ Zdτ ZdЄ Zdф Zd҄ Zdӄ ZdԄ ZdՄ Z xZS )rL   z
    Generate code for 8-bit LaTeX from a Docutils document tree.

    See the docstring of docutils.writers._html_base.HTMLTranslator for
    notes on and examples of safe subclassing.
    Fr6   r   c                    t         
|   |       | j                  j                  j                  | _        | j                  j                  j                  | _        |j                  x| _        }|j                  /|j                  s#d|_        t        j
                  dt        d       |j                  #d|_        t        j
                  dt        d       |j                  t        j
                  dt        d       | j                  |j                        | _        |j"                  | _        |j$                  | _        |j                  | _        |j&                  | _        |j*                  | _        |j,                  | _        t/        |dd	      | _        |j2                  | _        |j4                  j7                  d
d      | _        d	| _        d	| _        |j8                  r0t=        j>                  d|j8                        \  }| _        | _        }n|j                  rd| _        |j                  rd| _        |j                  | _         tC        jD                  |jF                  |j                        | _$         ||jF                  |j                        | _%        | jH                  jL                  d   | _'        |jP                  g}| jJ                  jR                  dvr%|jU                  | jJ                  jR                         djW                  tY        d |            | _(        t[        |j\                  |j^                        | _0        |jb                  d	k(  rd| _2        nd|jb                  z  | _2        |jf                  | _3        d| jP                  d|j\                  dg| _4        tk               | _6        d| jl                  d<   |jn                  g| _7        tk               | _8        g | _9        g | _:        g | _;        g | _<        g | _=        g | _>        g | _?        g | _@        g | _A        g | _B        	 g | _C        g | _D        g | _E        g | _F        g | _G        g | _H        |jF                  dk7  r(| j                  jU                  d|jF                  z         dg| _I        g | _J        d| _K        g | _L        g | _M        t        | d      | _O        | j                  | _P        g | _Q        | j                   dvrd| j                   z  | jl                  d<   | j                  s| j0                  rd| j0                  z  | jl                  d<   | j0                  j?                  d      D ];  }|j                         }|d k(  rd!| jl                  d"<   (|d#vs-d$| jl                  d%<   = |j\                  j                  d&      d'k(  rK| jP                  j                  d(      d'k7  s| jP                  j                  d)      d'k7  rd*| jl                  d+<   t        j                  |      }d,|v | _W        | j                  r4|j                  d,       |j                  rd| _W        nd-| jp                  d.<   |D cg c]  }| j                  |       c}| _[        | j*                  d/v rd	| _\        n!d0| j*                   d1| j*                   | _\        |j                  r"| xj                  d|j                  z   z  c_\        |j                  rd2t        __        y |j                  }	|	'd3| j`                  j                  |	      z  t        __        t        |d4      rI|j                  d5k7  r9d6| j`                  j                  d   |j                  d5z
  fz  | jl                  d4<   y y y c c}w )7NFzXThe default for the setting "use_latex_citations" will change to "True" in Docutils 1.0.   
stacklevelTz[The default for the setting "legacy_column_widths" will change to "False" in Docutils 1.0.)zzThe configuration setting "use_verbatim_when_possible" will be removed in Docutils 2.0. Use "literal_block_env: verbatim".font_encodingr+   rE  rF  z	(\w+)(.*)verbatimr   )r   r+   r  z\usepackage{graphicx}z\usepackage[%s]{graphicx}z\documentclass[]{r=  z\usepackage{ifthen}__staticr   z  pdflang={%s},r  )asciiunicodeutf8z\usepackage[%s]{inputenc}	_inputencz\usepackage[%s]{fontenc}_fontencOT1z+\DeclareTextSymbol{\textquotedbl}{OT1}{`\"}_textquotedblOT1)r8   T2AT2BT2CT4T5z,\DeclareTextSymbolDefault{\textquotedbl}{T1}_textquotedblscrr
  DIVBCORz\usepackage{typearea}typeareadocutilsz!\usepackage{docutils}[2020/08/28]r3  )0falseFalser+   zcolorlinks=true,linkcolor=z
,urlcolor=z\setcounter{secnumdepth}{0}z\setcounter{secnumdepth}{%d}sectnum_startr  z\setcounter{%s}{%d})erS   rK   r[   r   r  warnerrorr`   r#   
use_bibtexwarningsFutureWarningr:   use_verbatim_when_possibleto_latex_encodingoutput_encodinglatex_encodingr0   r1   reference_label_reference_labelhyperlink_colorr4   r_   r#  r5   section_enumerator_separatorr  literal_block_envliteral_block_optionsresplitbibtexr   r  r   language_modulebabelauthor_separatorsauthor_separatordocumentoptionsr   r7   rr   filterrt  documentclassuse_part_sectiond_classgraphicx_optiongraphicx_packagedocutils_footnotesr<   r!  r=   r>   r?   r@   rB   rC   rA   rD   rE   rF   rG   rH   contexttitle_labelssubtitle_labelsauthor_stackdate	pdfauthorpdfinfo_section_number_enumeration_counters_max_enumeration_counters	_bibitemstable_stackr  active_tableout	out_stackis_xetexr,  findr
   get_stylesheet_listfallback_stylesheetremover9   stylesheet_callr-   hyperref_optionssectnum_xformr)  secnumdepthr;   r  hasattrr<  r  )rO   r[   babel_classr`   r*   	d_optionsencstylesheet_listpathrr  rV   s             rP   rK   zLaTeXTranslator.__init__  s&   " MM**22	]]++11
 $,#4#44''/8K8K+0H(MM C'A7 ((0,0H)MM E'A7 ..:MM5 !	- #44X5M5MN%33!)!;!;#+#?#?  ( 8 8'77$,$A$A!$XC33 	+ 1199#uE 	) "$%'"%% XXlH,F,FGT#'00%/D"'+D$))  )55h6L6L6>6G6G I !7!79J9JK
 $ 4 4 F Fq I--.	::o5TZZ001"xxtY(?@$X%;%;%-%>%>@ ##r)$<D!%A%-%=%=&>D! #+"="= "11%335 6 )N(>*%'667%
 "	 	H ! 	 !!T)LL 1(2H2H HI
 !"s &(" *+& !$4 99 &BB.J040C0C/DDk* }}!!1L151C1C2D!!*- ))//4 Iiik%<F %%&89 GGG %%o6I ""''."4%%**51R7((--f5;,DDj)
  33H=#-#@ ##"":...+0( 9 ~. (78#  //5 8 #>>$&D!&2262F2F1G H1151E1E0F&HD! $$!!S8+D+D%DD! !!'EL$"00K &3ll66{CD ( /2**a/*dll.C.CA.F.6.D.DQ.F.H H !!/2 0 3M8s   ^c                    t        |      }|j                  dv }| j                  j                  rw|r|j	                  d      }	 |j                  d      }| j                  j                  j                  |j                                |rd| d}d|j                          d	| S |r|j                  |j                  z  }d}nd}| j                  j                   r-|t#        j$                  | j                  j&                  |      z  S ||j                         z  S # t        $ rY}d| j                  dd      }| j                  j                  j                  |       d|j                  d	d
      z   cY d}~S d}~ww xY w)z8Return code to reference or embed stylesheet file `path`).styr+   rz  rX   rY   zCannot embed stylesheet:
 \\/z% rp   
% Nz\makeatletter
z
\makeatotherz% embedded stylesheet: z\usepackage{%s}z
\input{%s})r   suffixr`   r.   with_suffixrd   record_dependenciesaddas_posixOSErrorr  r[   r   r>  r  stemr,   r
   relative_path_destination)rO   rx  
is_packagecontenterrmsgcmds          rP   ro  zLaTeXTranslator.stylesheet_callr  sY   Dz[[L0
==))''/G..'.: 1155dmmoF-gYoF-dmmo->bi! " ;;*D$CC==((,,T]]-G-GNNNT]]_$$)  83C59AA&#N&&,,S1ckk$7778s   D 	E?&AE:4E?:E?c                     ddddddddd	d
ddddd}|j                         }|j                  d      d   }||v r||   S |j                  dd      j                  dd      S )zTranslate docutils encoding name into LaTeX's.

        Default method is remove "-" and "_" chars from docutils_encoding.
        latin1latin2latin3latin4iso88595latin5latin9maccyrcp1251koi8-rkoi8-ucp1250cp1252r'  )z
iso-8859-1z
iso-8859-2z
iso-8859-3z
iso-8859-4z
iso-8859-5z
iso-8859-9ziso-8859-15mac_cyrilliczwindows-1251r  r  zwindows-1250zwindows-1252zus-asciir4  r   rE  r+   r6   )r  rM  r  )rO   docutils_encodingr   rZ   s       rP   rC  z!LaTeXTranslator.to_latex_encoding  s    
 %$$$&$%&&  &&!8 %**,>>#&q)r>h<R(00b99rQ   c                 4    | j                   j                  |   S rJ   )rO  labels)rO   docutil_labels     rP   language_labelzLaTeXTranslator.language_label  s    ##**=99rQ   c                    | j                   r|S t        j                  j                         }| j                  s|j	                  t        j
                         | j                  r| j                  s|t        d      = | j                  dv rx| j                  sl| j                  r6d|t        d      <   | j                  | j                  d<   d|t        d      <   n*d|t        d      <   d	|t        d
      <   d|t        d      <   | j                  r3d|t        d      <   d| j                  j                  z  |t        d      <   | j                  s[| j                   j#                  d      s]|j	                  t        j$                         |j	                  t        j&                         |j	                  t        j(                         |j	                  t        j*                         |D ]  }t        |      }|t        j(                  v r*| j,                  st.        j(                  | j                  d<   J|t        j*                  v rd| j                  d<   l| j                   dk(  s||t        j$                  v sd|t        j$                  |   fz  | j                  dt1        |      z   <    |j3                  |      }| j                  s8d}| j                  r|dz  }|dz  D ]  }|j5                  ||z   |dz   |z         } | j6                  rV|j9                  d      }t;        |dd       D ]#  \  }}	|	j=                         r||xx   dz  cc<   % dj?                  |      }| j                  r| j                  s|j5                  dd      }|S ) aU  Return text with 'problematic' characters escaped.

        * Escape the special printing characters ``# $ % & ~ _ ^ \ { }``,
          square brackets ``[ ]``, double quotes and (in OT1) ``< | >``.
        * Translate non-supported Unicode characters.
        * Separate ``-`` (and more in literal text) to prevent input ligatures.
        rE  )r,  r+   z\underline{~}graphicxz\reflectbox{/}r;  z
\textbar{}r  z\textless{}<z\textgreater{}>rD   	r)  r8  z\usepackage{pifont}rr  z"\DeclareUnicodeCharacter{%04X}{%s}r*  r6   z,`'"<>r  z{}rp   Nr
  \\
z  z ~) r$  r:  rn  copyupdatero  inside_citation_reference_labelrm  r#  rj  literalrY  r=   insert_non_breaking_blanksr`   	tab_widthrE  
startswithrp  rq  r8  rr  rm  r)  strrn   r  insert_newlinerM  	enumeratelstriprr   )
rO   textr7  chcpseparate_charscharrs   r
  r0  s
             rP   encodezLaTeXTranslator.encode  s    ==K##%zzLL))*//

c#h,T]]|| #3c#h 150E0E!!*-#4c$i  #0c#h"0c#h"3c#h**!E#c(O  #T]]%<%<<E#d)}}&&11&9X99:X<<=X../LL) BW***43K3K4@4I4ID%%j18??*2HD%%h/))V3 < <<=x;;B?@A %%k#b'&9:B ~~e$ }} N ||)+&* E ||D4Kt1CDE JJt$E %U3BZ0 $4{{}!HOH$ !&&u-D<< ? ?<<d+DrQ   z[
	]c                 D    | j                  |j                  d|            S )z1Cleanse, encode, and return attribute value text.r  )r  sub)rO   r  
whitespaces      rP   attvalzLaTeXTranslator.attval  s     {{:>>#t455rQ   c                 J    t        |j                  t        j                        S )z@Check whether a node represents an inline or block-level element)
isinstancer  r   TextElementr  s     rP   	is_inlinezLaTeXTranslator.is_inline!  s    $++u'8'899rQ   c                 l    | j                   j                  dj                  d |d   D                     y)z)Append hypertargets for all ids of `node`%
c              3   &   K   | ]	  }d |z    yw)z"\raisebox{1em}{\hypertarget{%s}{}}Nr'  )r  r   s     rP   r  z6LaTeXTranslator.append_hypertargets.<locals>.<genexpr>)  s!      #=*, $J#%$& #=s   idsN)rh  r7   rr   r  s     rP   append_hypertargetsz#LaTeXTranslator.append_hypertargets%  s0     	

 #=04U#= = 	>rQ   c                     |rdnd}|d   D cg c]
  }|d|z  z    }}|r|r|j                  dd       |r|r|j                  d       |S c c}w )a  Return list of label definitions for all ids of `node`

        If `set_anchor` is True, an anchor is set with \phantomsection.
        If `protect` is True, the \label cmd is made robust.
        If `newline` is True, a newline is added if there are labels.
        z\protectr+   r  z
\label{%s}r   z\phantomsectionrp   )r  r7   )rO   r  
set_anchorprotectnewlineprefixr   r  s           rP   ids_to_labelszLaTeXTranslator.ids_to_labels,  s^     !(R8<UD"&=2--DD&MM!/0vMM$ Es   Ac                     |d   D cg c]  }|j                  d      s| }}|r@|d   j                  dd      |d<   |d   D cg c]  }|j                  d      s| c}|d<   yyc c}w c c}w )z8Convert ``align-*`` class arguments into alignment args.r  zalign-r
  r+   r  N)r  r  )rO   r  r  r  s       rP   set_align_from_classesz&LaTeXTranslator.set_align_from_classes<  s     !%YL3>>(3KLL!"I--h;DM.29o @s&)nnX&>  # @DO  M@s   A(A(A-c                     |j                  d|      }|dk(  r| j                  j                  d       y |dk(  r| j                  j                  d       y |dk(  r| j                  j                  d       y y )Nr  r  z\raggedright
r  z\centering
r  z\raggedleft
)r  rh  r7   )rO   r  r   r  s       rP   insert_align_declarationz(LaTeXTranslator.insert_align_declarationE  s`    '*F?HHOO-.hHHOOO,gHHOO,- rQ   c                 Z   t        |j                  t        j                        s| j                  j                  d       |d   D ]  }|j                  d      rY| j                  j                  |dd       }|s5d| j                  j                  |<   | j                  j                  d|z         mt        |t        j                        r|t        j                  dgz   v r| j                  st        j                  | j                   d	<   | j                  j                  d
|z          y)z6Open a group and insert declarations for class values.rp   r  	language-	   NTz\begin{selectlanguage}{%s}
r  DUclassz\begin{DUclass}{%s}
)r  r  r   compoundrh  r7   r  rP  r   r   r7  r   r{   rm  r)  duclassr?   rO   r  r  r   s       rP   duclass_openzLaTeXTranslator.duclass_openN  s    $++u~~6HHOOD!	? 	@C~~k*::33CG<:>DJJ--h7HHOO$Ch$NOT5;;/V66:K9LLL//0<0D0DDNN9- 83 >?	@rQ   c                    t        |d         D ]  }|j                  d      r=| j                  j                  |dd       }|s5| j                  j                  d       Qt        |t        j                        r|t        j                  dgz   v r| j                  st        j                  | j                  d<   | j                  j                  d        y)	z$Close a group of class declarations.r  r  r  Nz\end{selectlanguage}
r  r  \end{DUclass}
)reversedr  rP  r   rh  r7   r  r   r7  r   r{   rm  r)  r  r?   r  s       rP   duclass_closezLaTeXTranslator.duclass_close`  s    DO, 	4C~~k*::33CG<HHOO$=>T5;;/V66:K9LLL//0<0D0DDNN9- 23	4rQ   c                 \    | j                   j                  | j                         || _        y rJ   )ri  r7   rh  )rO   new_outs     rP   push_output_collectorz%LaTeXTranslator.push_output_collectoro  s    dhh'rQ   c                 B    | j                   j                         | _        y rJ   )ri  r  rh  rN   s    rP   pop_output_collectorz$LaTeXTranslator.pop_output_collectors  s    >>%%'rQ   c                    |D ]=  }t        |t        j                  t        j                  t        j                  f      r= n yt        |t        j
                  t        j                  f      r| j                  |      S t        |t        j                        ryt        |t        j                  t        j                  f      syy)aD  
        Return LaTeX code required between term or field name and content.

        In a LaTeX "description" environment (used for definition
        lists and non-docinfo field lists), a ``\leavevmode``
        between an item's label and content ensures the correct
        placement of certain block constructs.
        r+   z\leavevmode
\leavevmode)r  r   	Invisiblefootnotecitation	containerr  term_postfiximagery  
math_block)rO   r  childs      rP   r  zLaTeXTranslator.term_postfixv  s      	Eeeoou~~&+nn&6 7	
 eeoou~~>?$$U++eU[[)#%%//53C3C!DE!rQ   c                 t    | j                   j                  | j                  |j                                      y rJ   )rh  r7   r  astextr  s     rP   
visit_TextzLaTeXTranslator.visit_Text  s!    DKKM23rQ   c                      y rJ   r'  r  s     rP   depart_TextzLaTeXTranslator.depart_Text      rQ   c                 P    |d   j                  dd       | j                  |       y )Nr  r   abbreviationr  visit_inliner  s     rP   visit_abbreviationz"LaTeXTranslator.visit_abbreviation  s$    Yq.1$rQ   c                 &    | j                  |       y rJ   depart_inliner  s     rP   depart_abbreviationz#LaTeXTranslator.depart_abbreviation      4 rQ   c                 P    |d   j                  dd       | j                  |       y )Nr  r   acronymr  r  s     rP   visit_acronymzLaTeXTranslator.visit_acronym  s$    Yq),$rQ   c                 &    | j                  |       y rJ   r  r  s     rP   depart_acronymzLaTeXTranslator.depart_acronym  r  rQ   c                 (    | j                  |d       y )Naddressvisit_docinfo_itemr  s     rP   visit_addresszLaTeXTranslator.visit_address      i0rQ   c                 &    | j                  |       y rJ   depart_docinfo_itemr  s     rP   depart_addresszLaTeXTranslator.depart_address        &rQ   c                 ^   |d   D cg c]	  }|dk7  r| c}|d<   | j                   j                  rrt        j                  | j                  d<   d|d   v rt        j
                  | j                  d<   | j                  j                  ddj                  |d         z         y | j                  st        j                  | j                  d<   d|d   v r)| j                  st        j                  | j                  d<   | j                  |       | j                  j                  d       y c c}w )Nr  
admonitionr>  z
\DUadmonition[%s]{r  z\begin{DUadmonition})r`   r9   r)  admonition_legacyr?   error_legacyrh  r7   rr   rm  r  r>  r  )rO   r  r  s      rP   visit_admonitionz LaTeXTranslator.visit_admonition  s    *.y/ 33!\1  3Y==//+7+I+IDNN<($y/)*6*C*Cw'HHOO3CHHT)_4MMN''+7+B+BDNN<(d9o%d.F.F&2&8&8DNN7#$/03s   D*c                     | j                   j                  r| j                  j                  d       y | j                  j                  d       | j	                  |       y )N}
z\end{DUadmonition}
)r`   r9   rh  r7   r  r  s     rP   depart_admonitionz!LaTeXTranslator.depart_admonition  sA    ==//HHOOE"/04 rQ   c                     | j                   j                  | j                  |j                                      | j	                  |d       y )Nauthor)r`  r7   r  r  r  r  s     rP   visit_authorzLaTeXTranslator.visit_author  s3    dkk$++-89h/rQ   c                 &    | j                  |       y rJ   r  r  s     rP   depart_authorzLaTeXTranslator.depart_author  r	  rQ   c                      y rJ   r'  r  s     rP   visit_authorszLaTeXTranslator.visit_authors      rQ   c                      y rJ   r'  r  s     rP   depart_authorszLaTeXTranslator.depart_authors  r  rQ   c                 \    | j                  |       | j                  j                  d       y )Nz\begin{quote}r  rh  r7   r  s     rP   visit_block_quotez!LaTeXTranslator.visit_block_quote  s!    $()rQ   c                 \    | j                   j                  d       | j                  |       y )Nz\end{quote}
rh  r7   r  r  s     rP   depart_block_quotez"LaTeXTranslator.depart_block_quote  s!    ()4 rQ   c                 \    | j                  |       | j                  j                  d       y )Nz\begin{itemize}r  r  s     rP   visit_bullet_listz!LaTeXTranslator.visit_bullet_list  s!    $*+rQ   c                 \    | j                   j                  d       | j                  |       y )Nz\end{itemize}
r   r  s     rP   depart_bullet_listz"LaTeXTranslator.depart_bullet_list  s!    *+4 rQ   c                 \    | j                   j                  d       | j                  |       y )N\textsuperscript{rh  r7   r  r  s     rP   visit_superscriptz!LaTeXTranslator.visit_superscript  s!    ,-$rQ   c                 \    | j                  |       | j                  j                  d       y Nr=  r  rh  r7   r  s     rP   depart_superscriptz"LaTeXTranslator.depart_superscript       4 rQ   c                 \    | j                   j                  d       | j                  |       y )Nz\textsubscript{r(  r  s     rP   visit_subscriptzLaTeXTranslator.visit_subscript  s!    *+$rQ   c                 \    | j                  |       | j                  j                  d       y r+  r,  r  s     rP   depart_subscriptz LaTeXTranslator.depart_subscript  r.  rQ   c                 :    | j                   j                  d       y )Nz

\caption{rh  r7   r  s     rP   visit_captionzLaTeXTranslator.visit_caption  s    'rQ   c                 :    | j                   j                  d       y Nr  r4  r  s     rP   depart_captionzLaTeXTranslator.depart_caption      rQ   c                     | j                   st        j                  | j                  d<   | j                  j                  d       | j                  |       y )Ntitlereferencez\DUroletitlereference{)rm  r)  r;  r?   rh  r7   r  r  s     rP   visit_title_referencez%LaTeXTranslator.visit_title_reference  s?    ''/;/J/JDNN+,12$rQ   c                 \    | j                  |       | j                  j                  d       y r+  r,  r  s     rP   depart_title_referencez&LaTeXTranslator.depart_title_reference  r.  rQ   c                     | j                   r| j                  g        y | j                  j                  d       | j	                  |       y )Nz\begin{figure}[b])r#   r  rh  r7   r  r  s     rP   visit_citationzLaTeXTranslator.visit_citation   s:    ##&&r* HHOO01$$T*rQ   c                    | j                   r[| j                  d   }dj                  | j                  dd        }| j                  j	                  ||g       | j                          y | j                  j	                  d       y )Nr   r+   r  \end{figure}
)r#   rh  rr   re  r7   r  )rO   r  labelr  s       rP   depart_citationzLaTeXTranslator.depart_citation  sc    ##HHQKE77488AB<(DNN!!5$-0%%'HHOO-.rQ   c                    | j                   r*| j                  j                  |j                         g       | j                  rU| j
                  s#| j                  j                  d       d| _        y | j                  d   dv sJ d       | j                  d= y d}d|v r|d   }n d|v r| j                  j                  |d      }| j                  j                  d	|z         y )
Nz\cite{r  r
  r  rp   z2unexpected non-whitespace while in reference labelr+   refidrefname\hyperlink{%s}{[)	rN  re  r7   r  r#   r  rh  r[   nameids)rO   r  hrefs      rP   visit_citation_referencez(LaTeXTranslator.visit_citation_reference  s    ;;NN!!4;;=/2##77	*784xx|{2 MLM2HHRLD$G}d"}},,T)_=HHOO/$67rQ   c                    | j                   rd}|j                  dd      }t        |t        j                        rA|j                         dv r/|j                  dd      }t        |t        j                        rd}|r| j                  j                  d       y | j                  j                  d       d| _	        y | j                  j                  d       y )NFTdescendsiblingsrF  r  r=  ]})
r#   	next_noder  r   Textr  citation_referencerh  r7   r  )rO   r  followup_citationsiblingsibling2s        rP   depart_citation_referencez)LaTeXTranslator.depart_citation_reference%  s    ## %nnUTnBG7EJJ/NN$3",,UT,Jh(@(@A(,% $$7<4HHOOD!rQ   c                 :    | j                   j                  d       y )Nz	(\textbf{r4  r  s     rP   visit_classifierz LaTeXTranslator.visit_classifier8  s    %rQ   c                 :    | j                   j                  d       y )Nz})r4  r  s     rP   depart_classifierz!LaTeXTranslator.depart_classifier;      rQ   c                 :    | j                   j                  |       y rJ   )rg  r  r  s     rP   r  zLaTeXTranslator.visit_colspec>  s    ''-rQ   c                      y rJ   r'  r  s     rP   depart_colspeczLaTeXTranslator.depart_colspecA  r  rQ   c                    t        |j                  t        j                        s| j                  j                  d       | j                  j                  d|j                         j                  dd      z         t        j                  )Nrp   z%% %s
r}  )	r  r  r   r  rh  r7   r  r  SkipNoder  s     rP   visit_commentzLaTeXTranslator.visit_commentD  sV    $++u~~6HHOOD!	DKKM$9$9$$GGHnnrQ   c                      y rJ   r'  r  s     rP   depart_commentzLaTeXTranslator.depart_commentK  r  rQ   c                     t        |j                  t        j                        r| j                  j                  d       |d   j                  dd       | j                  |       y )Nrp   r  r   r  )r  r  r   r  rh  r7   r  r  r  s     rP   visit_compoundzLaTeXTranslator.visit_compoundN  sF    dkk5>>2HHOOD!Yq*-$rQ   c                 &    | j                  |       y rJ   r  r  s     rP   depart_compoundzLaTeXTranslator.depart_compoundT  r  rQ   c                 (    | j                  |d       y )Ncontactr  r  s     rP   visit_contactzLaTeXTranslator.visit_contactW  r  rQ   c                 &    | j                  |       y rJ   r  r  s     rP   depart_contactzLaTeXTranslator.depart_contactZ  r	  rQ   c                 &    | j                  |       y rJ   )r  r  s     rP   visit_containerzLaTeXTranslator.visit_container]  s    $rQ   c                 &    | j                  |       y rJ   ri  r  s     rP   depart_containerz LaTeXTranslator.depart_container`  r  rQ   c                 (    | j                  |d       y )N	copyrightr  r  s     rP   visit_copyrightzLaTeXTranslator.visit_copyrightc  s    k2rQ   c                 &    | j                  |       y rJ   r  r  s     rP   depart_copyrightz LaTeXTranslator.depart_copyrightf  r	  rQ   c                 (    | j                  |d       y )Nr_  r  r  s     rP   
visit_datezLaTeXTranslator.visit_datei  s    f-rQ   c                 &    | j                  |       y rJ   r  r  s     rP   depart_datezLaTeXTranslator.depart_datel  r	  rQ   c                      y rJ   r'  r  s     rP   visit_decorationz LaTeXTranslator.visit_decorationo  r  rQ   c                      y rJ   r'  r  s     rP   depart_decorationz!LaTeXTranslator.depart_decorations  r  rQ   c                      y rJ   r'  r  s     rP   visit_definitionz LaTeXTranslator.visit_definitionv  r  rQ   c                 :    | j                   j                  d       y Nrp   r4  r  s     rP   depart_definitionz!LaTeXTranslator.depart_definitiony  r]  rQ   c                 \    | j                  |       | j                  j                  d       y )Nz\begin{description}
r  r  s     rP   visit_definition_listz%LaTeXTranslator.visit_definition_list|  s!    $01rQ   c                 \    | j                   j                  d       | j                  |       y )Nz\end{description}
r   r  s     rP   depart_definition_listz&LaTeXTranslator.depart_definition_list  !    ./4 rQ   c                      y rJ   r'  r  s     rP   visit_definition_list_itemz*LaTeXTranslator.visit_definition_list_item  r  rQ   c                      y rJ   r'  r  s     rP   depart_definition_list_itemz+LaTeXTranslator.depart_definition_list_item  r  rQ   c                 :    | j                   j                  d       y )Nr  r4  r  s     rP   visit_descriptionz!LaTeXTranslator.visit_description  s    rQ   c                      y rJ   r'  r  s     rP   depart_descriptionz"LaTeXTranslator.depart_description  r  rQ   c                 :    | j                  | j                         y rJ   )r  rE   r  s     rP   visit_docinfozLaTeXTranslator.visit_docinfo  s    ""4<<0rQ   c                 V   | j                          | j                  rd| j                  d<   | j                  s:t        j
                  | j                  d<   t        j                  | j                  d<   | j                  j                  dd       | j                  j                  d       y y )Nz\usepackage{tabularx}tabularx_providelengthrE   r   z@
% Docinfo
\begin{center}
\begin{tabularx}{\DUdocinfowidth}{lX}
z\end{tabularx}
\end{center}
)	r  rE   r=   rm  r)  providelengthr?   r  r7   r  s     rP   depart_docinfozLaTeXTranslator.depart_docinfo  s    !!#<<,DDj)++3?3M3M/0,8,@,@y)LL $L M LL !2 3 rQ   c                 ,   | j                   r|dv r|dk(  s| j                  s| j                  j                  g        |dk(  r.d| _        | j	                  |j                               }d| _        n| j                  |j                               }| j                  d   j                  |       t        j                  |dk(  rH| j                  j                  | j                  |j                                      t        j                  | j                  j                  d| j                  |      z         |dk(  r>d| _        | j                  j                  d	       | j                  j                  d
       y | j                  j                  d       y )N)r  organizationrl  r   r  r   TFr
  r_  z\textbf{%s}: &
	z{\raggedright
z } \\
r  )r1   r^  r7   r  r  r  r  r   rb  r_  rh  r  r[  )rO   r  namer  s       rP   r  z"LaTeXTranslator.visit_docinfo_item  s5   !!GG 8#4+<+<%%,,R09$*.D';;t{{}5D*/D';;t{{}5D!!"%,,T2nn$		  T[[]!;<nn$-0C0CD0IIJ9"&DHHOO./LL,LL	*rQ   c                 x    | j                   j                  | j                  j                                d| _        y r  )rh  r7   r[  r  r  r  s     rP   r  z#LaTeXTranslator.depart_docinfo_item  s'    ((*+#rQ   c                 &    | j                  |       y rJ   )visit_literal_blockr  s     rP   visit_doctest_blockz#LaTeXTranslator.visit_doctest_block  r	  rQ   c                 &    | j                  |       y rJ   )depart_literal_blockr  s     rP   depart_doctest_blockz$LaTeXTranslator.depart_doctest_block  s    !!$'rQ   c                     | j                   s(t        |      r_t        |d   t        j                        rA| j
                  j                  dk(  }| xj                  | j                  |d|      z  c_        y y y )Nr   r|  Fr  r  )	r1   r  r  r   rB   r`   rU  r\  r  rO   r  r  s      rP   visit_documentzLaTeXTranslator.visit_document  sm    ""c$i47EKK0}}22h>G!3!3DU<C "4 "E E 1 '0rQ   c                    | j                   j                  s| j                   j                  dvr| j                         | j                  d<   | j                  j	                         | _        | j
                  j	                         | _        | j                  j                  t        j                  | j                  z         | j                  rC| j                  j                  | j                        }| j                  j                  d|z         | j                  r'| xj                  dg| j                  z   dgz   z  c_        | j                  s$| j                   r(| j"                  s| j$                  r| j'                          | j(                  r| j+                          d| j                  v r)| j,                  s| j.                  j                  d       y y y )N)r+   r   rP  z  pdfauthor={%s}z\hypersetup{r=  minitocz'
\faketableofcontents % for local ToCs
)rP  r   r   r=   r&  r?   r@   r7   r)  linkingrp  r`  rR  rr   ra  rB   r1   r^  r_  
make_titlere  append_bibliogaphyhas_latex_tocrh  )rO   r  authorss      rP   depart_documentzLaTeXTranslator.depart_document  sS    JJ%%zz""/9)-Dg& --::<446\11D4I4IIJ>>++00@GLL 2W <=<<MMo.=EEM::$00#00DIIOO>>##%)))$2D2DHHOOHI 3E)rQ   c                    dj                  | j                        g}| j                  r|| j                  z  }| j                  r0|dddj                  | j                        z  g| j                  z   z  }| j
                  j                  ddj                  |      z         | j                  D cg c]  }dj                  |       }}| j
                  j                  ddj                  |      z         | j
                  j                  d	d
j                  | j                        z         | j                  j                  d       y c c}w )Nr+   r{  z\DUdocumentsubtitle{%s}z
\title{%s}%
  r  z\author{%s}z \and
z	\date{%s}, z\maketitle
)
rr   rB   r\  rC   r]  rA   r7   r^  r_  rD   )rO   	title_argauthor_entry
author_args       rP   r  zLaTeXTranslator.make_title  s!    WWTZZ()	::***I==%4rwwt}}7MM"223 3I 	mgll9.EEF +/*;*;=& mmL1 =
 =n(ooj9: 	; 	lTYYtyy-AAB 	$$_5=s   /E	c           
      |   | j                   rf| j                  j                  d| j                   d   z         | j                  j                  ddj                  | j                   dd        z         y | j                  rd}| j
                  D ]"  }t        |      t        |d         k  s|d   }$ | j                  j                  d|z         | j
                  D ]B  }|d   j                  dd	      }| j                  j                  d
|d   d|d|d   d       D | j                  j                  d       y y )Nz
\bibliographystyle{%s}
r   z\bibliography{%s}
r  r  r+   z
\begin{thebibliography}{%s}
rF  rE  z	\bibitem[r%  }{r  z\end{thebibliography}
)rN  rh  r7   rr   r#   re  r  r  )rO   widest_labelbibitemcite_keys       rP   r  z"LaTeXTranslator.append_bibliogaphy
  s    ;;HHOO9DKKNJKHHOO2SXXdkk!"o5NNO%%L>> .|$s71:6#*1:L. HHOO>() *>> D"1:--eS9!(Xwqz!C DD
 HHOO67 &rQ   c                 \    | j                   j                  d       | j                  |       y )Nz\emph{r(  r  s     rP   visit_emphasiszLaTeXTranslator.visit_emphasis   s     	"$rQ   c                 \    | j                  |       | j                  j                  d       y r+  r,  r  s     rP   depart_emphasiszLaTeXTranslator.depart_emphasis$  r.  rQ   c                 >   | j                   j                  | j                   j                               rj| j                  j	                  d       | j                   j                          | j                   j                  | j                   j                               riy y )N & )rg  r  r  rh  r7   r  rN   s    rP   (insert_additional_table_colum_delimitersz8LaTeXTranslator.insert_additional_table_colum_delimiters*  st    ++ $ 1 1 B B DFHHOOE"))+ ++ $ 1 1 B B DFrQ   c           	         | j                   j                         dk(  r| j                          n| j                  j	                  d       d|v rd|v rt        d      d|v rd| j                  d<   |d   dz   }| j                   j                  | j                   j                         |       | j                  j	                  d	|| j                   j                         fz         | j                  j	                  d
       nd|v r| j                   j                         dk(  r| j                   j                         }nd}|d   dz   }| j                  j	                  d||| j                   j                  | j                   j                         |      | j                   j                         fz         | j                  j	                  d
       n| j                  j	                  d       t        |      rt        |j                  j                  t        j                         s| j                   j#                         r7| j                  j	                  d       | j                  j	                  d
       n| j                  j	                  d       | j                   j$                  sI| j                  d   j'                  d      r+|j)                         r| j                  j	                  d       | j                   j+                          y )Nr   r  morerowsmorecolszWCells that span multiple rows *and* columns currently not supported by the LaTeX writerz\usepackage{multirow}multirowr  z\multirow{%d}{%s}{r=  r+   z\multicolumn{%d}{%s%s%s}{\textbf{r
  r<  rA  )rg  r  r  rh  r7   NotImplementedErrorr=   r  r  r[  r  r  r  r  r  r   theadr  r  endswithr  r  )rO   r  mrowsbar1mcolss        rP   r  zLaTeXTranslator.visit_entry0  su   --/1499;HHOOE" *"4% '< = = ,DDj)$q(E)) -->>@%IHHOO1"D$5$5$F$F$HIJ KLL$4   113q8((99;$q(EHHOO8"!!..DD!%!2!2!C!C!EuN!..??A	CC D LL$LL# t9*T[[%7%7E!..==?HHOOK(LL$LL# !!00%%c*HHOOC %%'rQ   c                     | j                   j                  | j                  j                                | j                   j                  | j                  j                                | j	                          y rJ   )rh  r7   r[  r  r  r  s     rP   depart_entryzLaTeXTranslator.depart_entryj  sH    ((*+((*+557rQ   c                 8    | j                   j                          y rJ   )rg  r  r  s     rP   r  zLaTeXTranslator.visit_rowp  s    ##%rQ   c                 j    | j                   j                  | j                  j                                y rJ   )rh  r  rg  r  r  s     rP   r  zLaTeXTranslator.depart_rows  s!    ))4467rQ   c                 f   ddddddd}g d}d}| j                   r~| j                  rT| j                  rH| j                  s<d	j	                  d
 | j
                  d | j                   D              | j                  z   }| j                  r|| j                  d   z  }||j                  dd      z  }||j                  dd         }|j                  dd	      }t        | j                        dz   }dt        j                  |      j                         z   }|d|d|d|}	| j                  j                  |	       | j                  |       |dk  rL| j                  j                  d       |||f||dz
     k7  r| j                  j                  d|d|	d       nid|z  | j                  |<   | j                  j                  d       | j                  j                  d|	z         | j                  j                  d|z         d|v r'| j                  j                  d||d   dz
  fz         y y )Nr+   r   alphAlphromanRoman)r+   r   
loweralpha
upperalpha
lowerroman
upperroman))r+   r   r/   )(r  ))r+   r  r/   )r+   r  r/   r/   c              3   2   K   | ]  }t        |        y wrJ   )r  )r  ns     rP   r  z8LaTeXTranslator.visit_enumerated_list.<locals>.<genexpr>  s      "$Q#a& "$   r
  r  enumtyper~  r  enumr;  r<  r=     z\begin{enumerate}z
\renewcommand{\labelr  z\newcounter{%s}z\begin{list}z{%s}z{\usecounter{%s}}r  z
\setcounter{%s}{%d})r4   r5   section_levelrc  rr   rb  rI  r  r  r  toRomanr  r7   r  rh  r?   )
rO   r  typesdefault_labelsr  r  r~  
enum_levelcounter_namerC  s
             rP   visit_enumerated_listz%LaTeXTranslator.visit_enumerated_listv  s   #%%&&(0 $$338J8J22 "$"&"6"67J8J8J"K"$ $&*&G&GH ))$44R88$((8R((*h78(C(334Q6
j 9 ? ? AA"((L&I""))%0$?HHOO01&)^JqL-II!-u!6 7 ,>+LDNN<(HHOOO,HHOOFUN+HHOO0<?@d?HHOO4)4=?;< = rQ   c                     t        | j                        dk  r| j                  j                  d       n| j                  j                  d       | j	                  |       | j                  j                          y )Nr  z\end{enumerate}
z\end{list}
)r  rc  rh  r7   r  r  r  s     rP   depart_enumerated_listz&LaTeXTranslator.depart_enumerated_list  sV    t))*a/HHOO01HHOOO,4 ""&&(rQ   c                      y rJ   r'  r  s     rP   visit_fieldzLaTeXTranslator.visit_field  r  rQ   c                      y rJ   r'  r  s     rP   depart_fieldzLaTeXTranslator.depart_field  r  rQ   c                     t        |j                  j                  t        j                        s+| j                  j                  | j                  |             y y rJ   )r  r  r   rE   rh  r7   r  r  s     rP   visit_field_bodyz LaTeXTranslator.visit_field_body  s:    $++,,emm<HHOOD--d34 =rQ   c                 l    | j                   | j                  u r| j                   j                  d       y y )Nr  rh  rE   r7   r  s     rP   depart_field_bodyz!LaTeXTranslator.depart_field_body  s'    88t||#HHOOJ' $rQ   c                     | j                  |       | j                  | j                  urE| j                  st        j
                  | j                  d<   | j                  j                  d       y y )N	fieldlistz\begin{DUfieldlist})r  rh  rE   rm  r)  r  r?   r7   r  s     rP   visit_field_listz LaTeXTranslator.visit_field_list  sS    $884<<'++.:.D.D{+HHOO23 (rQ   c                     | j                   | j                  ur| j                   j                  d       | j                  |       y )Nz\end{DUfieldlist}
)rh  rE   r7   r  r  s     rP   depart_field_listz!LaTeXTranslator.depart_field_list  s1    884<<'HHOO234 rQ   c                     | j                   | j                  u r| j                   j                  d       y | j                   j                  d       y )Nr  z
\item[{r  r  s     rP   visit_field_namez LaTeXTranslator.visit_field_name  s4    88t||#HHOOK( HHOOL)rQ   c                     | j                   | j                  u r| j                   j                  d       y | j                   j                  d       y )Nz}: &z:}]r  r  s     rP   depart_field_namez!LaTeXTranslator.depart_field_name  s2    88t||#HHOOF#HHOOE"rQ   c                 b   t         j                  | j                  d<   | j                  |       |j                  j                  dd      }|dk7  r| j                  j                  d|z         n| j                  j                  d       | xj                  | j                  |d      z  c_        y )Nr6  r  r  z\begin{figure} %% align = "%s"
z\begin{figure}
Tr  )	r)  r6  r=   r  r  r  rh  r7   r  )rO   r  	alignments      rP   visit_figurezLaTeXTranslator.visit_figure  s    %1%7%7'"$ OO'':	  HHOO?)KLHHOO/0D&&tT&::rQ   c                 \    | j                   j                  d       | j                  |       y )NrB  r   r  s     rP   depart_figurezLaTeXTranslator.depart_figure  s!    )*4 rQ   c                 \    | j                  g        | j                  j                  d       y )Nz\newcommand{\DUfooter}{r  rh  r7   r  s     rP   visit_footerzLaTeXTranslator.visit_footer  !    ""2&23rQ   c                     | j                   j                  d       dj                  | j                         | j                  d<   | j	                          y )Nr=  r+   z~footerrh  r7   rr   r=   r  r  s     rP   depart_footerzLaTeXTranslator.depart_footer  ;    ')wwtxx'8)$!!#rQ   c           
      x   	 |d   d   }| j                  r| j                  st        j                  | j
                  d<   |d   j                         }| j                  j                  dk(  rd|z  }| j                  j                  d|d   d   d|d| j                  |      d       |d   |d	   k(  r$| xj                  | j                  |      z  c_	        t        |      d
kD  r:t        |d
   t        j                         r| j                  j                  d       y y y y # t         $ r |d   d   }Y .w xY w)Nbackrefsr   r  	footnotesr   [%s]z%
\DUfootnotetext{r  namesr  rA  )r  rZ  rm  r)  r  r?   r  r`   footnote_referencesrh  r7   r  r  r  r  r   ry  )rO   r  backrefnums       rP   visit_footnotezLaTeXTranslator.visit_footnote  s   	%:&q)G ""++.:.D.D{+q'.."C}}00J>slHHOO!%[^Wdkk#6FH IE{d7m+D..t444y1}DGU__!E$ "F} #  	%5k!nG	%s   D$ $D98D9c                 :    | j                   j                  d       y r7  r4  r  s     rP   depart_footnotezLaTeXTranslator.depart_footnote	  r9  rQ   c                     d}d|v r|d   }n d|v r| j                   j                  |d      }| j                  j                  }|dk(  rK| j	                  |       | j
                  j                  d|z         | j                  j                  d       y | j                  st        j                  | j                  d<   | j
                  j                  d|d	   d
   d|d       | j                  j                  d       y )Nr+   rG  rH  r   rI  rQ  r  z\DUfootnotemark{r  r   r  r=  )r[   rJ  r`   r  r  rh  r7   r[  rm  r)  r  r?   )rO   r  rK  formats       rP   visit_footnote_referencez(LaTeXTranslator.visit_footnote_reference	  s    d?=D$==((i9D 22Z$$T*HHOO/$67LL%++.:.D.D{+HHOO!%[^T3 4LL$rQ   c                 j    | j                   j                  | j                  j                                y rJ   rh  r7   r[  r  r  s     rP   depart_footnote_referencez)LaTeXTranslator.depart_footnote_reference&	  s    ((*+rQ   c                    t        |j                  t        j                        rt        j                  t        |j                  t        j
                        sJ | j                  s| j                  j                  |       y y rJ   )	r  r  r   r  rb  r  r#   rh  r7   )rO   r  bracketr   s       rP   label_delimzLaTeXTranslator.label_delim*	  sT    dkk5>>2.. dkk5>>:::++( ,rQ   c                 *    | j                  |dd       y)z9footnote or citation label: in brackets or as superscriptrI  r'  Nr  r  s     rP   visit_labelzLaTeXTranslator.visit_label2	  s    s$89rQ   c                 *    | j                  |dd       y )NrJ  r=  r   r  s     rP   depart_labelzLaTeXTranslator.depart_label6	  s    sC(rQ   c                      y rJ   r'  r  s     rP   visit_generatedzLaTeXTranslator.visit_generated:	  r  rQ   c                      y rJ   r'  r  s     rP   depart_generatedz LaTeXTranslator.depart_generated=	  r  rQ   c                 \    | j                  g        | j                  j                  d       y )Nz\newcommand{\DUheader}{r  r  s     rP   visit_headerzLaTeXTranslator.visit_header@	  r  rQ   c                     | j                   j                  d       dj                  | j                         | j                  d<   | j	                          y )Nr=  r+   z~headerr  r  s     rP   depart_headerzLaTeXTranslator.depart_headerD	  r
  rQ   c                    |t        j                  dt        d       t        j                  d|      }|s|S |j                         dd \  }}|dv rd|z  }|S |dk(  rd	t        |      d
z  z  }|S | j                  rB|dk(  r=| j                  st        j                  | j                  d<   d| j                  d<   d|z  }|S )z=Convert `length_str` with rst length to LaTeX length
        Nz|The optional argument `pxunit` of LaTeXTranslator.to_latex_length() is ignored and will be removed in Docutils 0.21 or laterr  r!  z(\d*\.?\d*)\s*(\S*))r+   r   z%sbprA  z%.3f\linewidth      Y@pxr  z$
\DUprovidelength{\pdfpxdimen}{1bp}
z%s\pdfpxdimen)r@  r=  DeprecationWarningrL  matchgroupsr6  rj  rm  r)  r  r?   )rO   
length_strpxunitr0  r  units         rP   to_latex_lengthzLaTeXTranslator.to_latex_lengthI	  s     MM@ #q	2
 /<llnRa(t:%J  S[*eEl5.@AJ  ]]tt| ++3?3M3M/0#MDNN4 )E1JrQ   c                    | j                   | j                  d<   |j                  }t        |d         j	                  dd      }d|vr:t        |j                  t        j                        rd|d<   | j                  |       g }g }g }ddd	d
ddd}d|v r1	 ||d      }|j                  |d          |j                  |d          d|v r&|j                  d| j                  |d         z         d|v r|j                  d|d   dz  z         d|v r&|j                  d| j                  |d         z         | j                  |      sEt        |j                  t        j                  t        j                  f      s|j                  d       | j                  |      s5t        |j                  t        j                        s|j                  d       |j                          | j                   j#                  |       d}	|rddj%                  |      z  }	| j                   j                  d|	d|d       | j                   j#                  |       y # t        $ r Y w xY w)Nr  urir;  r|  r  r  r+   r+   )z\raisebox{-0.5\height}{r=  )z\raisebox{-\height}{r=  )z!\noindent\makebox[\linewidth][c]{r=  )z
\noindent{z\hfill})z\noindent{\hfillr=  )bottommiddletopr  r  r  r   r  heightz	height=%sscalezscale=%fr-  r  zwidth=%srp   r+   r  r  z\includegraphicsr<  r=  )rY  r=   r  r   r  r  r  r   figurer  r7   r  r5  r  r  r  rh  r  rr   )
rO   r  attrs	imagepathprepostinclude_graphics_optionsalign_codes
align_codeoptionss
             rP   visit_imagezLaTeXTranslator.visit_imagef	  s%   (,(=(=*% u.66tSA	%$++u||4!)g''-#%  74A10	 e(w8


:a=)JqM* u$++d225?CCEe$++eGnu457e$++T11%.AACt$dkkELL%..+IJJJtt$dkk5<<8KK#)A BCGWiHI/  s   0I 	I"!I"c                 P    | xj                   | j                  |d      z  c_         y )NTr  )rh  r  r  s     rP   depart_imagezLaTeXTranslator.depart_image	  s     D&&tT&::rQ   c                 z   |d   D ]  }|j                  d      rY| j                  j                  |dd        }|s5d| j                  j                  |<   | j                  j                  d|z         m| j                  st        j                  | j                  d<   | j                  j                  d|z          y )Nr  r  r  Tz\foreignlanguage{%s}{inlinez\DUrole{%s}{)
r  rP  r   r   rh  r7   rm  r)  rK  r?   r  s       rP   r  zLaTeXTranslator.visit_inline	  s    	? 		7C~~k*::33CG<:>DJJ--h7HHOO$<x$GH///;/B/BDNN8,# 56		7rQ   c                 X    | j                   j                  dt        |d         z         y )Nr=  r  )rh  r7   r  r  s     rP   r  zLaTeXTranslator.depart_inline	  s     c$y/223rQ   c                     | j                   st        j                  | j                  d<   | j                  j                  d       y )Nlegendz\begin{DUlegend})rm  r)  rN  r?   rh  r7   r  s     rP   visit_legendzLaTeXTranslator.visit_legend	  s0    '''3':':DNN8$+,rQ   c                 :    | j                   j                  d       y )Nz\end{DUlegend}
r4  r  s     rP   depart_legendzLaTeXTranslator.depart_legend	  s    +,rQ   c                 :    | j                   j                  d       y )Nz\item[] r4  r  s     rP   
visit_linezLaTeXTranslator.visit_line	      $rQ   c                 :    | j                   j                  d       y r  r4  r  s     rP   depart_linezLaTeXTranslator.depart_line	  r]  rQ   c                    | j                   s:t        j                  | j                  d<   t        j                  | j                  d<   | j                  |       t        |j                  t        j                        r| j                  j                  d       y | j                  |       | j                  j                  d       | j                  |       y )Nr  	lineblockz0\item[]
\begin{DUlineblock}{\DUlineblockindent}
z\begin{DUlineblock}{0em}
)rm  r)  r  r?   rX  r  r  r  r   
line_blockrh  r7   r  r  r  s     rP   visit_line_blockz LaTeXTranslator.visit_line_block	  s    ''/;/I/IDNN+,*6*@*@DNN;'##D)dkk5#3#34HHOO J K d#HHOO9:))$/rQ   c                 \    | j                   j                  d       | j                  |       y )Nz\end{DUlineblock}
r   r  s     rP   depart_line_blockz!LaTeXTranslator.depart_line_block	  r  rQ   c                 :    | j                   j                  d       y )Nz
\item r4  r  s     rP   visit_list_itemzLaTeXTranslator.visit_list_item	  rT  rQ   c                      y rJ   r'  r  s     rP   depart_list_itemz LaTeXTranslator.depart_list_item	  r  rQ   c                 6   d| _         d|d   v r_| j                  j                  dk7  rFt        j                  | j
                  d<   | j                  st        j                  | j                  d<   | j                  j                  d       | j                  |       y )NTcoder  r*   r5  z\texttt{)r  r`   syntax_highlightr)  r5  r=   rm  highlight_rulesr?   rh  r7   r  r  s     rP   visit_literalzLaTeXTranslator.visit_literal	  sx    d9o%..&8)5););Dg&++)5)E)Ev&$$rQ   c                 j    d| _         | j                  |       | j                  j                  d       y )NFr=  )r  r  rh  r7   r  s     rP   depart_literalzLaTeXTranslator.depart_literal	  s'    4 rQ   c                 \    t        |      dk(  xr t        |d   t        j                        S )z,Check whether a node can be typeset verbatimr  r   )r  r  r   rS  r  s     rP   is_plaintextzLaTeXTranslator.is_plaintext	  s$    D	QCJtAw

$CCrQ   c           	         ddddd}| j                   }| j                  |      }| j                  j                         }|xr | j                  j                  }t
        j                  t
        j                  f}| j                  j                  r#|t
        j                  t
        j                  fz  }|xr t        |j                  |       }|dk(  xr |}	| j                  |       | xj                  | j!                  |d      z  c_        |sfd|d	   v r_| j                  j"                  d
k7  rFt$        j&                  | j(                  d<   | j*                  st$        j,                  | j.                  d<   |r|r|st$        j0                  | j.                  d<   | j                  j3                  dt5        d |j7                         j9                  d      D              z         | j:                  j3                  d       nV|s9|	s7| j                  j3                  d       | j:                  j3                  d       n| j:                  j3                  d       |r|r|r|	r	 ||   | j(                  d<   d| _        |r|	r| j                  j3                  d       | j                  j3                  d|d| j@                  d       | j:                  j3                  d|z         y|rO|sMd| _!        d| j(                  d<   | j                  j3                  d       | j:                  j3                  d       yd| _"        d| _#        d| _$        | j                  j3                  d       | j:                  j3                  d       y# t<        $ r Y w xY w)zjRender a literal block.

        Corresponding rST elements: literal block, parsed-literal, code.
        z6\usepackage{listings}
\lstset{xleftmargin=\leftmargin}z\usepackage{moreverb}z\usepackage{fancyvrb})
lstlistinglistingVerbatimverbatimtabrk  Tr  rb  r  r*   r5  ttemz\begin{minipage}{%d\ttemwidth}
c              3   2   K   | ]  }t        |        y wrJ   )r  )r  r0  s     rP   r  z6LaTeXTranslator.visit_literal_block.<locals>.<genexpr>"
  s     E4SYEr  rp   z
\end{minipage}
z\begin{quote}
z
\end{quote}
literal_blockz\lstset{xleftmargin=0pt}
r  r=  z	
\end{%s}z\usepackage{alltt}rn  z\begin{alltt}
z
\end{alltt}z\ttfamily\raggedright
r+   N)%rJ  ri  rg  r  r  r   r  sidebarr`   r9   r  system_messager  r  r  rh  r  rc  r)  r5  r=   rm  rd  r?   ro  r7   maxr  rM  r[  r  r$  rK  rn  r  r  r  )
rO   r  packagesliteral_env
_plaintext	_in_table_autowidth_table_no_env_nodes_use_env_use_listingss
             rP   r  z#LaTeXTranslator.visit_literal_block	  s   
$G7 8#;	= ,, &&t,
%%--/	 %I):):)I)I7==//e..0D0DEEMLjm&L"L$4B( 	$D&&tT&::$y/)..&8)5););Dg&++)5)E)Ev&*: &2%6%6DNN6"HHOO4E4;;=+>+>t+DEEGH LL 56=HHOO./LL 23LL% 8-=,95=k5J!!/2 !DM] =>HHOO($*D*DF GLL ;<.DJ)>Dg&HHOO./LL 01DL"&D.2D+ HHOO78LL#+  s   M> >	N
Nc                 8   d| _         d| _        d| _        d| _        d| _        | j
                  j                  | j                  j                                | j
                  j                  | j                  j                                | j                  |       y r  )
r  r  r  r$  rn  rh  r7   r[  r  r  r  s     rP   r  z$LaTeXTranslator.depart_literal_blockH
  so    */'#
((*+((*+4 rQ   c                 T   |j                   j                  d      }|j                   j                  d      }|r|sy |dv r#| j                  j                  d|d|d       y |dk(  r| j                  j                  d|z         y | j                  j                  d	|d|d
       y )Nr  r  )r  creatorkeywordssubjectrB   z  pdfz={z},producerz  addtopdfproducer={%s},z  pdfinfo={z}},)r  r  ra  r7   )rO   r  r  r  s       rP   
visit_metazLaTeXTranslator.visit_metaR
  s    ""6*//%%i07HHLLw ?@ZLL :7 BC LLg FGrQ   c                      y rJ   r'  r  s     rP   depart_metazLaTeXTranslator.depart_metaa
  r  rQ   c                    | j                  |       d| j                  d<   |j                         j                  t        j
                        }|dk(  r| j                  rddg}n4ddg}n/| j                  |dd      }d	|z  d
dj                  |      d|z  g}|j                  d|       | j                  j                  |       | j                  |       t        j                  )z	math rolez\usepackage{amsmath}amsmathr@  z\(z\)FTr  r  z%%
\begin{%s}
rp   r+   r  r  )r  r=   r  rn   r   uni2tex_tablern  r  rr   r  rh  r  r  r   rb  )rO   r  math_env	math_codewrapperr  s         rP   
visit_mathzLaTeXTranslator.visit_mathd
  s    $'>)$KKM++K,E,EF	s?zz %.*'''MF*X5wwv"X-/G 	q)$ 4 nnrQ   c                      y rJ   r'  r  s     rP   depart_mathzLaTeXTranslator.depart_mathz
  r  rQ   c                 \    t        |j                               }| j                  ||       y )N)r  )r   r  r  )rO   r  r  s      rP   visit_math_blockz LaTeXTranslator.visit_math_block}
  s"    (7x0rQ   c                      y rJ   r'  r  s     rP   depart_math_blockz!LaTeXTranslator.depart_math_block
  r  rQ   c                 Z    | j                   d   r| j                  j                  d       y y )Nr
  r  )r[  rh  r7   r  s     rP   visit_optionzLaTeXTranslator.visit_option
  s#    <<HHOOD! rQ   c                 2    | j                   dxx   dz  cc<   y )Nr
  r  )r[  r  s     rP   depart_optionzLaTeXTranslator.depart_option
  s    RArQ   c                 Z    | j                   j                  |j                  dd             y)z@Append the delimiter between an option and its argument to body.	delimiterr  N)rh  r7   r  r  s     rP   visit_option_argumentz%LaTeXTranslator.visit_option_argument
  s    c23rQ   c                      y rJ   r'  r  s     rP   depart_option_argumentz&LaTeXTranslator.depart_option_argument
  r  rQ   c                 p    | j                   j                  d       | j                  j                  d       y )Nz
\item[r   )rh  r7   r[  r  s     rP   visit_option_groupz"LaTeXTranslator.visit_option_group
  s$    $ArQ   c                 n    | j                   j                          | j                  j                  d       y )Nz] )r[  r  rh  r7   r  s     rP   depart_option_groupz#LaTeXTranslator.depart_option_group
  s"    rQ   c                     | j                   s:t        j                  | j                  d<   t        j                  | j                  d<   | j                  |       | j                  j                  d       y )Nr  
optionlistz\begin{DUoptionlist})rm  r)  r  r?   r  r  rh  r7   r  s     rP   visit_option_listz!LaTeXTranslator.visit_option_list
  sS    ''/;/I/IDNN+,+7+B+BDNN<($/0rQ   c                 \    | j                   j                  d       | j                  |       y )Nz\end{DUoptionlist}
r   r  s     rP   depart_option_listz"LaTeXTranslator.depart_option_list
  s!    /04 rQ   c                      y rJ   r'  r  s     rP   visit_option_list_itemz&LaTeXTranslator.visit_option_list_item
  r  rQ   c                      y rJ   r'  r  s     rP   depart_option_list_itemz'LaTeXTranslator.depart_option_list_item
  r  rQ   c                      y rJ   r'  r  s     rP   visit_option_stringz#LaTeXTranslator.visit_option_string
  r  rQ   c                      y rJ   r'  r  s     rP   depart_option_stringz$LaTeXTranslator.depart_option_string
  r  rQ   c                 (    | j                  |d       y )Nr  r  r  s     rP   visit_organizationz"LaTeXTranslator.visit_organization
  s    n5rQ   c                 &    | j                  |       y rJ   r  r  s     rP   depart_organizationz#LaTeXTranslator.depart_organization
  r	  rQ   c                    |j                   j                  |      }|dk(  rSt        |j                   t        j                  t        j
                  t        j                  t        j                  f      rn|dkD  r_t        |j                   t        j                        r;t        |j                   |dz
     t        j                  t        j                  f      snj| j                  j                  r9|dk(  r| j                  d|       |dkD  r7| j                  j                  d       n| j                  j                  d       | xj                  | j                  |d      z  c_        | j                  |       y )Nr   r  z:LaTeX merges paragraphs in tables with auto-sized columns!	base_noderp   Tr  )r  indexr  r   	list_itemdescriptionr  r  ry  rg  r  r=  rh  r7   r  r  )rO   r  r  s      rP   visit_paragraphzLaTeXTranslator.visit_paragraph
  s   
 !!$'A:*T[[&+oou7H7H&+nneoo&GH aiT[[%..9 UQY!7"'//5>>!BD--z		 5@D  Fqy%HHOOD!D&&tT&::$rQ   c                     | j                  |       | j                  j                  s| j                  j	                  d       y y r  )r  rg  r  rh  r7   r  s     rP   depart_paragraphz LaTeXTranslator.depart_paragraph
  s4    4   //HHOOD! 0rQ   c                     t         j                  | j                  d<   | j                  j	                  d       | j                  |       | j                  j	                  d|d   z         y )Nr5  r  z"\hyperlink{%s}{\textbf{\color{red}rG  )r)  r5  r=   rh  r7   r  r  s     rP   visit_problematicz!LaTeXTranslator.visit_problematic
  sP    %1%7%7'"  &=WMNrQ   c                 :    | j                   j                  d       y )N}}r4  r  s     rP   depart_problematicz"LaTeXTranslator.depart_problematic
  r]  rQ   c                 8   d|j                  dd      j                         vrt        j                  | j	                  |      s?t        |j                  t        j                        s| j                  j                  d       | j                  |       d| _        y )Nr   r  r+   rp   T)r  rM  r   rb  r  r  r  r  rh  r7   r  r$  r  s     rP   	visit_rawzLaTeXTranslator.visit_raw
  sk    $((8R06688.. t$dkk5>>:HHOOD!$rQ   c                     d| _         | j                  |       | j                  |      s| j                  j	                  d       y y )NFrp   )r$  r  r  rh  r7   r  s     rP   
depart_rawzLaTeXTranslator.depart_raw
  s8    4 ~~d#HHOOD! $rQ   c                 T    d}|D ]  }|dk(  r|dz  }|dk(  r|dz  }|dk  s y |dk7  S )z7Test whether there are unmatched '{' or '}' characters.r   r<  r  r=  Tr'  )rO   rf   r  r  s       rP   has_unbalanced_bracesz%LaTeXTranslator.has_unbalanced_braces
  sL     	BSy
Sy
qy	 zrQ   c           	      t   t        d      dt        d      dt        d      di}d|v rt        |d         j                  |      }|j                  d      d	k7  s| j	                  |      r| j                  d
|z         |d   |j                         k(  r.| j                  j                  d|z         t        j                  | j                  j                  d|z         y d|v r|d   }n,d|v r| j                  j                  |d      }nt        d      | j                  |      s| j                  j                  d       | j                  j                  d|z         | j                  rL| j                  j                  d| j                  d|j!                  dd      d       t        j                  y )Nr>  r?  rA  rB  r;  r{  refuriz^^r
  zYExternal link "%s" not supported by LaTeX.
 (Must not contain "^^" or unbalanced braces.)z\url{%s}z
\href{%s}{rG  rH  zUnknown reference.rp   z\hyperref[%s]{r<  r+   r  )rm  r  rn   rk  r  r>  r  rh  r7   r   rb  r[   rJ  AssertionErrorr  rG  r  )rO   r  special_charsrK  s       rP   visit_referencezLaTeXTranslator.visit_reference   s~   S5S5TF
 ttH~&00?Dyy"$(B(B4(H

EGKLM H~.d 23nn$HHOOMD01d?=D$==((i9D !566~~d#HHOOD!)D01  HHOO!22DLLb4IK L..  !rQ   c                     | j                   j                  d       | j                  |      s| j                   j                  d       y y )Nr=  rp   )rh  r7   r  r  s     rP   depart_referencez LaTeXTranslator.depart_reference"  s3    ~~d#HHOOD! $rQ   c                 (    | j                  |d       y )Nrevisionr  r  s     rP   visit_revisionzLaTeXTranslator.visit_revision'  s    j1rQ   c                 &    | j                  |       y rJ   r  r  s     rP   depart_revisionzLaTeXTranslator.depart_revision*  r	  rQ   c                     | j                   st        j                  | j                  d<   | j                  j                  d       y )Nrubricz
\DUrubric{)rm  r)  r  r?   rh  r7   r  s     rP   visit_rubriczLaTeXTranslator.visit_rubric-  s1    '''3':':DNN8$ 	(rQ   c                 :    | j                   j                  d       y r7  r4  r  s     rP   depart_rubriczLaTeXTranslator.depart_rubric4  r9  rQ   c                     | xj                   dz  c_         | j                  j                  d       | j                  | j                   dz
  xx   dz  cc<   y )Nr  r   )r  rb  r7   r  s     rP   visit_sectionzLaTeXTranslator.visit_section7  sH    a##A&T//!3494rQ   c                 b    | j                   j                          | xj                  dz  c_        y r  )rb  r  r  r  s     rP   depart_sectionzLaTeXTranslator.depart_section>  s%      "arQ   c                     | j                  |       t        j                  | j                  d<   | j                  st        j
                  | j                  d<   | j                  j                  d       y )Nr5  rr  z\DUsidebar{)	r  r)  r5  r=   rm  rr  r?   rh  r7   r  s     rP   visit_sidebarzLaTeXTranslator.visit_sidebarC  sS    $%1%7%7'"''(4(<(<DNN9%'rQ   c                 \    | j                   j                  d       | j                  |       y r7  r   r  s     rP   depart_sidebarzLaTeXTranslator.depart_sidebarJ  s     4 rQ   )u   —r+   )r  r  r8  r&   c                     | j                   | j                  j                     \  }}| j                  j	                  d       | j                  j	                  |       | j
                  j	                  |       y )Nz\nopagebreak

\raggedleft )attribution_formatsr`   attributionrh  r7   r[  )rO   r  r  r~  s       rP   visit_attributionz!LaTeXTranslator.visit_attributionS  sS    11$--2K2KL89F#rQ   c                 p    | j                   j                  | j                  j                         dz          y r  r  r  s     rP   depart_attributionz"LaTeXTranslator.depart_attributionY  s$    ((*T12rQ   c                 (    | j                  |d       y )Nstatusr  r  s     rP   visit_statuszLaTeXTranslator.visit_status\  s    h/rQ   c                 &    | j                  |       y rJ   r  r  s     rP   depart_statuszLaTeXTranslator.depart_status_  r	  rQ   c                 \    | j                   j                  d       | j                  |       y )Nr  r(  r  s     rP   visit_strongzLaTeXTranslator.visit_strongb  s     $$rQ   c                 \    | j                  |       | j                  j                  d       y r+  r,  r  s     rP   depart_strongzLaTeXTranslator.depart_strongf  r.  rQ   c                 "    t         j                  rJ   )r   rb  r  s     rP   visit_substitution_definitionz-LaTeXTranslator.visit_substitution_definitionj  s    nnrQ   c                 &    | j                  |       y rJ   )unimplemented_visitr  s     rP   visit_substitution_referencez,LaTeXTranslator.visit_substitution_referencem  r	  rQ   c                    t        |j                  t        j                        r| j	                  | j
                         | j                  st        j                  | j                  d<   | j                  j                  dk(  }| xj                  | j                  |d|      z  c_        y t        |j                  t        j                        rE| j                  j!                  d| j"                  j                  | j$                  dz         z         y | j                  st        j
                  | j                  d<   | j                  j!                  d       y )	Ndocumentsubtitler|  Fr  z\%s*{r  rC   z
\DUsubtitle{)r  r  r   r[   r  rC   rm  r)  r  r?   r`   rU  r]  r  rv  rh  r7   rW  r  r  s      rP   visit_subtitlezLaTeXTranslator.visit_subtitlep  s    dkk5>>2&&t}}5++5A5R5R12}}22h>G  D$6$6t?F %7 %H H  U]]3HHOOH LL001C1Ca1GHI J ++-9-B-Bz*HHOO-.rQ   c                     t        |j                  t        j                        r| j	                          y | j
                  j                  d       y r7  )r  r  r   r[   r  rh  r7   r  s     rP   depart_subtitlezLaTeXTranslator.depart_subtitle  s0    dkk5>>2%%'HHOOE"rQ   c                    t         j                  | j                  d<   | j                  st         j                  | j
                  d<   | j                  j                  rt         j                  | j
                  d<   dg|d<   | j                  |       | j                  j                  r| j                  j                  d       n| j                  j                  d       | j                  |       	 d|d   z  }| j                  j                  d
|d   d|d   d| j                  |d         d|d	       t        |d         dk(  r@| j                  j                  d|d   d   z         | j                   j                  d       y t#        |d         D cg c]  \  }}d||dz   fz   }}}| j                   j                  ddj%                  |      z          y # t        $ r d	}Y w xY wc c}}w )Nr5  rB   zsystem-messager  z)
\DUtitle[system-message]{system-message
z
\DUtitle{system-message
z	, line~%sr0  r+   z}

{\color{red}typer|  r  z} in \texttt{sourcer=  rp   r  r  z
\hyperlink{%s}{r   z\hyperlink{%s}{%d}z
backrefs: r  )r)  r5  r=   rm  rB   r?   r`   r9   title_legacyr  rh  r7   r  r  r  r  r[  r  rr   )rO   r  r0  r
  rK  r  s         rP   visit_system_messagez$LaTeXTranslator.visit_system_message  s   %1%7%7'"''&2&8&8DNN7#==//&2&?&?DNN7#+,Yd#==//HHOOJKHHOO:;  &	f-D 	ftG}T(^4d< 	= tJ A%HHOO04
3CA3FFGLL$ *34
3C)DF%Q .qs; FH FLLsxx/A AB  	D	Fs   0G G0G-,G-c                     | j                   j                  | j                  j                                | j	                  |       y rJ   )rh  r7   r[  r  r  r  s     rP   depart_system_messagez%LaTeXTranslator.depart_system_message  s-    ((*+t$rQ   c                    | j                  |       t        j                  | j                  d<   | j                  j
                  st        j                  | j                  d<   | j                  j                         r6| j                  j                  | j                         t        | d      | _        | j                  j                  dk(  rt        |j                  t        j                         rp|j                  j#                  |      dk(  rR| j$                  j!                  | j&                        j)                  d      dk7  r| j*                  j                  d       | j                  j-                          | j                  j/                  || j                         | j                  j0                  d	k(  rd
| j                  d	<   | j3                  g        y )Nr7  table1tabularr  r  ry  r
  r  r   z\usepackage{booktabs})r  r)  r7  r=   r`   r:   table_columnwidthrg  r  rf  r7   r  r  r  r  r   rv  r  rW  r  rk  rh  r  r  r  r  r  s     rP   visit_tablezLaTeXTranslator.visit_table  s]   $%1%7%7'"}}11*6*H*HDh'$$&##D$5$56 %dI 6D ))[84;;6!!$'1,$$%%''+tK'8B?HHOON+ ))$>$$
2,DDj)""2&rQ   c                    | j                   }| j                          	 | j                  |d         }| j                   j	                  | j
                  j                  |             | xj                   |z  c_         | j                   j	                  | j
                  j                         dz          | j
                  j                          t        | j                        dkD  r| j                  j                         | _        | xj                   | j                  |dd      z  c_         | j                  |       y # t        $ r d}Y w xY w)Nr  r  rp   r   FTr  )rh  r  r5  r  r7   rg  r  r  r  r  rf  r  r  r  )rO   r  r  r  s       rP   depart_tablezLaTeXTranslator.depart_table  s   ((!!#	"((g7E 	))55e<=G))557$>?!t 1$ $ 0 0 4 4 6D 	D&&tt&LL4 !  	"!E	"s   D; ;E
	E
c                    d|v sd|v sd|v ry | j                   j                  d       t        |j                  t        j
                  t        j                  f       }| xj                   | j                  ||      z  c_         y )Nr  rG  rH  r  )rh  r7   r  r  r   r  rB   r  )rO   r  r  s      rP   visit_targetzLaTeXTranslator.visit_target  sg    $D #DKK%--1MNN
D&&tZ88rQ   c                      y rJ   r'  r  s     rP   depart_targetzLaTeXTranslator.depart_target  r  rQ   c                     | j                   j                  d      s#| j                  |       | j                  d        y y )Npreamble written)rg  r  r  r   r  s     rP   visit_tbodyzLaTeXTranslator.visit_tbody  s:       $$%78T"d# 9rQ   c                      y rJ   r'  r  s     rP   depart_tbodyzLaTeXTranslator.depart_tbody  r  rQ   c                 :    | j                   j                  d       y)zdefinition list termz\item[{Nr4  r  s     rP   
visit_termzLaTeXTranslator.visit_term  s     	
#rQ   c                     | j                   j                  d       |j                  dd      }t        |t        j
                        s+| j                   j                  | j                  |             y y )Nz}] FTrN  )rh  r7   rR  r  r   
classifierr  )rO   r  rR  s      rP   depart_termzLaTeXTranslator.depart_term  sV     NN54N@	)U%5%56HHOOD--i89 7rQ   c                      y rJ   r'  r  s     rP   visit_tgroupzLaTeXTranslator.visit_tgroup  r  rQ   c                      y rJ   r'  r  s     rP   depart_tgroupzLaTeXTranslator.depart_tgroup  r  rQ   c                     | j                   S rJ   )_thead_depthrN   s    rP   r  zLaTeXTranslator.thead_depth  r  rQ   c                    | xj                   dz  c_         d| j                         k(  rS| j                  j                  d| j                  j                  |      z         | j                  j                  dd       | j                  j                  | j                  j                                | j                  j                  | j                  j                                y )Nr  z{%s}
r  )
r  r  rh  r7   rg  r  r  r  r  r  r  s     rP   r  zLaTeXTranslator.visit_thead	  s    Q  ""HHOOHt'8'8'E'Ed'KKL!!"4a8))5578))5578rQ   c                     |^| j                   j                  | j                  j                                | j                  j	                         r|j                  |        | xj                  dz  c_        y r  )rh  r  rg  r   r  r\   r  r  s     rP   r   zLaTeXTranslator.depart_thead  sV    HHOOD--::<=  --/t$QrQ   c                 	   t        |j                  t        j                        rr| j	                  | j
                         | j                  j                  d       | j                  j                  d| j                  |j                               z         yt        |j                  t        j                        sHt        |j                  t        j                        s$t        |j                  t        j                        r|j                  d   xs |j                  j                  g}| j                  j                   rKt"        j$                  | j&                  d<   | j(                  j                  ddj+                  |      z         nD| j,                  st"        j
                  | j&                  d<   | j(                  j                  d       | j                  j                  d       yt        |j                  t        j.                        rA| j	                  | j0                  j2                         | j                  j                  d       yt5        t"        d	      rt"        j6                  | j8                  d	<   | j:                  }| j<                  j?                  |      }| j(                  j                  d
       |tA        | j<                  jB                        kD  r| j                  j                   r9t"        j$                  | j&                  d<   |dtE        jF                  |      z  z  }nw| j,                  s:t"        j
                  | j&                  d<   t"        jH                  | j&                  d<   | j(                  j                  dtE        jF                  |      z         d|j                  d   v r_t"        jJ                  | j8                  d<   | j                  |j                               }| j(                  j                  d|d|d       n| j(                  j                  d|z         dg}|| jM                  |j                  d      z  }| j                  j                  dj+                  |      dz          |tA        | j<                  jB                        kD  r/| j                  j                   s| j                  dxx   dz  cc<   yyy)z Append section and other titles.r+   z  pdftitle={%s},r  rB   z
\DUtitle[%s]{r  z

\DUtitle{r  rr  z

z[section%s]r  z\begin{DUclass}{section%s}
zsystem-messagesr5  r;  rI  z]{\color{red}z\%s{F)r  r  z%
}
r
  r  N)'r  r  r   r[   r  rB   r[  r7   ra  r  r  topicr  rr  tagnamer`   r9   r)  r  r?   rh  rr   rm  r7  rg  r  rs  rr  r=   r  rW  rv  r  r  r  r  r  r5  r  )rO   r  r  r  section_namesection_titlebookmarks          rP   visit_titlezLaTeXTranslator.visit_title  sm    dkk5>>2&&tzz2LL#LL 2 $DKKM :!; < ekk2DKK)9)9:DKK7kk),E1D1D0EG}}33*6*C*Cw' 2SXXg5F FG//.:.@.@DNN7+/LL&U[[1&&t'8'8'@'@ALL# |]33?3K3K!!-0&&E<<//6LHHOOF#s4<<0011==77.:.G.GDNN7+ MEMM%4H$HHL332>2D2Dw/4@4H4Hy1HHOO$C&+mmE&:%; < !DKK	$::-9-?-?!!'* $DKKM : ,m!= > , 67 tH **4;;5*IIHLLX 6 ABDLL1122<<R $66  = 3rQ   c                     | j                   j                  | j                  j                                t	        |j
                  t        j                  t        j                  f      r| j                          y y rJ   )
rh  r7   r[  r  r  r  r   r7  r[   r  r  s     rP   depart_titlezLaTeXTranslator.depart_title\  sL    ((*+dkkEKK#@A%%' BrQ   c           	      b   | j                   rSd|d   v rL| j                  j                  | j                        }dddd}d| j                  j                  v r|d= 	 ||   }| j                  j                  d       |d   r&| xj                  | j                  |d      z  c_	        t        |j                         t        j                        r~d|d   vrw| j                  j                   dk7  r^| j                  j                  d| j                  dz   |j                         j#                         |j%                  ddg      d   fz         | j                   s/t&        j(                  | j*                  d<   | j-                  |       y|j%                  dd      }t/        | j                  j                        }t        |j                         t        j                        r#| j1                  |d   j#                               }nd}d|d   v rt&        j2                  | j4                  d<   dz  | j4                  d|z   <   d||fz  | j4                  d|z  <   dddd}d| j                  j                  v rd|d<   |r&| j                  j                  d ||||   z   fz         | j                  j                  d!|d"|d#       | j                  j                  d$|z         t        j                  |r7| j                  j                  d%| j                  j7                  |      z         |d&k7  r| j                  j                  d'|z         | j                  j                  d(       d| _        t        j                  # t
        $ r' | j                  d	|z  |
       t        j                  w xY w))z_Write the table of contents.

        Called from visit_topic() for "contents" topics.
        r2  r  rl   minisect)rl   r  rv  r  rv  zUSkipping local ToC at "%s" level.
  Feature not supported with option "use-latex-toc"r  rp   r  Tr  r|  z\pdfbookmark[%d]{%s}{%s}
r  r  contentsr   ztoc-listNr  r+   r  z\do%stoczminitoc-z\mtcsetdepth{%stoc}{%d}zminitoc-%s-depth)r'  r&  rl   r
  z\setcounter{%stocdepth}{%d}z\mtcsettitle{ztoc}{r  z\%stoc
z\setcounter{tocdepth}{%d}
Contentsz!\renewcommand{\contentsname}{%s}
z\tableofcontents
)r0   rW  rv  r  r  r  r=  r   rb  rh  r7   r  r  rR  rB   r`   rU  r  r  r)  toc_listr?   r  r  r  r  r=   r  r  )	rO   r  r  minitoc_namesmtc_namer  maxdepthrB   offsets	            rP   visit_contentszLaTeXTranslator.visit_contentsa  sU    'T)_"<<<//0B0BCL%+(.(.0M DLL111!),%(6 	=HH**4*>>Ht~~'5tI.++x7HHOO9!//1!^^-446!XXej\:1=?? @ !!)5)>)>DNN:&d# !$t||,,-dnn&4KKQ 01EEd9o%+7+?+?Di(5@5IDj12*h-AA 08;<  A6FDLL111!#v >!)56(3C+C D!E F HHOOHeLMHHOOK(23 nn  >"&,,"B"B5"I!J K
" F NOHHOO12!%Dnnu  %		 P()48  : nn$	%s   M> >0N.c                 4   d|d   v r| j                  |       y d|d   v r| j                  j                  rq| j                  | j                         | j
                  j                  d       t        |j                         t        j                        r|j                  d       y y d|d   v rx| j                  st        j                  | j                  d<   | j                  j                  rt        j                   | j                  d<   | j                  | j                         nad|d   v rE| j                  st        j"                  | j                  d<   | j                  | j"                         n|d   j%                  dd       | j'                  |       y )Nr(  r  rG   z\begin{abstract}r   rF   r  )r/  r`   r2   r  rG   rh  r7   r  rR  r   rB   r  rm  r)  r?   r9   abstract_legacyrF   r  r  r  s     rP   visit_topiczLaTeXTranslator.visit_topic  s:    i(%DO+--22&&t}}5HHOO/0$..*EKK8 9 T)_,//1=1F1FDNN:.==771=1M1MDNN:.**4==9i0//3?3J3JDNN<0**4??;Y&&q'2""4(rQ   c                    d|d   v r2| j                   j                  r| j                  j                  d       n*d|d   v r| j	                  |       n| j                  |       d|d   v sd|d   v r| j                          y y )NrG   r  z\end{abstract}
r(  rF   )r`   r2   rh  r7   r  r!  r  r  s     rP   depart_topiczLaTeXTranslator.depart_topic  s}    $y/)00HHOO/04	?*t$##D)$y/)tI.%%' /rQ   c                     | j                   st        j                  | j                  d<   | j                  j                  d       | j                  j                  d       y )N
transitionzN
%___________________________________________________________________________
z\DUtransition
)rm  r)  r6  r?   rh  r7   r  s     rP   visit_transitionz LaTeXTranslator.visit_transition  sA    ''+7+B+BDNN<(/0*+rQ   c                      y rJ   r'  r  s     rP   depart_transitionz!LaTeXTranslator.depart_transition  r  rQ   c                 (    | j                  |d       y )Nversionr  r  s     rP   visit_versionzLaTeXTranslator.visit_version  r  rQ   c                 &    | j                  |       y rJ   r  r  s     rP   depart_versionzLaTeXTranslator.depart_version  r	  rQ   c                 F    t        d|j                  j                  z        )Nz$visiting unimplemented node type: %s)r  rV   rt   r  s     rP   r  z#LaTeXTranslator.unimplemented_visit  s$    !"H"&.."9"9#: ; 	;rQ   )TFFrJ   )r@  )rt   ru   rv   r  rj  r4   r5   rI  r  r  r  r$  r  r  r  rn  r   rK   ro  rC  r  r  rL  compiler  r  r  r  r  r  r  r  r  r  r  r  r  r  r  r  r  r  r  r  r  r  r  r  r  r  r!  r#  r%  r)  r-  r0  r2  r5  r8  r<  r>  r@  rD  rL  rX  rZ  r\  r  r`  rc  re  rg  rj  rm  ro  rq  rs  rv  rx  rz  r|  r~  r  r  r  r  r  r  r  r  r  r  r  r  r  r  r  r  r  r  r  r  r  r  r  r  r  r  r  r  r  r  r  r  r  r  r  r  r   r  r  r	  r  r  r  r  r  r!  r#  r%  r'  r)  r+  r5  rG  rI  r  r  rO  rQ  rS  rV  rZ  r\  r^  r`  re  rg  ri  r  r  r  r  r  r  r  r  r  r  r  r  r  r  r  r  r  r  r  r  r  r  r  r  r  r  r  r  r  r  r  r  r  r  r  r  r  r  r  r  r  r  r  r  r  r  r  r  r  r  r  r  r  r  r  r	  r  r  r  r  r  r  r  r  r  r   r"  r$  r/  r2  r4  r7  r9  r<  r>  r  r   r   s   @rP   rL   rL   Y  s    H ! &+" $' 
 MM ',#H!&NGE-2 aIR%B&:P:Up %"**^46:> <A# @.@$4(44 ! !1'1"!0'*!,!  ( +/8&"&&. !1' !3'.'2!13 +6$
'(EJ86:8, ,8(t8&8/=b)5(4!
*#;!4$
%(%6,):)4$
:6p;
74-
-%0!% (DN$`!H,1"
4
1!6' 4"
O"
 !D"
2'): 
(! $/*4%/#+-
$30' '/"#C8%'.!09$$: L!9@7H(
JX)6
(,1';rQ   rL   )Ar  __docformat__os.pathospathlibr   rL  rf   urllib.requestr   r@  r  ImportErrordocutils.utils.romanr
   r8  r   r   r   r	   docutils.transformsr   docutils.utils.mathr   r   _datadirrx  abspath__file__ry   r   r   dictr!  r)  r5  r6  r  r  r7  r  r8  r1  r  r  r  r*  ro  r1  rr   _docutils_styr  r.  r0  r,  r  r-  
block_namedefinitionsr^   r:  rt  r  NodeVisitorrL   r'  rQ   rP   <module>rR     s@   $"   	  ' )  ? ? * B)))"''//(*CDE E2W^^ E2Pk kb84 802 2 / >   6 
3   J  C 
" ? 	  ( # .X..rwwx/H/68+- 
-'* 7b 7zz&!}}T"[[%
!"o@@%++-K 	j+677(h h^& &RR RjL";e'' L";E"  )(()B7 7s   G; A%H;HHH