
    Ki64                   N   d Z ddlmZ dZddlZddlZddlZddlmZ ddl	m
Z
mZmZmZmZ ddlmZmZ ddlmZ dd	lmZmZ  ee      j0                  Z G d
 dej4                        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e_,        d  Z- e.ed!z  d"#      5 Z/e/D ]_  Z0e0jc                  d$      Z0e0je                  d%      s&e0jg                  d&      Z4e4s: e-e/      Z5e4d'v re5jc                         Z5 e6ee4e5       a 	 ddd        G d( d)      Z7 G d* d+      Z8 G d, d-      Z9 G d. d/ejt                        Z;y# 1 sw Y   =xY w)0zLaTeX2e document tree Writer.    )annotationsreStructuredTextN)Path)frontendnodes	languageswritersutils)
references
writer_aux)RomanNumeral)pick_math_environmentunichar2texc                  l    e Zd ZdZ	 dZeZdZg dZddg ddgd	d
dfddgddd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/d0gd1dd2fd3d4gd5de	j                  dfd6d7gd8e	j                  d9gd:fd;d<gd=edfd>ez  d?ged@dAfdBdCgdDde	j                  dfdEdFgdGde	j                  dfdHdIgd5de	j                  dfdJdKgdLde	j                  dfdMdNgd5de	j                  dfdOdPgdQde	j                  dfdRdSgd5de	j                  dfdTdUgdVdWdfdXdYgdd'dfdZd[gd5de	j                  dfd\d]gdd^d_fd`dagdde	j                  dfdbdcgdddd_fdedfgdgdhdAfdidjgdkd'dfe	j                  dlgde	j                  dmfdndogdpgddqe	j                  edrfdsdtgdud'dfdvdwgdxdydfdzd{gd|d'dfd}d~gd'de	j                  dfddgd5de	j                  dfddgdde	j                  dfddgdde	j                  dfddgdde	j                  dfddgdDde	j                  dffZdZi ZdZdZdZedz   ZdZ	 ddZ fdZddZd f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--documentclassz<documentclass>article)metavardefaultzcSpecify document options.  Multiple options can be given, separated by commas.  Default: "a4paper".z--documentoptionsz	<options>a4paperz\Format for footnote references: one of "superscript" or "brackets".  Default: "superscript".z--footnote-referencessuperscriptbracketsz<format>trim_footnote_reference_space)choicesr   r   	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
<preamble>z)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-colorz<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-envz<environment>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. Default: "".z--graphicx-optionz<option>zLaTeX font encoding. Possible values are "", "T1" (default), "OT1", "LGR,T1" or any other combination of options to the `fontenc` package. z--font-encodingz
<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-labelz<command name>zdSpecify 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)templatez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    m/home/jay/workspace/scripts/.codegraph-venv/lib/python3.12/site-packages/docutils/writers/latex2e/__init__.pyrM   zWriter.__init__   s    % /    c                b    t         |          t        j                  t        j
                  gz   S rL   )superget_transformsr   Admonitionsr   CitationReferences)rQ   	__class__s    rR   rV   zWriter.get_transforms  s/    w%'))00+  	rS   c           	     `   | j                  | j                        }| j                  j                  |       | j                  D ]  }t	        | |t        ||              | j                          t        j                  | j                  d         j                  | j                        | _        y )Nr=   )rO   document	walkaboutvisitor_attributessetattrgetattrassemble_partsstringTemplateparts
substituteoutput)rQ   visitorparts      rR   	translatezWriter.translate	  s    ''6(++ 	8DD$ 67	8 	oodjj&< ((2
4::(> 	rS   c                   t         |           | j                  D ]{  }|| j                  v rt	        | |      }|| j
                  v r2|r|j                  d       dj                  |      | j                  |<   ^dj                  |      | j                  |<   } t        | j                  j                  j                        }|j                         s| j                  |j                  z  }|j                  d      | j                  d<   y)z9Assemble the `self.parts` dictionary of output fragments.r-   
utf-8encodingr=   N)rU   r`   r]   rc   r_   
head_partsr9   joinr   r[   settingsr=   existsdefault_template_pathname	read_text)rQ   rg   linestemplatepathrY   s       rR   r`   zWriter.assemble_parts  s     ++ 
	2Dtzz!D$'Et&LL$#'99U#3

4  $&775>

4 
	2 DMM22;;<""$558I8IIL!-!7!7!7!I

:rS   returnNone)__name__
__module____qualname__	supporteddefault_templateLATEX_WRITER_DIRrr   default_preambletable_style_valuesr   validate_booleanvalidate_comma_separated_listSUPPRESS_HELPsettings_specrelative_path_settingssettings_defaultsconfig_sectionconfig_section_dependenciesrn   r]   re   rM   rV   rh   r`   __classcell__rY   s   @rR   r   r      s   $I'$,01
 	!|	
=
'I
>
@ |	6
!i
8
:|	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
"/?
@
B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
F
3
5y|	@ :
 !b
1
3A|	F#
$| 113
4G|	P&
'",B
C
EQ|	XM-
.l 113
4Y|	b I0
1",L
M
Oc|	h:+
,h
/
1i|	p0 
!%"
5
7q|	x 
 
 )
*! 113
4y|	@  
!l  >>(	*	
+A|	T 8
 R
0
2U|	ZH 
"t
4	
6[|	d' 
&2
6	
8e|	n;
5 >>@
Ao|	z*%
&! 113
4{|	FB"
#+" 113
4G|	R"#
$! 113
4S|	^ 
!)" 113
4_|	lJ!
"! 113
4m|	@
MD +%N">FJ# 'I I F.0	?J JrS   r   c                  R   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ddd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 rL   )reporterlanguage_namelanguageotherlanguages)rQ   language_coder  s      rR   rM   zBabel.__init__  s#     **=9 rS   c                `    t         j                  j                               }|r$ |j                  d j                  xs d        n  |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 settingszmain=r   z\usepackage[%s]{babel},r-   c              3  V   K   | ]   }j                   j                  |d        " yw)r-   N)active_charsget).0lngrQ   s     rR   	<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  zmain=englishr   zE% Prevent side-effects if French hyphenation patterns are not loaded:z\frenchbsetup{StandardLayout}z4\AtBeginDocument{\selectlanguage{%s}\noextrasfrench}rj   )sortedr  keysr9   r  ro   setupextend)rQ   r   
shorthandscs   `   rR   __call__zBabel.__call__  s   4..3356	IuT]]%?i$@ABIT]]7i8/#((92EEF

M9MM 	%A
"!!!$	% JJD "
 34 5 "JJJK"JJ 0 1 y JJ 0 1 bM^+D//4466JJ 6;/15?@ @J
 yy$$rS   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)rQ   r  tags      rR   r  zBabel.language_name  sp    //> 	C**3//	
 ==$MM!!$---"?@	  s   A!!	A-,A-c                    | j                   S rL   )r  rP   s    rR   get_languagezBabel.get_language  s    }}rS   rL   rw   )rz   r{   r|   __doc__r  itemslowerr  r  rM   r  r  r"  )r  kvs   000rR   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!
"%H	c Gs   ,D"r   c                  .     e Zd ZdZ fdZd Zd Z xZS )SortableDictuc   Dictionary with additional sorting methods

    Deprecated. Will be removed in Docutils 0.24.
    c                \    t        j                  dt        d       t        |   |i | y )NzP`writers.latex2e.SortableDict` is obsolete and will be removed in Docutils 0.24.   
stacklevel)warningswarnDeprecationWarningrU   rM   )rQ   argskwargsrY   s      rR   rM   zSortableDict.__init__  s-     ?(Q	8 	$)&)rS   c                4    t        | j                               S )zReturn sorted list of keys)r  r  rP   s    rR   
sortedkeyszSortableDict.sortedkeys  s    diik""rS   c                N    | j                         D cg c]  }| |   	 c}S c c}w )z$Return list of values sorted by keys)r4  )rQ   keys     rR   sortedvalueszSortableDict.sortedvalues  s!    %)__%67cS	777s   ")rz   r{   r|   r#  rM   r4  r7  r   r   s   @rR   r)  r)    s    
*#8rS   r)  c                      e Zd ZdZy)PreambleCmdsz'Building blocks for the latex preamble.N)rz   r{   r|   r#   rS   rR   r9  r9    s    1rS   r9  a4  
\ifdefined\DUchdimen  % lengh unit "ch": width of a zero char
\else
  \newlength{\DUchdimen}
  \AtBeginDocument{\settowidth\DUchdimen{0}}  % set after font setup,
  % update with font changes (requires LaTeX > 2021-06-01, see lthooks-doc.pdf)
  \AddToHook{cmd/selectfont/after}{\settowidth\DUchdimen{0}}
\fiz\usepackage{color}zl\usepackage{float} % extended float configuration
\floatplacement{figure}{H} % place figures here definitelyz%% hyperlinks:
\ifdefined\hypersetup
\else
  \usepackage[%s]{hyperref}
  \usepackage{bookmark}
  \urlstyle{same} %% normal text font (alternatives: tt, rm, sf)
\fiz/%% 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stripr9   ro   rstrip)fpblocklines      rR   _read_blockrC  _  sM    "XJE zz|T 775>  ""rS   zdocutils.styrk   rl   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{}rc  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)rz   r{   r|   r#  ordallttspecialunsupported_unicodeutf8_supported_unicoderH  pifontr:  rS   rR   rJ  rJ  |  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^ 	FrS   rJ  c                  (    e Zd ZdZdddZd ZddZy)	DocumentClassz"Details of a LaTeX document class.c                D   || _         || _        g d| _        | j                   j                  d      s)| j                   j                  d      s| j                   dv r| j                  j	                  dd       | j                  r| j                  j	                  dd       y y )N)section
subsectionsubsubsection	paragraphsubparagraphbookreport)ctexrepmemoirmwbkmwrepscrreprtr   chapterrg   )document_class
_with_partsectionsendswithinsert)rQ   r  	with_parts      rR   rM   zDocumentClass.__init__.  s    ,#6((0""++H5"" '< <MM  I.??MM  F+ rS   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  )rQ   levels     rR   r  zDocumentClass.section;  s+     C&&==q))rS   c                    t        |t        | j                              }d| j                  v r|dz  }| j                  d   dk(  r|dz  }|S )aQ  
        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.

        LaTeX section depth values:
          :-1|0: part (optional, 0 with "article"-like document classes)
          :0:    chapter (missing in "article"-like document classes)
          :1:    section
          :2:    subsection
          :3:    subsubsection
          :4:    paragraph
          :5:    subparagraph
        r  r  r   rg   )minr  r  )rQ   depths     rR   latex_section_depthz!DocumentClass.latex_section_depthF  sM    " E3t}}-.%QJE==v%QJErS   N)Frw   )r  intrx   r  )rz   r{   r|   r#  rM   r  r  r:  rS   rR   r  r  +  s    ,,	rS   r  c                      e Zd ZdZddZddZddZd ZddZd Z	ddZ
d	 Zdd
ZddZd ZddZd ZddZddZd Zd Zd ZddZd ZddZd Zd Zd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)rQ   
translator
latex_types      rR   rM   zTable.__init__k  s8    %%$)!

rS   c                J    d| _         g | _        g | _        i | _        d| _        y )NTF)_open
_col_specscaption_attrs_in_headrP   s    rR   openz
Table.openu  s%    
rS   c                X    d| _         d | _        g | _        i | _        g | _        d| _        y NF)r  r  r  r  stubscolwidths_autorP   s    rR   r  zTable.close|  s-    

#rS   c                    | j                   S rL   )r  rP   s    rR   is_openzTable.is_open  s    zzrS   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  )rQ   noderp   clsr  s        rR   set_table_stylezTable.set_table_style  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	longtablez
longtable*)r  r  rP   s    rR   get_latex_typezTable.get_latex_type  s%    {*4<<rS   c                "    || j                   |<   y rL   r  )rQ   attrvalues      rR   r  z	Table.set  s    !DrS   c                >    || j                   v r| j                   |   S y rL   r  )rQ   r  s     rR   r  z	Table.get  s     4;;;;t$$rS   c                $    | j                   dk(  ryy)Nr   |r-   )r  rP   s    rR   get_vertical_barzTable.get_vertical_bar  s    <<:%rS   c                   g }t        | j                        }ddddd}|j                  | j                  d            }| j                         }|r'|j	                  d      s|j                  d|z         d}| j                  sI| j                  d	k(  r&| j                  s|j                  d
||dz   fz         n|j                  d|z         |j                  d|d|       dj                  |      S )Nz[l]z[c]z[r]r-   )leftcenterrightNr  r  z"\noindent\makebox[\linewidth]%s{%%r   z?\setlength{\DUtablewidth}{\dimexpr%s-%i\arrayrulewidth\relax}%%r  z\setlength{\DUtablewidth}{%s}%%\begin{rM  rj   )
r  r  r  r  
startswithr9   r  r  r<   ro   )rQ   r  opening
nr_of_cols	align_mapr  r  s          rR   get_openingzTable.get_opening  s    )
"$#	 dhhw/0((*
..{;NN@5HIE""||z)$2K2K  I"'A!6 7 8 AEIJ*e<=yy!!rS   c                .   g }| j                   dk(  r|j                  d       |j                  d| j                         z         | j                  d      r0| j                         j	                  d      s|j                  d       dj                  |      S )Nr   z\bottomrulez\end{%s}r  r  rM  rj   )r  r9   r  r  r  ro   )rQ   closings     rR   get_closingzTable.get_closing  sy    <<:%NN>* 	{T%8%8%::;HHW'')44[ANN3yy!!rS   c                    | j                   j                  |       | j                  j                  |j                  j	                  d             y )Nstub)r  r9   r  
attributesr  rQ   r  s     rR   visit_colspeczTable.visit_colspec  s5    t$

$//--f56rS   c                   | j                         }dgt        | j                        z  | _        | j                  r"g | _        dgt        | j                        z  }n^| j                  rd}d}t        d | j                  D              }||kD  r|||z  z  }| j                  D cg c]  }||j                         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]  }|j                         |	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  B   K   | ]  }|j                         d z     yw)r  N	propwidthr  r  s     rR   r  z%Table.get_colspecs.<locals>.<genexpr>       MTdnn.q0M   r  g{Gzt?zp{%.3f\DUtablewidth}(   r  r  r  p{\DUcolumnwidth{%.3f}})r  r  r  r  r  r  r<   sumr  parentr  ro   )
rQ   r  barlatex_colspecsr  factortotal_widthcolwidthnorm_length	allowances
             rR   get_colspecszTable.get_colspecs  s    ##%c$//22 DO!US%99N&&EFMT__MMKU"%+--+/??<#' !'$..*:1*< =e CuL <DO /3oo?"* 6@ ?N ? K !(:(:9(EE		+/??<#' !% 0 :KG <DOdoo.KQ'T[[-?-?-J-J"J37??#D'/ $,K#7 #D /3oo?"* 98C ?N ?SXXn--337<? <
#D?s   $#GGG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
IndexErrorrP   s    rR   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rL   )r  )r  corQ   starts     rR   r  z.Table.get_multicolumn_width.<locals>.<genexpr>  s&      !8%' "&!< !8s   zp{%.2f\DUtablewidth}r  r  )r  ranger<   r  )rQ   r  len_multicol_widths   ``  rR   get_multicolumn_widthzTable.get_multicolumn_width  sT    	  !8+0;!8 8N((.??->> 		s   .8 8 	AAc                \    | j                   dk(  rd| j                  j                         k(  S y)Nr  r  r   )r  r  thead_depthrP   s    rR   need_recursezTable.need_recurse  s-    {*((44666rS   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  rP   s    rR   visit_theadzTable.visit_thead  s=    !<<:%= \\Z'!?"	rS   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  B   K   | ]  }|j                         d z     yw)r+  Nr  r  s     rR   r  z%Table.depart_thead.<locals>.<genexpr>-  r  r        z\multicolumn{%d}{%s}r   z,{\raggedleft\ldots continued on next page}\\rj   z\endfoot
\endlastfoot
)r  r9   r  r  r  r  r  r  r  r  r  )rQ   an_ct_widths       rR   depart_theadzTable.depart_thead   s     <<:%HH]#{*D$$0022+,$//*'MT__MMR<GbL9L9LHH4 #T%?%?3%GHINO  $$ % 56!rS   c                    d| _         y Nr   r  rP   s    rR   	visit_rowzTable.visit_row8  s
    rS   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  r9   reversepopr  )rQ   resirowspansclinec_starts         rR   
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rL   r  r  )rQ   cellr  s      rR   set_rowspanzTable.set_rowspanT  s'    	"'DMM$ 		s    	c                @    	 | j                   |   S # t        $ r Y yw xY wr  r#  )rQ   r$  s     rR   get_rowspanzTable.get_rowspanZ  s(    	==&& 		s    	c                    | j                   S rL   r  rP   s    rR   get_entry_numberzTable.get_entry_number`         rS   c                .    | xj                   dz  c_         y Nr  r  rP   s    rR   visit_entryzTable.visit_entryc  s    QrS   c                z    t        | j                        | j                  k\  r| j                  | j                     S yr  )r  r  r  rP   s    rR   is_stub_columnzTable.is_stub_columnf  s0    tzz?d///::d//00rS   Nrw   rx   str)
\linewidth)rz   r{   r|   r#  rM   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:  rS   rR   r  r  _  s    
$8" "

",
"7
+4Z	
02!rS   r  c                  d    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j"                  ej$                  ej&                  ej(                  ej*                  ej,                  fZefd׈ fdZd Zd Zd Zd	 Z ej>                  d
      fdZ d Z!ddZ"	 	 d	 ddZ#ddZ$dddZ%dddZ&ddZ'ddZ(ddZ)ddZ*d Z+ddZ,ddZ-ddZ.ddZ/ddZ0ddZ1ddZ2ddZ3ddZ4dd Z5dd!Z6dd"Z7dd#Z8dd$Z9dd%Z:dd&Z;dd'Z<dd(Z=dd)Z>dd*Z?dd+Z@dd,ZAdd-ZBdd.ZCdd/ZDdd0ZEdd1ZFdd2ZGdd3ZHdd4ZIdd5ZJdd6ZKdd7ZLdd8ZMd9 ZNdd:ZOdd;ZPdd<ZQdd=ZRdd>ZSdd?ZTdd@ZUddAZVddBZWddCZXddDZYddEZZddFZ[ddGZ\ddHZ]ddIZ^ddJZ_ddKZ`ddLZaddMZbddNZcddOZdddPZedddQZfddRZgddSZhddTZiddUZjddVZkddWZlddXZmddYZnddZZodd[Zpd\ Zqdd]Zrdd^Zsdd_Ztdd`ZuddaZvddbZwddcZxdddZyddeZzddfZ{ddgZ|ddhZ}ddiZ~ddjZddkZddlZddmZddnZddoZddpZddqZdr ZddsZddtZdduZddvZddwZddxZdddyZddzZdd{Zdd|Zdd}Zdd~ZddZddZddZddZddZddZddZddZddZd ZddZddZddZddZdddZddZddZddZddZddZddZddZddZddZddZddZddZddZddZddZddZddZddZddZddZddZd ZddZd Zd ZddZddZddZddZddZddZddZddZddZdddddZddZddZddZddZddZddZd ZddZddZddZddZddZddZddZddZddÄZddĄZddńZddƄZddǄZddȄZddɄZdZdʄ Zdd˄Zdd̄Zdd̈́Zdd΄Zdτ ZddЄZddфZdd҄ZddӄZddԄZddՄZdք Z xZS )rN   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.
    Fr8   r   c                   t         	|   |       | j                  j                  j                  | _        | j                  j                  j                  | _        | j                  }|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	      | _        |j0                  | _        |j2                  j5                  d
d      | _        d	| _        d	| _        |j6                  r0t;        j<                  d|j6                        \  }| _        | _        }n|j                  rd| _        |j                  rd| _        |j                  | _        tA        jB                  |jD                  |j                        | _#         ||jD                  |j                        | _$        | jF                  jJ                  d   | _&        |jN                  g}| jH                  jP                  dvr%|jS                  | jH                  jP                         djU                  tW        d |            | _'        tY        |jZ                  |j\                        | _/        |j`                  d	k(  rd| _1        nd|j`                  z  | _1        |jd                  | _2        d| jN                   d|jZ                   dg| _3        i | _4        |jj                  g| _5        i | _6        g | _7        g | _8        g | _9        g | _:        g | _;        g | _<        g | _=        g | _>        g | _?        g | _@        	 g | _A        g | _B        d	gg| _C        g | _D        g | _E        g | _F        |jD                  dk7  r(| j                  jS                  d|jD                  z         dg| _G        g | _H        d| _I        g | _J        g | _K        t        | d      | _M        | j~                  | _N        g | _O        | j                   dvrd| j                   z  | jh                  d<   | j                  s| j.                  rd| j.                  z  | jh                  d<   | j.                  j=                  d      D ];  }|j                         }|dk(  rd| jh                  d <   (|d!vs-d"| jh                  d#<   = |jZ                  j                  d$      s+d%| jN                  v sd&| jN                  v rd'| jh                  d(<   t        j                  |      }d)|v | _U        | j                  r4|j                  d)       |j                  rd| _U        nd*| jl                  d+<   |D cg c]  }| j                  |       c}| _Y        d,g| _Z        | j(                  j                         d-vr5| j                  jS                  d.| j(                   d/| j(                          |j                  r%| j                  jS                  |j                         d0jU                  | j                        | _Z        y c c}w )1NFzXThe default for the setting "use_latex_citations" will change to "True" in Docutils 1.0.   r,  Tz[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-   rU  rV  z	(\w+)(.*)verbatimr   )r   r-   r	  z\usepackage{graphicx}z\usepackage[%s]{graphicx}z\documentclass[]{rM  r   z  pdflang={%s},r  )asciiunicodeutf8z\usepackage[%s]{inputenc}	_inputencz\usepackage[%s]{fontenc}_fontencOT1z+\DeclareTextSymbol{\textquotedbl}{OT1}{`\"}_textquotedblOT1)r:   T2AT2BT2CT4T5z,\DeclareTextSymbolDefault{\textquotedbl}{T1}_textquotedblscrDIVBCORz\usepackage{typearea}typeareadocutilsz!\usepackage{docutils}[2025-08-06]z_docutils.styzhyperfootnotes=false)0offr   falser-   zcolorlinks=true,linkcolor=z
,urlcolor=z,
              )\rU   rM   r[   r  r  r/  errorrp   r%   
use_bibtexr.  FutureWarningr<   use_verbatim_when_possibleto_latex_encodingoutput_encodinglatex_encodingr2   r3   reference_labelhyperlink_colorr6   r_   r6  r7   section_enumerator_separatorr  literal_block_envliteral_block_optionsresplitbibtexr   r"  r  language_modulebabelauthor_separatorsauthor_separatordocumentoptionsr  r9   ro   filterr  documentclassuse_part_sectiond_classgraphicx_optiongraphicx_packagedocutils_footnotesr>   r?   r@   rA   rB   rD   rE   rC   rF   rG   rH   rI   rJ   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>  r  r
   get_stylesheet_listfallback_stylesheetremover;   stylesheet_callr/   hyperref_optionsr%  )
rQ   r[   babel_classrp   _none	d_optionsencstylesheet_listpathrY   s
            rR   rM   zLaTeXTranslator.__init__  s   " MM**22	]]++11
 ==''/8K8K+0H(MM C'A7 ((0,0H)MM E'A7 ..:MM5 !	- #44X5M5MN%33!)!;!;#+#?#? '77'77$,$A$A!$XC33 	+ 1199#uE 	) "$%'"%% hh|X-G-GHU#'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! #+"="= /t/C/C.D E!!)!7!7 8< ='667
 "	 	H ! TF	 !!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 &&11%8$...d222,DDj)
  33H=#-#@ ##"":...+0( 9 / (78#  //5 8
 "8 8%%'/NN!!(( *66:6J6J5K L5595I5I4J*L M $$!!(()B)BC 3 8 89N9N O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)z9Return code to reference or embed stylesheet file `path`.).styr-   r  rk   rl   zCannot embed stylesheet:
 \\/z% rj   
% Nz\makeatletter
z
\makeatotherz% embedded stylesheet: z\usepackage{%s}z
\input{%s})r   suffixrp   r0   with_suffixrt   record_dependenciesaddas_posixOSErrorr  r[   r  rN  r  stemr.   r
   relative_pathoutput_path)rQ   r  
is_packagecontenterrmsgcmds          rR   r|  zLaTeXTranslator.stylesheet_callg  s[    Dz[[L0
==))''/G..'.: 1155dmmoF-gYoF-dmmo->bi! " ;;*D$CC==((,,T]]-F-FMMM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cp1252r9  )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-asciirD  r   rU  r-   r8   )r%  r[  r  )rQ   docutils_encodingr   rm   s       rR   rR  z!LaTeXTranslator.to_latex_encoding  s    
 %$$$&$%&&  &&!8 %**,>>#&q)r>h<R(00b99rS   c                4    | j                   j                  |   S rL   )r]  labels)rQ   docutil_labels     rR   language_labelzLaTeXTranslator.language_label  s    ##**=99rS   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.
        rU  )r>  r-   z\underline{~}graphicxz\reflectbox{/}rK  z
\textbar{}r  z\textless{}<z\textgreater{}>rT   	r;  rH  z\usepackage{pifont}r  z"\DeclareUnicodeCharacter{%04X}{%s}r<  r8   z,`'"<>r+  z{}rj   Nr  \\
z  z ~) r7  rJ  r~  copyupdater  inside_citation_reference_labelr}  r6  rx  literalrg  r?   insert_non_breaking_blanksrp   	tab_widthrT  r  r  r  rH  r  rz  r9  r1  rh   r  insert_newliner[  	enumeratelstripro   )
rQ   textrG  chcpseparate_charscharru   r  rB  s
             rR   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rS   z[
	]c                D    | j                  |j                  d|            S )z1Cleanse, encode, and return attribute value text.r  )r  sub)rQ   r  
whitespaces      rR   attvalzLaTeXTranslator.attval  s     {{:>>#t455rS   c                J    t        |j                  t        j                        S )z@Check whether a node represents an inline or block-level element)
isinstancer  r   TextElementr  s     rR   	is_inlinezLaTeXTranslator.is_inline  s    $++u'8'899rS   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     rR   r  z6LaTeXTranslator.append_hypertargets.<locals>.<genexpr>  s!      #=*, $J#%$& #=s   idsN)rv  r9   ro   r  s     rR   append_hypertargetsz#LaTeXTranslator.append_hypertargets  s0     	

 #=04U#= = 	>rS   c                    |rdnd}|d   D cg c]
  }| d| d }}|r;|r|j                  dd       |r|j                  d       |r|j                  dd       |S c c}w )	ac  Return 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.
        If `pre_nl` is True, a newline is prepended if there are labels.

        Provisional.
        z\protectr-   r  z\label{rM  r   z\phantomsectionrj   )r  r9   )	rQ   r  
set_anchorprotectnewlinepre_nlprefixr   r  s	            rR   ids_to_labelszLaTeXTranslator.ids_to_labels  sq     !(R7;E{CVHIbT,CCa!34d#a& Ds   Ac                    |d   D cg c]  }|j                  d      s| }}|r?|d   j                  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  N)r  removeprefix)rQ   r  r  r  s       rR   set_align_from_classesz&LaTeXTranslator.set_align_from_classes1  s     !%YL3>>(3KLL!"I228<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  rv  r9   )rQ   r  r   r  s       rR   insert_align_declarationz(LaTeXTranslator.insert_align_declaration:  s`    '*F?HHOO-.hHHOOO,gHHOO,- rS   c                `    ||}| j                   ry t        t        |      | j                  |<   y rL   )rz  r_   r9  rA   )rQ   featurer6  s      rR   provide_fallbackz LaTeXTranslator.provide_fallbackC  s-    ;C##%lG<srS   c                ,   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                  d	d
       | j                  j                  d|z          y)z6Open a group and insert declarations for class values.rj   r  	language-	   NTz\begin{selectlanguage}{%s}
r  duclassDUclassz\begin{DUclass}{%s}
)r  r  r   compoundrv  r9   r  r^  r  r  rG  r   r   r  rQ   r  r  r  s       rR   duclass_openzLaTeXTranslator.duclass_openJ  s    $++u~~6HHOOD!	? 	@C~~k*::33CG<:>DJJ--h7HHOO$Ch$NOT5;;/V66:K9LLL%%i; 83 >?	@rS   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                  dd       | j                  j                  d	        y)
z$Close a group of class declarations.r  r  r  Nz\end{selectlanguage}
r  r  r  \end{DUclass}
)reversedr  r^  r  rv  r9   r  r   rG  r   r   r  r  s       rR   duclass_closezLaTeXTranslator.duclass_close[  s    DO, 
	4C~~k*::33CG<HHOO$=>T5;;/V66:K9LLL%%i; 23
	4rS   c                \    | j                   j                  | j                         || _        y rL   )rw  r9   rv  )rQ   new_outs     rR   push_output_collectorz%LaTeXTranslator.push_output_collectori  s    dhh'rS   c                \    | j                   }| j                  j                         | _         |S rL   )rv  rw  r  )rQ   old_outs     rR   pop_output_collectorz$LaTeXTranslator.pop_output_collectorm  s$    ((>>%%'rS   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imager  
math_block)rQ   r  childs      rR   r  zLaTeXTranslator.term_postfixr  s      	Eeeoou~~&+nn&6 7	
 eeoou~~>?$$U++eU[[)#%%//53C3C!DE!rS   c                t    | j                   j                  | j                  |j                                      y rL   )rv  r9   r  astextr  s     rR   
visit_TextzLaTeXTranslator.visit_Text  s!    DKKM23rS   c                     y rL   r:  r  s     rR   depart_TextzLaTeXTranslator.depart_Text      rS   c                P    |d   j                  dd       | j                  |       y )Nr  r   abbreviationr  visit_inliner  s     rR   visit_abbreviationz"LaTeXTranslator.visit_abbreviation  s$    Yq.1$rS   c                &    | j                  |       y rL   depart_inliner  s     rR   depart_abbreviationz#LaTeXTranslator.depart_abbreviation      4 rS   c                P    |d   j                  dd       | j                  |       y )Nr  r   acronymr  r  s     rR   visit_acronymzLaTeXTranslator.visit_acronym  s$    Yq),$rS   c                &    | j                  |       y rL   r  r  s     rR   depart_acronymzLaTeXTranslator.depart_acronym  r  rS   c                4    d| _         | j                  |       y )NT)r  visit_docinfo_itemr  s     rR   visit_addresszLaTeXTranslator.visit_address  s    "%rS   c                4    | j                  |       d| _        y r  )depart_docinfo_itemr  r  s     rR   depart_addresszLaTeXTranslator.depart_address  s      &#rS   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                  d       d|d   v r| j                  d       t        |t        j                        s&| xj                  | j                  |d      z  c_        | j                  |       | j                  j                  d       y c c}w )	Nr  
admonitionrN  z
\DUadmonition[%s]{r	  Tr  z\begin{DUadmonition})rp   r;   r9  admonition_legacyrA   error_legacyrv  r9   ro   r  r  r   system_messager  r  )rQ   r  r  s      rR   visit_admonitionz LaTeXTranslator.visit_admonition  s
   *.y/ 33!\1  3Y==//+7+I+IDNN<($y/)*6*C*Cw'HHOO3CHHT)_4MMNl+d9o%!!'*$ 4 45HH**4*==H$/03s   D:c                    | j                   j                  r| j                  j                  d       y | j                  j                  d       | j	                  |       y )N}
z\end{DUadmonition}
)rp   r;   rv  r9   r  r  s     rR   depart_admonitionz!LaTeXTranslator.depart_admonition  sA    ==//HHOOE"/04 rS   c                   | j                   j                  | j                  |j                                      t	        |j
                  t        j                        r| j                  g        y | j                  |       y rL   )
rn  r9   r  r  r  r  r   authorsr  r  r  s     rR   visit_authorzLaTeXTranslator.visit_author  sQ    dkk$++-89dkk5==1&&r*##D)rS   c                    t        |j                  t        j                        r;| j	                         }| j
                  j                  dj                  |             y | j                  |       y r<  )	r  r  r   r  r  rv  r9   ro   r  )rQ   r  author_names      rR   depart_authorzLaTeXTranslator.depart_author  sI    dkk5==1335KHHOOBGGK01$$T*rS   c                &    | j                  |       y rL   r  r  s     rR   visit_authorszLaTeXTranslator.visit_authors      %rS   c                &    | j                  |       y rL   r  r  s     rR   depart_authorszLaTeXTranslator.depart_authors        &rS   c                    | xj                   | j                  |d      z  c_         | j                  |       | j                   j                  d       y )NTr  z\begin{quote}rv  r  r  r9   r  s     rR   visit_block_quotez!LaTeXTranslator.visit_block_quote  s?    D&&tD&99$()rS   c                \    | j                   j                  d       | j                  |       y )Nz\end{quote}
rv  r9   r  r  s     rR   depart_block_quotez"LaTeXTranslator.depart_block_quote  s!    ()4 rS   c                    | xj                   | j                  |d      z  c_         | j                  |       | j                   j                  d       y )NTr  z\begin{itemize}r-  r  s     rR   visit_bullet_listz!LaTeXTranslator.visit_bullet_list  s?    D&&tD&99$*+rS   c                \    | j                   j                  d       | j                  |       y )Nz\end{itemize}
r0  r  s     rR   depart_bullet_listz"LaTeXTranslator.depart_bullet_list  s!    *+4 rS   c                \    | j                   j                  d       | j                  |       y )N\textsuperscript{rv  r9   r  r  s     rR   visit_superscriptz!LaTeXTranslator.visit_superscript  s!    ,-$rS   c                \    | j                  |       | j                  j                  d       y NrM  r  rv  r9   r  s     rR   depart_superscriptz"LaTeXTranslator.depart_superscript       4 rS   c                \    | j                   j                  d       | j                  |       y )Nz\textsubscript{r8  r  s     rR   visit_subscriptzLaTeXTranslator.visit_subscript  s!    *+$rS   c                \    | j                  |       | j                  j                  d       y r;  r<  r  s     rR   depart_subscriptz LaTeXTranslator.depart_subscript  r>  rS   c                \    | j                   j                  d       | j                  |       y )N	\caption{r8  r  s     rR   visit_captionzLaTeXTranslator.visit_caption  s     %$rS   c                \    | j                  |       | j                  j                  d       y Nr  r<  r  s     rR   depart_captionzLaTeXTranslator.depart_caption  s     4 rS   c                ~    | j                  d       | j                  j                  d       | j                  |       y )Ntitlereferencez\DUroletitlereference{)r  rv  r9   r  r  s     rR   visit_title_referencez%LaTeXTranslator.visit_title_reference   s0    ./12$rS   c                \    | j                  |       | j                  j                  d       y r;  r<  r  s     rR   depart_title_referencez&LaTeXTranslator.depart_title_reference  r>  rS   c                    | j                   r| j                  g        y | j                  j                  d       | j	                  |       y )Nz\begin{figure}[b])r%   r  rv  r9   r  r  s     rR   visit_citationzLaTeXTranslator.visit_citation	  s8    ##&&r*HHOO01$$T*rS   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%   rv  ro   rs  r9   r  )rQ   r  labelr  s       rR   depart_citationzLaTeXTranslator.depart_citation  sc    ##HHQKE77488AB<(DNN!!5$-0%%'HHOO-.rS   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{Tr  r  rj   z2unexpected non-whitespace while in reference labelr-   refidrefname\hyperlink{%s}{[)	r\  rs  r9   r  r%   r  rv  r[   nameids)rQ   r  hrefs      rR   visit_citation_referencez(LaTeXTranslator.visit_citation_reference  s    ;;NN!!4;;=/2##77	*7;4xx|{2 MLM2HHRLD$G}d"}},,T)_=HHOO/$67rS   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siblingsrU  r	  rM  ]})
r%   	next_noder  r   Textr  citation_referencerv  r9   r  )rQ   r  followup_citationsiblingsibling2s        rR   depart_citation_referencez)LaTeXTranslator.depart_citation_reference-  s    ## %nnUTnBG7EJJ/NN$3",,UT,Jh(@(@A(,% $$7<4HHOOD!rS   c                :    | j                   j                  d       y )Nz	(\textbf{rv  r9   r  s     rR   visit_classifierz LaTeXTranslator.visit_classifier@  s    %rS   c                    | j                   j                  d       |j                  t        j                  dd      r| j                   j                  d       y y )Nz})FTr]  rj   )rv  r9   ra  r   termr  s     rR   depart_classifierz!LaTeXTranslator.depart_classifierC  s>    >>%**ed>CHHOOD! DrS   c                :    | j                   j                  |       y rL   )ru  r  r  s     rR   r  zLaTeXTranslator.visit_colspecH  s    ''-rS   c                     y rL   r:  r  s     rR   depart_colspeczLaTeXTranslator.depart_colspecK  r  rS   c                   t        |j                  t        j                        s| j                  j                  d       | j                  j                  d|j                         j                  dd      z         t        j                  )Nrj   z%% %s
r  )	r  r  r   r  rv  r9   r  r  SkipNoder  s     rR   visit_commentzLaTeXTranslator.visit_commentN  sV    $++u~~6HHOOD!	DKKM$9$9$$GGHnnrS   c                     y rL   r:  r  s     rR   depart_commentzLaTeXTranslator.depart_commentU  r  rS   c                   t        |j                  t        j                        r| j                  j                  d       | xj                  | j                  |d      z  c_        |d   j                  dd       | j                  |       y )Nrj   Tr  r  r   r  )	r  r  r   r  rv  r9   r  r  r  r  s     rR   visit_compoundzLaTeXTranslator.visit_compoundX  sd    dkk5>>2HHOOD!D&&tD&99Yq*-$rS   c                &    | j                  |       y rL   r  r  s     rR   depart_compoundzLaTeXTranslator.depart_compound_  r  rS   c                &    | j                  |       y rL   r%  r  s     rR   visit_contactzLaTeXTranslator.visit_contactb  r'  rS   c                &    | j                  |       y rL   r)  r  s     rR   depart_contactzLaTeXTranslator.depart_contacte  r+  rS   c                r    | xj                   | j                  |d      z  c_         | j                  |       y NTr  )rv  r  r  r  s     rR   visit_containerzLaTeXTranslator.visit_containerh  s.    D&&tD&99$rS   c                &    | j                  |       y rL   ry  r  s     rR   depart_containerz LaTeXTranslator.depart_containerl  r  rS   c                &    | j                  |       y rL   r%  r  s     rR   visit_copyrightzLaTeXTranslator.visit_copyrighto  r'  rS   c                &    | j                  |       y rL   r)  r  s     rR   depart_copyrightz LaTeXTranslator.depart_copyrightr  r+  rS   c                &    | j                  |       y rL   r%  r  s     rR   
visit_datezLaTeXTranslator.visit_dateu  r'  rS   c                &    | j                  |       y rL   r)  r  s     rR   depart_datezLaTeXTranslator.depart_datex  r+  rS   c                     y rL   r:  r  s     rR   visit_decorationz LaTeXTranslator.visit_decoration{      rS   c                     y rL   r:  r  s     rR   depart_decorationz!LaTeXTranslator.depart_decoration  r  rS   c                     y rL   r:  r  s     rR   visit_definitionz LaTeXTranslator.visit_definition  r  rS   c                     y rL   r:  r  s     rR   depart_definitionz!LaTeXTranslator.depart_definition  r  rS   c                    | xj                   | j                  |d      z  c_         | j                  |       | j                   j                  d       y )NTr  z\begin{description}
r-  r  s     rR   visit_definition_listz%LaTeXTranslator.visit_definition_list  s?    D&&tD&99$01rS   c                \    | j                   j                  d       | j                  |       y )Nz\end{description}
r0  r  s     rR   depart_definition_listz&LaTeXTranslator.depart_definition_list  !    ./4 rS   c                P    | xj                   | j                  |d      z  c_         y NTr  rv  r  r  s     rR   visit_definition_list_itemz*LaTeXTranslator.visit_definition_list_item       D&&tT&::rS   c                b    |j                  dd      | j                  j                  d       y y )NFTr]  rj   )ra  rv  r9   r  s     rR   depart_definition_list_itemz+LaTeXTranslator.depart_definition_list_item  s+    >>%$>7CHHOOD! DrS   c                :    | j                   j                  d       y )Nr  ri  r  s     rR   visit_descriptionz!LaTeXTranslator.visit_description  s    rS   c                     y rL   r:  r  s     rR   depart_descriptionz"LaTeXTranslator.depart_description  r  rS   c                :    | j                  | j                         y rL   )r  rG   r  s     rR   visit_docinfozLaTeXTranslator.visit_docinfo  s    ""4<<0rS   c                   | j                          | j                  rjd| j                  d<   | j                  dd       | j                  d       | j                  j	                  dd       | j                  j                  d       y y )	Nz\usepackage{tabularx}tabularxprovidelength_providelengthrG   r   z@
% Docinfo
\begin{center}
\begin{tabularx}{\DUdocinfowidth}{lX}
z\end{tabularx}
\end{center}
)r  rG   r?   r  r  r9   r  s     rR   depart_docinfozLaTeXTranslator.depart_docinfo  s}    !!#<<,DDj)!!/3CD!!),LL $L M LL !2 3 rS   c                   |t        j                  dt        d       | j                  r(t	        || j
                        r| j                  g        y | j                  |j                        }| j                  j                  d|z         t	        |t        j                        r| j                  j                  d       n_t        |      t        |j                               z   dkD  r| j                  j                  d       n| j                  j                  d       t	        |t        j                        r| j                  g        y y )	NzVvisit_docinfo_item(): argument "name" is obsolete and will be removed in Docutils 0.24r+  r,  z\textbf{%s}: &z {\raggedright
@   z
  r  )r.  r/  r0  r3   r  TITLEDATA_NODESr  r  tagnamerv  r9   r   addressr  r  r  )rQ   r  rs   rR  s       rR   r  z"LaTeXTranslator.visit_docinfo_item  s    MM B,< !!jt7K7K&L&&r*''5EHHOO-56$. 34Uc$++-0025'$$.**2. /rS   c                   | j                   rt        || j                        rt        |t        j                        rd}|j                  ddd      D ]j  }t        |t        j                  t        j                  f      r nAt        |t        j                  t        j                  t        j                  f      sid}l nd}|j                  | j                               }t        |t        j                        r| j                  j                  |       y t        |t        j                  t        j                  f      rB| j                  d   d   r| j                  j                  |g       y || j                  d   d<   y | j                  d   j                  |       y t        |t        j                        r| j                  j                  d	       nt        |t        j                        rw| j                         }t!        | j"                  j$                        D ]  t'        fd
|D              r n | j                  j                  dz   j                  |             | j                  j                  d       y )Nz \and FT)include_selfr^  r_  z \quad r-   r  r   rM  c              3  &   K   | ]  }|v  
 y wrL   r:  )r  rs   seps     rR   r  z6LaTeXTranslator.depart_docinfo_item.<locals>.<genexpr>  s     Dtsd{Ds   r  r  )r3   r  r  r   r  findallauthorr  contactorganizationro   r  rm  r9   rl  rv  r  r]  r_  any)rQ   r  sr   r  author_namesr  s         @rR   r  z#LaTeXTranslator.depart_docinfo_item  s   !!jt7K7K&L$. ,,E504 ' 6 'B!"u||U]]&CD!"u}}emm','9'9'; <&' 66$3356D$

+		  &D5<<"?@ $$R(+%%,,dV4/3D%%b)!, !!"%,,T2$.$D%--0#88:#D$8$8$J$JK CD|DD S| <=HHOOI&rS   c                &    | j                  |       y rL   )visit_literal_blockr  s     rR   visit_doctest_blockz#LaTeXTranslator.visit_doctest_block  r+  rS   c                &    | j                  |       y rL   )depart_literal_blockr  s     rR   depart_doctest_blockz$LaTeXTranslator.depart_doctest_block  s    !!$'rS   c                    | j                   s(t        |j                         t        j                        rA| j
                  j                  dk(  }| xj                  | j                  |d|      z  c_        y y )Nr  Fr  r  )	r3   r  ra  r   rD   rp   rc  rj  r  rQ   r  r  s      rR   visit_documentzLaTeXTranslator.visit_document  se    !!Z0@%++%N}}22h>G!3!3DU<C "4 "E E &OrS   c           
        | j                   j                  s| j                   j                  dvr| j                         | j                  d<   | j                  j                  t        j                  | j                  z         | j                  j                  dd      rH| j                  j                  dd| j                  | j                  j                  dd            z         | j                  rF| j                  dz   j!                  | j                        }| j                  j                  d|z         | j                  r'| xj                  d	g| j                  z   d
gz   z  c_        | j"                  s| j$                  s| j&                  dggk7  r| j)                          | j*                  r| j-                          d| j                  v r'| j.                  s| j0                  j                  d       t3        | j                  j5                               D cg c]  }| j                  |    c}| _        t3        | j6                  j5                               D cg c]  }| j6                  |    c}| _        y c c}w c c}w )N)r-   r   r^  rD   r-   r   z  pdftitle={%s},r  z  pdfauthor={%s}z\hypersetup{rM  minitocz'
\faketableofcontents % for local ToCs
)r^  r  r  r?   rB   r9   r9  linkingr}  r[   r  ro  r  r  rn  r`  ro   rD   rm  rl  
make_titlers  append_bibliogaphyhas_latex_tocrv  r  r  rA   )rQ   r  r  r6  s       rR   depart_documentzLaTeXTranslator.depart_document  s    JJ%%zz""/9)-Dg&\11D4I4IIJ==Wb)LL#5 $DMM,=,=gr,J K$L M>>,,s288HGLL 2W <=<<MMo.=EEM::d&7&7RD6&AOO>>##%)))$2D2DHHOOHI )/t/@/@/E/E/G(HJ!$ "..s3 J &,DNN,?,?,A%BD! ..- DJDs   I<J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                  t        d |             }}| 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
)ro   rD   rj  rE   rk  rC   r9   rl  rb  rm  rF   )rQ   	title_argauthor_entryr  s       rR   r  zLaTeXTranslator.make_title  s!    WWTZZ()	::***I==%4rwwt}}7MM"223 3I 	mgll9.EEF
 (,'8'8:# ==l!;< : :nzw/GGH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}
rV  rU  z	\bibitem[r8  }{r  z\end{thebibliography}
)r\  rv  r9   ro   r%   rs  r  r  )rQ   widest_labelbibitemcite_keys       rR   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 &rS   c                \    | j                   j                  d       | j                  |       y )Nz\emph{r8  r  s     rR   visit_emphasiszLaTeXTranslator.visit_emphasisQ  s     	"$rS   c                \    | j                  |       | j                  j                  d       y r;  r<  r  s     rR   depart_emphasiszLaTeXTranslator.depart_emphasisU  r>  rS   c                >   | j                   j                  | j                   j                               rj| j                  j	                  d       | j                   j                          | j                   j                  | j                   j                               riy y )N & )ru  r'  r)  rv  r9   r-  rP   s    rR   (insert_additional_table_colum_delimitersz8LaTeXTranslator.insert_additional_table_colum_delimiters[  st    ++ $ 1 1 B B DFHHOOE"))+ ++ $ 1 1 B B DFrS   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}{rM  r-   z\multicolumn{%d}{%s%s%s}{\textbf{r  rL  rQ  )ru  r)  r  rv  r9   NotImplementedErrorr?   r%  r  ri  r  r  r  r  r  r   theadr/  r  r  r  r-  )rQ   r  mrowsbar1mcolss        rR   r-  zLaTeXTranslator.visit_entrya  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 %%'rS   c                    | j                   j                  | j                  j                                | j                   j                  | j                  j                                | j	                          y rL   )rv  r9   ri  r  r  r  s     rR   depart_entryzLaTeXTranslator.depart_entry  sH    ((*+((*+557rS   c                8    | j                   j                          y rL   )ru  r  r  s     rR   r  zLaTeXTranslator.visit_row  s    ##%rS   c                j    | j                   j                  | j                  j                                y rL   )rv  r  ru  r!  r  s     rR   r!  zLaTeXTranslator.depart_row  s!    ))4467rS   c                   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                         z   }|d|d|d|}	| j                  j                  |	       | xj                  | j                  |d      z  c_        | 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   r1   )(r  ))r-   r  r1   )r-   r  r1   r1   c              3  2   K   | ]  }t        |        y wrL   )r1  )r  ns     rR   r  z8LaTeXTranslator.visit_enumerated_list.<locals>.<genexpr>  s      "$Q#a& "$   r  r  enumtyper  r  enumrK  rL  rM  Tr     z\begin{enumerate}z
\renewcommand{\labelr  z\newcounter{%s}z\begin{list}z{%s}z{\usecounter{%s}}r  z
\setcounter{%s}{%d})r6   r7   section_levelrq  ro   rp  rW  r  r  r   to_lowercaser9   rv  r  r  rA   )
rQ   r  typesdefault_labelsr  r  r  
enum_levelcounter_namerR  s
             rR   visit_enumerated_listz%LaTeXTranslator.visit_enumerated_list  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
Z 8 E E GG"((L&I""))%0D&&tD&99$?HHOO01&)^JqL-II!-u!6 7 ,>+LDNN<(HHOOO,HHOOFUN+HHOO0<?@d?HHOO4)4=?;< = rS   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  rq  rv  r9   r  r  r  s     rR   depart_enumerated_listz&LaTeXTranslator.depart_enumerated_list  sV    t))*a/HHOO01HHOOO,4 ""&&(rS   c                P    | xj                   | j                  |d      z  c_         y r  r  r  s     rR   visit_fieldzLaTeXTranslator.visit_field  s     D&&tD&99rS   c                     y rL   r:  r  s     rR   depart_fieldzLaTeXTranslator.depart_field  r  rS   c                    t        |j                  j                  t        j                        s+| j                  j                  | j                  |             y y rL   )r  r  r   rG   rv  r9   r  r  s     rR   visit_field_bodyz LaTeXTranslator.visit_field_body  s:    $++,,emm<HHOOD--d34 =rS   c                l    | j                   | j                  u r| j                   j                  d       y y )Nr  rv  rG   r9   r  s     rR   depart_field_bodyz!LaTeXTranslator.depart_field_body  s'    88t||#HHOOJ' $rS   c                    | xj                   | j                  |d      z  c_         | j                  |       | j                   | j                  ur-| j	                  d       | j                   j                  d       y y )NTr  	fieldlistz\begin{DUfieldlist})rv  r  r  rG   r  r9   r  s     rR   visit_field_listz LaTeXTranslator.visit_field_list  sb    D&&tD&99$884<<'!!+.HHOO23 (rS   c                    | j                   | j                  ur| j                   j                  d       | j                  |       y )Nz\end{DUfieldlist}
)rv  rG   r9   r  r  s     rR   depart_field_listz!LaTeXTranslator.depart_field_list  s1    884<<'HHOO234 rS   c                    | j                   | j                  u r| j                   j                  d       y | j                   j                  d       y )Nr  z
\item[{r  r  s     rR   visit_field_namez LaTeXTranslator.visit_field_name  s4    88t||#HHOOK( HHOOL)rS   c                    | j                   | j                  u r| j                   j                  d       y | j                   j                  d       y )Nz}: &z:}]r  r  s     rR   depart_field_namez!LaTeXTranslator.depart_field_name	  s2    88t||#HHOOF#HHOOE"rS   c                b   t         j                  | j                  d<   | xj                  | j	                  |d      z  c_        | j                  |       |j                  j                  dd      }|dk7  r| j                  j                  d|z         y | j                  j                  d       y )NrF  Tr  r  r  z\begin{figure} %% align = "%s"z\begin{figure})	r9  rF  r?   rv  r  r  r  r  r9   )rQ   r  	alignments      rR   visit_figurezLaTeXTranslator.visit_figure
	  s    %1%7%7'"D&&tD&99$ OO'':	  HHOO=	IJHHOO-.rS   c                \    | j                   j                  d       | j                  |       y )NrQ  r0  r  s     rR   depart_figurezLaTeXTranslator.depart_figure	  s!    )*4 rS   c                \    | j                  g        | j                  j                  d       y )Nz\newcommand{\DUfooter}{r  rv  r9   r  s     rR   visit_footerzLaTeXTranslator.visit_footer	  !    ""2&23rS   c                    | j                   j                  d       dj                  | j                         | j                  d<   | j	                          y )NrM  r-   z~footerrv  r9   ro   r?   r  r  s     rR   depart_footerzLaTeXTranslator.depart_footer!	  ;    ')wwtxx'8)$!!#rS   c           
        	 |d   d   }| j                  r| j                  d       |d   j                         }| j                  j
                  dk(  rd|z  }| j                  j                  d|d   d   d|d| j                  |      d       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   z[%s]z%
\DUfootnotetext{r  r  rQ  )r  rh  r  r  rp   footnote_referencesrv  r9   r  r  r  r   r  )rQ   r  backrefnums       rR   visit_footnotezLaTeXTranslator.visit_footnote&	  s    	%:&q)G ""!!+.q'.."C}}00J>slHHOO!%[^Wdkk#6FH I 4y1}DGU__!E$ "F} #  	%5k!nG	%s   C C0/C0c                :    | j                   j                  d       y rG  ri  r  s     rR   depart_footnotezLaTeXTranslator.depart_footnote7	  s    rS   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                  d       | j
                  j                  d|d	   d
   d|d       | j                  j                  d       y )Nr-   rV  rW  r   rX  r`  r(  z\DUfootnotemark{r  r   r  rM  )	r[   rY  rp   r)  r  rv  r9   ri  r  )rQ   r  rZ  formats       rR   visit_footnote_referencez(LaTeXTranslator.visit_footnote_reference:	  s    d?=D$==((i9D 22Z$$T*HHOO/$67LL%!!+.HHOO!%[^T3 4LL$rS   c                j    | j                   j                  | j                  j                                y rL   )rv  r9   ri  r  r  s     rR   depart_footnote_referencez)LaTeXTranslator.depart_footnote_referenceT	  s    ((*+rS   c                   t        |j                  t        j                        rt        j                  t        |j                  t        j
                        sJ | j                  s| j                  j                  |       y y rL   )	r  r  r   r  rr  r  r%   rv  r9   )rQ   r  bracketr   s       rR   label_delimzLaTeXTranslator.label_delimX	  sT    dkk5>>2.. dkk5>>:::++( ,rS   c                *    | j                  |dd       y)z9footnote or citation label: in brackets or as superscriptrY  r7  Nr6  r  s     rR   visit_labelzLaTeXTranslator.visit_label`	  s    s$89rS   c                *    | j                  |dd       y )NrZ  rM  r8  r  s     rR   depart_labelzLaTeXTranslator.depart_labeld	  s    sC(rS   c                     y rL   r:  r  s     rR   visit_generatedzLaTeXTranslator.visit_generatedh	  r  rS   c                     y rL   r:  r  s     rR   depart_generatedz LaTeXTranslator.depart_generatedk	  r  rS   c                \    | j                  g        | j                  j                  d       y )Nz\newcommand{\DUheader}{r  r  s     rR   visit_headerzLaTeXTranslator.visit_headern	  r!  rS   c                    | j                   j                  d       dj                  | j                         | j                  d<   | j	                          y )NrM  r-   z~headerr#  r  s     rR   depart_headerzLaTeXTranslator.depart_headerr	  r%  rS   c                   t        j                  |      \  }}|dv r|S |dv r| dS |dk(  r|dz   dS |dk(  r	|dz  d	d
S |dk(  r	|dz  d	dS |dk(  r	|dz  d	dS t        t        |      s| j	                  d| d| d|       nF|dk(  rt        j
                  | j                  d<   n#| j                  dd       | j                  |       | d| dS )u   Convert "measure" `length_str` to LaTeX length specification.

        Note: the default length unit will change from "bp"
        (Postscript point) to "px" in Docutils 1.0.
        )emexcmmminpcpxbpccddspmu)r-   r   rL  Qr  rH  rQ  d   gr2  vwz\paperwidthvhz\paperheightzUnit "z." not supported by LaTeX.
  Define lenght "\DUz4dimen" in preamble, raw LaTeX, or custom stylesheet.	base_noder  r  r  z\DUdimen)r   parse_measurehasattrr9  r/  r  rA   r  )rQ   
length_strr  r  units        rR   to_latex_lengthzLaTeXTranslator.to_latex_lengthw	  s+    ))*5t 2 2:WB<3;AgYb>!3;Ci]+..4<Ci],//4<Ci]-00|T*IItf %..2V 4:: !%  & T\#/??DNN4 !!/3CD!!$'TF%((rS   c                r   | j                   | j                  d<   |j                  }| j                  |d   d      }d|vrt	        |j
                  t        j                        sRt	        |j
                  t        j                        r3t	        |j
                  j
                  t        j                        rd|d<   | j                  |       g }g }g }t	        |j
                  t        j                        r)|j                  | j                  j                                ddd	d
ddd}d|v r1	 ||d      }|j                  |d          |j                  |d          d|v r'|j                  d| j                  |d   |              d|v r|j                  d|d   dz  d       d|v r'|j                  d| j                  |d   |              |j                  dj                  | j!                  |d                   | j#                  |      s5t	        |j
                  t        j$                        s|j                  d       | j#                  |      s|j                  d       |j'                          | j                  j)                  |       |j*                  dk(  rd| j,                  j.                  v rd}	nd}	d}
|rdd j                  |       d!}
| j                  j                  d"|	 |
 d#|j1                          d$       | j                  j)                  |       y # t        $ r Y w xY w)%Nr  urir-   )r  r  r  r-   r-   )z\raisebox{-0.5\height}{rM  )z\raisebox{-\height}{rM  )z!\noindent\makebox[\linewidth][c]{rM  )z
\noindent{z\hfill})z\noindent{\hfillrM  )bottommiddletopr  r  r  r   r  heightzheight=scalezscale=rR  rS  r  zwidth=Tr  rj   z.svgsvg
includesvgincludegraphicsrY  r	  rZ  rK  rL  rM  )rg  r?   r  uri2pathr  r  r   figure	referencer  r9   rv  r  r  r]  ro   r  r  r  r  r  r  rp   r/   r  )rQ   r  attrs	imagepathprepostinclude_graphics_optionsalign_codes
align_coder  optionss              rR   visit_imagezLaTeXTranslator.visit_image	  s    )-(=(=*%MM%,BM?	%4;;5dkk5??;"4;;#5#5u||D!)g''-#% dkk5??3JJtxx||~& 74A10	 e(w8


:a=)JqM* u$++$..uXEFGIe$++fU7^C5G4J,KLe$++--eGndCDEG

2774--dD-ABCt$dkk5>>:JJt~~d#KKv%%4==3K3K*KC#C##((#;<=Q?G"SE'"Y-?-?-A,B"EF7  s   -0L) )	L65L6c                     y rL   r:  r  s     rR   depart_imagezLaTeXTranslator.depart_image	  r  rS   c                t   t         j                  t         j                  t         j                  f}t	        |j
                  |      xs t	        ||       }t	        |t         j                        }| xj                  | j                  |||      z  c_        |d   D ]  }|j                  d      rY| j                  j                  |dd        }|s5d| j                  j                  |<   | j                  j                  d|z         m| j                  d       | j                  j                  d|z          y )	Nr  r  r  r  Tz\foreignlanguage{%s}{inlinez\DUrole{%s}{)r   r  rE   rD   r  r  r  rv  r  r  r^  r  r  r9   r  )rQ   r  anchor_nodesr  add_newliner  r  s          rR   r  zLaTeXTranslator.visit_inline	  s     u~~u{{C$T[[,? <'l;=
 u7D&&tZ&MM	? 	7C~~k*::33CG<:>DJJ--h7HHOO$<x$GH%%h/# 56	7rS   c                X    | j                   j                  dt        |d         z         y )NrM  r  )rv  r9   r  r  s     rR   r  zLaTeXTranslator.depart_inline	  s     c$y/223rS   c                \    | j                  d       | j                  j                  d       y )Nlegendz\begin{DUlegend}r  rv  r9   r  s     rR   visit_legendzLaTeXTranslator.visit_legend	  s!    h'+,rS   c                :    | j                   j                  d       y )Nz\end{DUlegend}
ri  r  s     rR   depart_legendzLaTeXTranslator.depart_legend	  s    +,rS   c                :    | j                   j                  d       y )Nz\item[] ri  r  s     rR   
visit_linezLaTeXTranslator.visit_line	  s    $rS   c                :    | j                   j                  d       y Nrj   ri  r  s     rR   depart_linezLaTeXTranslator.depart_line
      rS   c                   | j                  dd       | j                  d       | j                  |       t        |j                  t        j
                        r| j                  j                  d       y | xj                  | j                  |d      z  c_        | j                  |       | j                  j                  d       | j                  |       y )Nr  r  	lineblockz0\item[]
\begin{DUlineblock}{\DUlineblockindent}
Tr  z\begin{DUlineblock}{0em}
)r  r  r  r  r   
line_blockrv  r9   r  r  r  r  s     rR   visit_line_blockz LaTeXTranslator.visit_line_block
  s    o/?@k*##D)dkk5#3#34HHOO J K HH**4*==Hd#HHOO9:))$/rS   c                \    | j                   j                  d       | j                  |       y )Nz\end{DUlineblock}
r0  r  s     rR   depart_line_blockz!LaTeXTranslator.depart_line_block
  r  rS   c                    | xj                   | j                  |d      z  c_         | j                   j                  d       y )NTr  z
\item )rv  r  r9   r  s     rR   visit_list_itemzLaTeXTranslator.visit_list_item
  s0    D&&tD&99$rS   c                     y rL   r:  r  s     rR   depart_list_itemz LaTeXTranslator.depart_list_item
  r  rS   c                   d| _         d|d   v rH| j                  j                  dk7  r/t        j                  | j
                  d<   | j                  dd       | j                  j                  d       | j                  |       y )NTcoder  r,   rE  highlight_rulesz\texttt{)
r  rp   syntax_highlightr9  rE  r?   r  rv  r9   r  r  s     rR   visit_literalzLaTeXTranslator.visit_literal
  sl    d9o%..&8)5););Dg&!!"3V<$$rS   c                j    d| _         | j                  |       | j                  j                  d       y )NFrM  )r  r  rv  r9   r  s     rR   depart_literalzLaTeXTranslator.depart_literal&
  s'    4 rS   c                \    t        |      dk(  xr t        |d   t        j                        S )z'Check whether `node` contains only textr  r   )r  r  r   rb  r  s     rR   is_plaintextzLaTeXTranslator.is_plaintext8
  s$    D	QCJtAw

$CCrS   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 |}	| xj                  | j                  |d      z  c_        | j!                  |       |sOd|d	   v rH| j                  j"                  d
k7  r/t$        j&                  | j(                  d<   | j+                  dd       |r|r|st$        j,                  | j.                  d<   | j                  j1                  dt3        d |j5                         j7                  d      D              z         | j8                  j1                  d       nV|s9|	s7| j                  j1                  d       | j8                  j1                  d       n| j8                  j1                  d       |r|r|r|	r	 ||   | j(                  d<   d| _        |r|	r| j                  j1                  d       | j                  j1                  d|d| j>                  d       | j8                  j1                  d|z         y|rO|sMd| _         d| j(                  d<   | j                  j1                  d       | j8                  j1                  d       yd| _!        d| _"        d| _#        | j                  j1                  d       | j8                  j1                  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verbatimtabr  Tr  r  r  r,   rE  r  ttemz\begin{minipage}{%d\ttemwidth}
c              3  2   K   | ]  }t        |        y wrL   )r  )r  rB  s     rR   r  z6LaTeXTranslator.visit_literal_block.<locals>.<genexpr>f
  s     E4SYEr  rj   z
\end{minipage}
z\begin{quote}
z
\end{quote}
literal_blockz\lstset{xleftmargin=0pt}
r  rM  z	
\end{%s}z\usepackage{alltt}r~  z\begin{alltt}
z
\end{alltt}z\ttfamily\raggedright
r-   N)$rX  r  ru  r  r  r   r  sidebarrp   r;   r  r  r  r  rv  r  r  r  r9  rE  r?   r  r  rA   r9   maxr  r[  ri  r  r7  rY  r~  r  r  r  )
rQ   r  packagesliteral_env
_plaintext	_in_table_autowidth_table_no_env_nodes_use_env_use_listingss
             rR   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&&tD&99$$y/)..&8)5););Dg&!!"3V<*: &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' '	M43M4c                8   d| _         d| _        d| _        d| _        d| _        | j
                  j                  | j                  j                                | j
                  j                  | j                  j                                | j                  |       y r  )
r  r  r  r7  r~  rv  r9   ri  r  r  r  s     rR   r  z$LaTeXTranslator.depart_literal_block
  so    */'#
((*+((*+4 rS   c                @   d|vsd|vrt         j                  |d   }| j                  |d         }|dv r#| j                  j	                  d|d|d       y |dk(  r| j                  j	                  d|z         y | j                  j	                  d	|d|d
       y )Nrs   r  )r  keywordsproducersubjectrD   z  pdfz={z},creatorz  addtopdfcreator={%s},z  pdfinfo={z}},)r   rr  r  ro  r9   )rQ   r  rs   r  s       rR   
visit_metazLaTeXTranslator.visit_meta
  s    $!6..  F|++d9o.IILLw ?@YLL 9' AB LLg FGrS   c                     y rL   r:  r  s     rR   depart_metazLaTeXTranslator.depart_meta
  r  rS   c                X   d| j                   d<   | j                  |       |j                         j                  t        j
                        }| j                  r| xj                  d|dgz  c_        n| xj                  d|dgz  c_        | j                  |       t        j                  )zW
        Provisional: the `math_env` argument will be dropped in Docutils 2.0.
        \usepackage{amsmath}amsmathz\(z\)rP  )r?   r  r  rh   r   uni2tex_tabler~  rv  r  r   rr  )rQ   r  math_env	math_codes       rR   
visit_mathzLaTeXTranslator.visit_math
  s     (?)$$KKM++K,E,EF	::HH	511HHHi--H4 nnrS   c                     y rL   r:  r  s     rR   depart_mathzLaTeXTranslator.depart_math
  r  rS   c                   d| j                   d<   t        |j                               }| j                  j	                  d       |d   r,|j                  d      r| j                  j	                  d       |d   D ]2  }| j                  d       | j                  j	                  d	| d
       4 | xj                  d| d|j                         j                  t        j                        dg| j                  |dd      d| dz  c_        |d   r-| j                  j	                  ddt        |d         z  z          t        j                  )Nr  r  r  r  r  z\phantomsection
r  rx  z\DUrole{z}{%
r  r  rj   FT)r  r  z\end{rM  )r?   r   r  rv  r9   r  r  rh   r   r  r  r  r   rr  )rQ   r  r  r  s       rR   visit_math_blockz LaTeXTranslator.visit_math_block
  s3   '>)$(7;8,,S1HHOO01	? 	7C!!(+HHOOjW56	7 	y
$/[[],,[-F-FG- ((%(N- xj+	- 	-
 	?HHOOD3T)_)=#==>nnrS   c                     y rL   r:  r  s     rR   depart_math_blockz!LaTeXTranslator.depart_math_block
  r  rS   c                Z    | j                   d   r| j                  j                  d       y y )Nr  r  )ri  rv  r9   r  s     rR   visit_optionzLaTeXTranslator.visit_option
  s#    <<HHOOD! rS   c                2    | j                   dxx   dz  cc<   y )Nr  r  )ri  r  s     rR   depart_optionzLaTeXTranslator.depart_option
  s    RArS   c                Z    | j                   j                  |j                  dd             y)z@Append the delimiter between an option and its argument to body.	delimiterr  N)rv  r9   r  r  s     rR   visit_option_argumentz%LaTeXTranslator.visit_option_argument
  s    c23rS   c                     y rL   r:  r  s     rR   depart_option_argumentz&LaTeXTranslator.depart_option_argument
  r  rS   c                p    | j                   j                  d       | j                  j                  d       y )Nz\item[r   )rv  r9   ri  r  s     rR   visit_option_groupz"LaTeXTranslator.visit_option_group
  s$    	"ArS   c                n    | j                   j                          | j                  j                  d       y )Nz] )ri  r  rv  r9   r  s     rR   depart_option_groupz#LaTeXTranslator.depart_option_group
  s"    rS   c                    | j                  dd       | j                  d       | xj                  | j                  |d      z  c_        | j                  |       | j                  j	                  d       y )Nr  r  
optionlistTr  z\begin{DUoptionlist}
r  rv  r  r  r9   r  s     rR   visit_option_listz!LaTeXTranslator.visit_option_list
  s^    o/?@l+D&&tD&99$12rS   c                \    | j                   j                  d       | j                  |       y )Nz\end{DUoptionlist}
r0  r  s     rR   depart_option_listz"LaTeXTranslator.depart_option_list
  s!    /04 rS   c                P    | xj                   | j                  |d      z  c_         y r  r  r  s     rR   visit_option_list_itemz&LaTeXTranslator.visit_option_list_item
  r  rS   c                     y rL   r:  r  s     rR   depart_option_list_itemz'LaTeXTranslator.depart_option_list_item
  r  rS   c                     y rL   r:  r  s     rR   visit_option_stringz#LaTeXTranslator.visit_option_string
  r  rS   c                     y rL   r:  r  s     rR   depart_option_stringz$LaTeXTranslator.depart_option_string
  r  rS   c                &    | j                  |       y rL   r%  r  s     rR   visit_organizationz"LaTeXTranslator.visit_organization  r'  rS   c                &    | j                  |       y rL   r)  r  s     rR   depart_organizationz#LaTeXTranslator.depart_organization  r+  rS   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       | j                  |       y )Nr   r  z:LaTeX merges paragraphs in tables with auto-sized columns!rV  rj   )r  indexr  r   	list_itemdescriptionr  r  r  ru  r  r/  rv  r9   r  )rQ   r  r  s      rR   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!$rS   c                    | j                  |       | j                  j                  s| j                  j	                  d       y y r  )r  ru  r  rv  r9   r  s     rR   depart_paragraphz LaTeXTranslator.depart_paragraph!  s4    4   //HHOOD! 0rS   c                    t         j                  | j                  d<   | j                  j	                  d       | j                  |       | j                  j	                  d|d   z         y )NrE  r  z"\hyperlink{%s}{\textbf{\color{red}rV  )r9  rE  r?   rv  r9   r  r  s     rR   visit_problematicz!LaTeXTranslator.visit_problematic&  sP    %1%7%7'"  &=WMNrS   c                :    | j                   j                  d       y )Nz}}ri  r  s     rR   depart_problematicz"LaTeXTranslator.depart_problematic,  r  rS   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   r0  r-   rj   T)r  r[  r   rr  r  r  r  r  rv  r9   r  r7  r  s     rR   	visit_rawzLaTeXTranslator.visit_raw/  sk    $((8R06688.. t$dkk5>>:HHOOD!$rS   c                    d| _         | j                  |       | j                  |      s| j                  j	                  d       y y )NFrj   )r7  r  r  rv  r9   r  s     rR   
depart_rawzLaTeXTranslator.depart_raw9  s8    4 ~~d#HHOOD! $rS   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   rL  r  rM  Tr:  )rQ   ra   r  r  s       rR   has_unbalanced_bracesz%LaTeXTranslator.has_unbalanced_braces?  sL     	BSy
Sy
qy	 zrS   c           	     V   t        d      dt        d      dt        d      di}| j                  |      s| j                  j                  d       d|v rt	        |d         j                  |      }d	|v s| j                  |      r| j                  d
| d       |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                  rL| j                  j                  d| j                  d|j                  dd      d       t        j                  | j                  j                  d|z         y )NrN  rO  rQ  rR  rK  r  rj   refuriz^^zExternal link "zH" not supported by LaTeX.
 (Must not contain "^^" or unbalanced braces.)z\url{%s}z
\href{%s}{rV  rW  zUnknown reference.rL  r-   rM  z\hyperref[%s]{)r}  r  rv  r9   r1  rh   r  rN  r  r   rr  r[   rY  AssertionErrorrU  r  )rQ   r  special_charsrZ  s       rR   visit_referencezLaTeXTranslator.visit_referenceK  st   S5S5TF ~~d#HHOOD!ttH~&00?Dt|t99$?

%dV ,E EF H~.d 23nn$HHOOMD01d?=D$==((i9D !566HHOO!114<<R3HJ K.. )D01rS   c                    | j                   j                  d       | j                  |      s| j                   j                  d       y y )NrM  rj   )rv  r9   r  r  s     rR   depart_referencez LaTeXTranslator.depart_referencem  s3    ~~d#HHOOD! $rS   c                &    | j                  |       y rL   r%  r  s     rR   visit_revisionzLaTeXTranslator.visit_revisionr  r'  rS   c                &    | j                  |       y rL   r)  r  s     rR   depart_revisionzLaTeXTranslator.depart_revisionu  r+  rS   c                    | j                  d       | xj                  | j                  |d      z  c_        | j                  |       | j                  j	                  d       y )NrubricTr  z
\DUrubric{r  r  s     rR   visit_rubriczLaTeXTranslator.visit_rubricx  sN    h' 	D&&tD&99$&rS   c                \    | j                   j                  d       | j                  |       y rG  r0  r  s     rR   depart_rubriczLaTeXTranslator.depart_rubric       4 rS   c                b   | xj                   dz  c_         | j                  j                  d       | j                  | j                   dz
  xx   dz  cc<   d| j                  v ry | j                  j
                  rd}nt        | j                  dd      }t        |t              rd}t        | j                  dd      }t        |t              rd}|dk7  r.d| j                  j                  d   |dz
  fz  | j                  d<   |,d| j                  j                  |      z  | j                  d<   y y )Nr  r   sectnumsectnum_depthsectnum_startz\setcounter{%s}{%d}z\setcounter{secnumdepth}{%d})r  rp  r9   r?   rp   sectnum_xformr_   r  r1  re  r  r  )rQ   r  r  r  s       rR   visit_sectionzLaTeXTranslator.visit_section  s!   a##A&T//!3494 )))
 ==&&M#DMM?AFM-- !#DMM?AFM-- !!5KLL))!,mAoO? 6?!!/2
 $+J00?,ADi( %rS   c                b    | j                   j                          | xj                  dz  c_        y r,  )rp  r  r  r  s     rR   depart_sectionzLaTeXTranslator.depart_section  s%      "arS   c                   | xj                   | j                  |d      z  c_         | j                  |       t        j                  | j
                  d<   | j                  d       | j                   j                  d       y )NTr  rE  r  z\DUsidebar{)rv  r  r  r9  rE  r?   r  r9   r  s     rR   visit_sidebarzLaTeXTranslator.visit_sidebar  sb    D&&tD&99$%1%7%7'"i('rS   c                \    | j                   j                  d       | j                  |       y rG  r0  r  s     rR   depart_sidebarzLaTeXTranslator.depart_sidebar  r  rS   )u   —r-   )r  r  r`  r(   c                f   | j                   | j                  j                     \  }}| j                  j	                  d       | xj                  | j                  |d      z  c_        | j                  |       | j                  j	                  d|        | j                  j	                  |       y )Nz\nopagebreak
Tr  z\raggedleft )attribution_formatsrp   attributionrv  r9   r  r  ri  )rQ   r  r  r  s       rR   visit_attributionz!LaTeXTranslator.visit_attribution  s    11$--2K2KL)*D&&tD&99$-x01F#rS   c                    | j                   j                  | j                  j                         dz          | j	                  |       y r  )rv  r9   ri  r  r  r  s     rR   depart_attributionz"LaTeXTranslator.depart_attribution  s2    ((*T124 rS   c                &    | j                  |       y rL   r%  r  s     rR   visit_statuszLaTeXTranslator.visit_status  r'  rS   c                &    | j                  |       y rL   r)  r  s     rR   depart_statuszLaTeXTranslator.depart_status  r+  rS   c                \    | j                   j                  d       | j                  |       y )Nr  r8  r  s     rR   visit_strongzLaTeXTranslator.visit_strong  s     $$rS   c                \    | j                  |       | j                  j                  d       y r;  r<  r  s     rR   depart_strongzLaTeXTranslator.depart_strong  r>  rS   c                "    t         j                  rL   )r   rr  r  s     rR   visit_substitution_definitionz-LaTeXTranslator.visit_substitution_definition  s    nnrS   c                &    | j                  |       y rL   )unimplemented_visitr  s     rR   visit_substitution_referencez,LaTeXTranslator.visit_substitution_reference  r+  rS   c                P   t        |j                  t        j                        rm| j	                  | 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                  d       | j                  j                  d       y )	Ndocumentsubtitler  Fr  z\%s*{r  rE   z
\DUsubtitle{)r  r  r   r[   r  rE   r  rp   rc  rk  r  r  rv  r9   re  r  r  s      rR   visit_subtitlezLaTeXTranslator.visit_subtitle  s    dkk5>>2&&t}}5!!"45}}22h>G  D$6$6t?F %7 %H H  U]]3HHOOH LL001C1Ca1GHI J !!*-HHOO-.rS   c                    t        |j                  t        j                        r| j	                          y | j
                  j                  d       y rG  )r  r  r   r[   r  rv  r9   r  s     rR   depart_subtitlezLaTeXTranslator.depart_subtitle  s0    dkk5>>2%%'HHOOE"rS   c                   t         j                  | j                  d<   | j                  d       | j                  j
                  rt         j                  | j                  d<   dg|d<   | j                  j                  d       | j                  |       | j                  |       | j                  j
                  r| j                  j                  d       n| j                  j                  d       	 d|d	    }| j                  j                  d|d    d|d    d| j                  |d          d| d	       t        |d         dk(  rA| j                  j                  d|d   d    d       | j                  j                  d       y t!        |d         D cg c]  \  }}d| d|dz    d }}}| j                  j                  ddj#                  |      z          y # t        $ r d
}Y w xY wc c}}w )NrE  rD   zsystem-messager  rj   z5
\DUtitle[system-message]{\color{red}System Message}
z%
\DUtitle{\color{red}System Message}
z, line~rB  r-   typer  r  z in \texttt{sourcerM  r'  r  z
\hyperlink{r   r  r  z\hyperlink{z
backrefs: r  )r9  rE  r?   r  rp   r;   title_legacyrA   rv  r9   r  r  r  r  r  ri  r  ro   )rQ   r  rB  r  rZ  r'  s         rR   visit_system_messagez$LaTeXTranslator.visit_system_message  s   %1%7%7'"g&==//&2&?&?DNN7#+,Y  &d#==//HHOO = > HHOOGH	T&\N+D 	"T&\N!DM? ;%%)[[h%@$AD6M 	NtJ A%HHOOod:.>q.A-B$GHLL& *34
3C)DF%Q (vT!A#d; FH FLLsxx/A AB  	D	Fs   3G% G6%G32G3c                    | j                   j                  | j                  j                                | j	                  |       y rL   )rv  r9   ri  r  r  r  s     rR   depart_system_messagez%LaTeXTranslator.depart_system_message  s-    ((*+t$rS   c                p   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                        r`|j                  j!                  |      dk(  rBd| j"                  j                  | j$                        v r| j&                  j                  d       | j                  j)                          | j                  j+                  || j                         | j                  j,                  dk(  rd	| j                  d<   | j/                  g        y )
NrG  table1tabularr  r  r  r  r   z\usepackage{booktabs})r9  rG  r?   rp   r<   table_columnwidthru  r  rt  r9   r  r  r  r  r   r  r  re  r  rv  r  r  r  r  r  s     rR   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,t||33D4F4FGGHHOON+ ))$>$$
2,DDj)""2&rS   c                   | j                         }	 | j                  |d   |      }| j                  j                  s?t        | j                        dk7  }| xj                  | j                  ||d      z  c_        | j                  |       | j                  j                  | j                  j                  |             | xj                  |z  c_        | j                  j                  | j                  j                         dz          | j                  j                          t        | j                        dkD  r| j                  j                         | _        | j                  |       y # t        $ r d}Y Vw xY w)Nr  r2  r  Tr  rj   r   )r  r]  r  ru  r  r  rt  rv  r  r  r9   r  r  r  r  r  )rQ   r  r  r  r  s        rR   depart_tablezLaTeXTranslator.depart_table%  s4   ++-	"((g=E   ((d../14JHH**4D*IIH$ 	))55e<=G))557$>?!t 1$ $ 0 0 4 4 6D4 )  	"!E	"s   E/ /E>=E>c                    d|v sd|v sd|v ry | j                  |      r| j                  j                  d       | j                  j                  d       | j                  |       y )Nr  rV  rW  rQ  rj   )r  rv  r9   r  r  s     rR   visit_targetzLaTeXTranslator.visit_target@  sV    $D >>$HHOOC $rS   c                &    | j                  |       y rL   r  r  s     rR   depart_targetzLaTeXTranslator.depart_targetL  r  rS   c                    | j                   j                  d      s#| j                  |       | j                  d        y y )Npreamble written)ru  r  r  r  r  s     rR   visit_tbodyzLaTeXTranslator.visit_tbodyO  s:       $$%78T"d# 9rS   c                     y rL   r:  r  s     rR   depart_tbodyzLaTeXTranslator.depart_tbodyV  r  rS   c                :    | j                   j                  d       y)zdefinition list termz\item[{Nri  r  s     rR   
visit_termzLaTeXTranslator.visit_termY  s     	
#rS   c                V   | j                   j                  d       |j                  dd      }t        |t        j
                        r| j                   j                  d       y t        |t        j                        s+| j                   j                  | j                  |             y y )Nz}] FTr]  rj   )rv  r9   ra  r  r   rl  
classifierr  )rQ   r  ra  s      rR   depart_termzLaTeXTranslator.depart_term_  st     NN54N@	i,HHOOD!Iu'7'78HHOOD--i89 9rS   c                     y rL   r:  r  s     rR   visit_tgroupzLaTeXTranslator.visit_tgroupi  r  rS   c                     y rL   r:  r  s     rR   depart_tgroupzLaTeXTranslator.depart_tgroupl  r  rS   c                    | j                   S rL   )_thead_depthrP   s    rR   r  zLaTeXTranslator.thead_depthq  r*  rS   c                   | xj                   dz  c_         d| j                         k(  rS| j                  j                  d| j                  j                  |      z         | j                  j                  dd       | j                  j                  r|| j                   dk(  r.dg}| j                  |j                  j                  d      dgz   }ndg}dg}| j                  j                  || j                  j                  z   |z   d	gz          | j                  j                  | j                  j                                y )
Nr  z{%s}
r;  rD  Fz}\\z\caption[]{z (... continued)}\\rj   )rI  r  rv  r9   ru  r  r  r  r  r  r  r  )rQ   r  rn  ro  s       rR   r  zLaTeXTranslator.visit_theadt  s   Q  ""HHOOHt'8'8'E'Ed'KKL!!"4a8$$  A%#n))$++*<*<eDxO%&./HHOOC$"3"3";";;dBdVKL))5578rS   c                    |^| j                   j                  | j                  j                                | j                  j	                         r|j                  |        | xj                  dz  c_        y r,  )rv  r  ru  r  r  r\   rI  r  s     rR   r  zLaTeXTranslator.depart_thead  sV    HHOOD--::<=  --/t$QrS   c                B   t        |j                  t        j                        r7| j	                  | j
                         | j                  j                  d       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         n,| j'                  d       | j"                  j                  d       | j                  j                  d       yt        |j                  t        j(                        rA| j	                  | j*                  j,                         | j                  j                  d       y| j.                  }| j0                  j3                  |      }| j"                  j                  d       |t5        | j0                  j6                        kD  r| j                  j                  r/t        j                  | j                   d<   |d	t9        |      z  z  }nJ| j'                  d       | j'                  d
d       | j"                  j                  dt9        |      z         d|j                  d   v r_t        j:                  | j<                  d<   | j?                  |jA                               }| j"                  j                  d|d|d       n| j"                  j                  d|z         dg}|| jC                  |j                  d      z  }| j                  j                  dj%                  |      dz          |t5        | j0                  j6                        kD  r/| j                  j                  s| j                  dxx   dz  cc<   yyy)z Append section and other titles.r-   r  rD   z
\DUtitle[%s]{r	  z

\DUtitle{r  z

z[section%s]r  r  z\begin{DUclass}{section%s}
zsystem-messagesrE  rK  rY  z]{\color{red}z\%s{F)r  r  z%
}
r  r  N)"r  r  r   r[   r  rD   ri  r9   topicr  r  r  rp   r;   r9  r+  rA   rv  ro   r  rG  ru  r  r  re  r  r  r  r   rE  r?   r  r  r  )rQ   r  r  r  section_namesection_titlebookmarks          rR   visit_titlezLaTeXTranslator.visit_title  s    dkk5>>2&&tzz2LL#ekk2DKK)9)9:DKK7kk),E1D1D0EG}}33*6*C*Cw' 2SXXg5F FG%%g./LL&U[[1&&t'8'8'@'@ALL# &&E<<//6LHHOOF#s4<<0011==77.:.G.GDNN7+ ML4G$GGL))'2)))Y?HHOO$C&25&9%: ; !DKK	$::-9-?-?!!'* $DKKM : ,m!= > , 67 tH **4;;5*IIHLLX 6 ABDLL1122<<R $66  = 3rS   c                    | j                   j                  | j                  j                                t	        |j
                  t        j                  t        j                  f      r| j                          y y rL   )
rv  r9   ri  r  r  r  r   rG  r[   r  r  s     rR   depart_titlezLaTeXTranslator.depart_title  sL    ((*+dkkEKK#@A%%' BrS   c           	        | j                   rSd|d   v rL| j                  j                  | j                        }dddd}d| j                  j                  v r|d= 	 ||   }| j                  j                  d       t        |d         dkD  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                  t        j0                        j2                  }|j'                  dd      }t        | j                  j                        }t        |j                         t        j                        r#| j7                  |d   j%                               }nd}d|d   v rt(        j8                  | j:                  d<   dz  | j:                  d|z   <   d||fz  | j:                  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                  j=                  |      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# t4        $ r | j                  d       i }Y Iw xY w)*z_Write the table of contents.

        Called from visit_topic() for "contents" topics.
        localr  rg   minisect)rg   r  r  r  r  zUSkipping local ToC at "%s" level.
  Feature not supported with option "use-latex-toc"rV  rj   namesr  Tr  r  z\pdfbookmark[%d]{%s}{%s}
r  contentsr   ztoc-listNzhSetting "use_latex_toc" is True but "contents" details are missing. Directive option values may be lost.r  r-   r  z\do%stoczminitoc-z\mtcsetdepth{%stoc}{%d}zminitoc-%s-depth)rW  rV  rg   r  z\setcounter{%stocdepth}{%d}z\mtcsettitle{ztoc}{r  z\%stoc
z\setcounter{tocdepth}{%d}
Contentsz!\renewcommand{\contentsname}{%s}
z\tableofcontents
) r2   re  r  r  r  r  r/  r   rr  rv  r9   r  r  r  ra  rD   rp   rc  r  r  r9  toc_listrA   r  pendingdetailsAttributeErrorr  r  r?   r  r  )
rQ   r  rN  minitoc_namesmtc_namer]  r  maxdepthrD   offsets
             rR   visit_contentszLaTeXTranslator.visit_contents  s    'T)_"<<<//0B0BCL%+(.(.0M DLL111!),%(6 	tG}!HH**4*>>Ht~~'5tI.++x7HHOO9!//1!^^-446!XXej\:1=?? @ !!)5)>)>DNN:&d#	nnU]]3;;G
 GQ'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A  %		 P()48  : nn$	%6  	II J KG	s   N4 )O' 40O$'PPc                   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 r`| j                  d       | j                  j                  rt        j                  | j                   d<   | j                  | j                         nId|d   v r-| j                  d       | j                  | j"                         n|d   j%                  dd       | j'                  |       y )NrY  r  rI   z\begin{abstract}r   rH   rM  )rc  rp   r4   r  rI   rv  r9   r  ra  r   rD   r  r  r;   r9  abstract_legacyrA   rH   r  r.  r  s     rR   visit_topiczLaTeXTranslator.visit_topic  s    i(%DO+--22&&t}}5HHOO/0$..*EKK8 9 T)_,%%j1==771=1M1MDNN:.**4==9i0%%l3**4??;Y&&q'2""4(rS   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 )NrI   r  z\end{abstract}
rY  rH   )rp   r4   rv  r9   r  r1  r  r  s     rR   depart_topiczLaTeXTranslator.depart_topic8  s}    $y/)00HHOO/04	?*t$##D)$y/)tI.%%' /rS   c                    | j                  d       | j                  j                  d       | j                  j                  d       y )N
transitionzN
%___________________________________________________________________________
z\DUtransition
r~  r  s     rR   visit_transitionz LaTeXTranslator.visit_transitionD  s2    l+/0*+rS   c                     y rL   r:  r  s     rR   depart_transitionz!LaTeXTranslator.depart_transitionI  r  rS   c                &    | j                  |       y rL   r%  r  s     rR   visit_versionzLaTeXTranslator.visit_versionL  r'  rS   c                &    | j                  |       y rL   r)  r  s     rR   depart_versionzLaTeXTranslator.depart_versionO  r+  rS   c                F    t        d|j                  j                  z        )Nz$visiting unimplemented node type: %s)r  rY   rz   r  s     rR   r!  z#LaTeXTranslator.unimplemented_visitR  s$    !"H"&.."9"9#: ; 	;rS   rw   )TFFF)rx   z	list[str]rL   )r  listrx   ry   )rx   rs  r0  )rP  )rz   r{   r|   r#  rx  r6   r7   rW  r  r  r  r7  r  r  r  r~  r   r  r  r  r  rm  r  r  r   rM   r|  rR  r  r  rZ  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.  r1  r3  r5  r9  r=  r@  rB  rE  rH  rK  rM  rO  rS  r[  rg  rj  rm  r  rp  rs  ru  rw  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.  r1  r3  r6  r9  r;  r=  r?  rA  rC  r]  rt  rv  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.  r3  r5  r7  r9  r<  r>  r@  rC  rE  rG  rI  r  r  r  rQ  rS  rc  rf  rh  rk  rm  ro  rq  r!  r   r   s   @rR   rN   rN   l  s    H ! &+" $' 
 MM ',#H!&NGE }}ellEMM}}ejj%2D2DFO .3 BPN %D&:P:Up %"**^46
:> <A,16?,@.=@"4
44 ! !&$1$!*+&'*
!,
!    
+/8&"&&"
. !&' !&'&'2
!;"13/()'V'(ED@6>8, ,8(t8&80=d):5(4!
*#/!4$
%"%4,):)4$
)BAF7,4--%0!% $DN$`!H"$"
4
3!;&' 2"
O"
 2D"
&''! AD 
(! $/*4%/#+-
$!&' '/#C8%'*!6
 !$$: L!9:7|(
Pd)2
(,
&';rS   rN   )<r#  
__future__r   __docformat__rZ  ra   r.  pathlibr   rJ  r   r   r   r	   r
   docutils.transformsr   r   docutils.utils._roman_numeralsr   docutils.utils.mathr   r   __file__r  r   r   r   dictr)  r9  r  rE  rF  r  r  rG  r2  rH  re  r  r  r+  r[  r  rC  r  r@  rB  r>  r  r?  
block_namedefinitionsr^   rJ  r  r  DoctreeTranslatorrN   r:  rS   rR   <module>r     s   $ "" 
    ? ? 6 7 B>(( HJW^^ HJVn nh84 8<2 2 / >   6 
3   J  C 
" ? 	  ( # 

>
)G< 7 7zz&!}}T"[[%
!"o@@%++-K 	j+677(h h^1 1hJ JZh#;g// h#;I7 7s   9A%FF$