
    k7ic4                   p   S r SSKJr  SrSSKrSSKrSSKrSSKJr  SSK	J
r
JrJrJrJr  SSKJrJr  SSKJr  SS	KJrJr  \" \5      R0                  r " S
 S\R4                  5      r " S S5      r " S S\5      r " S S5      rS\l        S\l         S\l!        S\l"        S\l#        S\l$        S\l%        S\l&        S\l'        S\l(        S\l)        S\l*        S\l+        S\l,        S  r-\." \S!-  S"S#9 r/\/ Hn  r0\0Rc                  S$5      r0\0Re                  S%5      (       d  M,  \0Rg                  S&5      r4\4(       d  MF  \-" \/5      r5\4S';   a  \5Rc                  5       r5\6" \\4\55        Mp     SSS5         " S( S)5      r7 " S* S+5      r8 " S, S-5      r9 " S. S/\Rt                  5      r;g! , (       d  f       NB= f)0zLaTeX2e document tree Writer.    )annotationsreStructuredTextN)Path)frontendnodes	languageswritersutils)
references
writer_aux)RomanNumeral)pick_math_environmentunichar2texc                  ~  ^  \ rS rSrSr Sr\rSr/ SQr	SS/ SS	/S
SS.4PSS/SSS.4PSS/SS/SSSS.4PSS/SS\
R                  S.4PSS/SS\
R                  S .4PS!S"// S#QS$SS%.4PS&S'/S(S)S*\
R                  S+.4PS,S-/S)S.\
R                  S/.4PS0S1/S2SS3.4PS4S5/S6S\
R                  S.4PS7S8/S9\
R                  S:/S;.4PS<S=/S>\S.4PS?\-  S@/\SASB.4PSCSD/SES\
R                  S.4PSFSG/SHS\
R                  S .4PSISJ/S6S\
R                  S.4PSKSL/SMS\
R                  S .4PSNSO/S6S\
R                  S.4PSPSQ/SRS\
R                  S .4PSSST/S6S\
R                  S.4PSUSV/SWSXS.4PSYSZ/SS(S.4PS[S\/S6S\
R                  S.4PS]S^/SS_S`.4PSaSb/SS\
R                  S.4PScSd/SSeS`.4PSfSg/ShSiSB.4PSjSk/SlS(S.4P\
R                  Sm/S\
R                  Sn.4PSoSp/Sq/SSr\
R                  \	Ss.4PStSu/SvS(S.4PSwSx/SySzS.4PS{S|/S}S(S.4PS~S/S(S\
R                  S.4PSS/S6S\
R                  S.4PSS/SS\
R                  S .4PSS/SS\
R                  S.4PSS/SS\
R                  S .4PSS/SES\
R                  S.4P74rSr0 rSrSrSr\S-   rSr SS jrU 4S jrSS jrSU 4S jjrSrU =r$ )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_preambler0   	fallbackspdfsetup	titledata)titlesubtitlebody_pre_docinfodocinfo
dedicationabstractbodyc                X    [         R                  R                  U 5        [        U l        g N)r	   r   __init__LaTeXTranslatortranslator_classselfs    [/home/james-whalen/.local/lib/python3.13/site-packages/docutils/writers/latex2e/__init__.pyrN   Writer.__init__   s    % /    c                b   > [         TU ]  5       [        R                  [        R
                  /-   $ rM   )superget_transformsr   Admonitionsr   CitationReferences)rR   	__class__s    rS   rX   Writer.get_transforms  s/    w%'))00+  	rU   c           	     b   U R                  U R                  5      nU R                  R                  U5        U R                   H  n[	        X[        X5      5        M     U R                  5         [        R                  " U R                  S   5      R                  U R                  5      U l        g )Nr>   )rP   document	walkaboutvisitor_attributessetattrgetattrassemble_partsstringTemplateparts
substituteoutput)rR   visitorparts      rS   	translateWriter.translate	  s    ''6(++DD 67 , 	oodjj&< ((2
4::(> 	rU   c                0  > [         TU ]  5         U R                   H  nXR                  ;   a  M  [	        X5      nXR
                  ;   a8  U(       a  UR                  S5        SR                  U5      U R                  U'   Mf  SR                  U5      U R                  U'   M     [        U R                  R                  R                  5      nUR                  5       (       d  U R                  UR                  -  nUR                  SS9U R                  S'   g)z9Assemble the `self.parts` dictionary of output fragments.r.   
utf-8encodingr>   N)rW   rc   r`   rf   rb   
head_partsr:   joinr   r^   settingsr>   existsdefault_template_pathname	read_text)rR   rj   linestemplatepathr[   s       rS   rc   Writer.assemble_parts  s     ++Dzz!D'E&LL$#'99U#3

4  $&775>

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

:rU   )rh   rP   returnNone)__name__
__module____qualname____firstlineno__	supporteddefault_templateLATEX_WRITER_DIRrv   default_preambletable_style_valuesr   validate_booleanvalidate_comma_separated_listSUPPRESS_HELPsettings_specrelative_path_settingssettings_defaultsconfig_sectionconfig_section_dependenciesrr   r`   rh   rN   rX   rk   rc   __static_attributes____classcell__r[   s   @rS   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rU   r   c                  b   \ rS rSrSr0 SS_SS_SS_S	S
_SS_SS_SS_SS_SS_SS_SS_SS_SS_SS_SS _S!S"_S#S$_0 S%S&_S'S(_S)S*_S+S,_S-S._S/S0_S1S2_S3S4_S5S6_S7S8_S9S:_S;S<_S=S>_S?S@_SASB_SCSD_SESF_E0 SGSH_SISJ_SKSL_SMSN_SOSP_SQSR_SSST_SUSV_SWSX_SYSZ_S[S\_S]S^_S_S`_SaSb_ScSd_SeS`_SfSg_E0 ShSi_SjSk_SlSm_SnSo_SpSq_SrSs_StSu_SvSw_SxSy_SzS{_S|Ss_S}Su_S~S_SS_SS_SS_Er\R                  5        V VVs0 s H  u  pUR                  5       U_M     snnn rSrSSS.r	SSS jjr
S rS rS rSrgs  snnn f )Babeli)  z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                J    X l         U R                  U5      U l        0 U l        g rM   )reporterlanguage_namelanguageotherlanguages)rR   language_coder
  s      rS   rN   Babel.__init__  s!     **=9 rU   c                  ^  [        T R                  R                  5       5      nU(       a)  UR                  " ST R                  =(       d    S 35        O%UR                  " T R                  =(       d    S5        SSR                  U5      -  /T l        / nSR                  U 4S jU 5       5       H  nX2;  d  M
  UR                  U5        M     U(       a-  T R                  R                  SSR                  U5      -  5        SU;   a  T R                  R                  S	5        S
U;   a  T R                  R                  / SQ5        SU;   a  T R                  R                  / SQ5        US   S:X  aC  ST R                  R                  5       ;   a%  T =R                  SSST R                  -  /-  sl        SR                  T R                  5      $ )z7Return the babel call with correct options and settingszmain=r   z\usepackage[%s]{babel},r.   c              3  \   >#    U  H!  nTR                   R                  US 5      v   M#     g7f)r.   N)active_charsget).0lngrR   s     rS   	<genexpr>!Babel.__call__.<locals>.<genexpr>  s'     M9C**..sB779s   ),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}rn   )sortedr  keysr:   r  rs   setupextend)rR   r   
shorthandscs   `   rS   __call__Babel.__call__  s   4..3356	uT]]%?i$@ABT]]7i8/#((92EEF

M9MMA"!!!$ N 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$$rU   c                    [         R                  " U5       H  n U R                  U   s  $    U R                  b(  U R                  R                  U R                  U-  5        g! [         a     MZ  f = f)z,Return TeX language name for `language_code`r.   )r
   normalize_language_taglanguage_codesKeyErrorr
  warningwarn_msg)rR   r  tags      rS   r  Babel.language_name  sk    //>C**3// ?
 ==$MM!!$---"?@	  s   A$$
A21A2c                    U R                   $ rM   )r  rQ   s    rS   get_languageBabel.get_language  s    }}rU   )r  r  r
  r  rM   r|   )r   r   r   r   __doc__r&  itemslowerr)  r  rN   r"  r  r-  r   )r  kvs   000rS   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/Etqaggil/EFN=H* (-',
L!
"%H	c Gs   .D*r   c                  8   ^  \ rS rSrSrU 4S jrS rS rSrU =r	$ )SortableDicti  u[   Dictionary with additional sorting methods

Deprecated. Will be removed in Docutils 0.24.
c                Z   > [         R                  " S[        SS9  [        TU ]  " U0 UD6  g )NzP`writers.latex2e.SortableDict` is obsolete and will be removed in Docutils 0.24.   
stacklevel)warningswarnDeprecationWarningrW   rN   )rR   argskwargsr[   s      rS   rN   SortableDict.__init__  s-     ?(Q	8 	$)&)rU   c                4    [        U R                  5       5      $ )zReturn sorted list of keys)r  r  rQ   s    rS   
sortedkeysSortableDict.sortedkeys  s    diik""rU   c                R    U R                  5        Vs/ s H  oU   PM	     sn$ s  snf )z$Return list of values sorted by keys)rA  )rR   keys     rS   sortedvaluesSortableDict.sortedvalues  s%    %)__%67%6cS	%6777s   $ )
r   r   r   r   r/  rN   rA  rE  r   r   r   s   @rS   r5  r5    s    
*#8 8rU   r5  c                      \ rS rSrSrSrg)PreambleCmdsi  z'Building blocks for the latex preamble.rG  N)r   r   r   r   r/  r   rG  rU   rS   rI  rI    s    1rU   rI  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                    [        U 5      /nU  H+  nUR                  5       (       d    OUR                  U5        M-     SR                  U5      R	                  5       $ Nr.   )nextstripr:   rs   rstrip)fpblocklines      rS   _read_blockrR  _  sJ    "XJEzz||T  775>  ""rU   zdocutils.styro   rp   z% 
z:::)colorfloattabletextcompc                     \ rS rSrSr\" S5      S\" S5      S\" S5      S0r\" S	5      S
\" S5      S\" S5      S\" S5      S\" S5      S\" S5      S\" S5      S\" S5      S\" S5      S\" S5      SSS0r0 SS _S!S"_S#S _S$S"_S%S&_S'S(_S)S&_S*S+_S,S-_S.S/_S0S1_S2S3_S4S5_S6S7_S8S9_S:S;_S<S=_S>S?S@SASB.Er0 SCS_SDSE_SFSG_SHSI_SJSK_SLSM_SNSO_SPSQ_SRSS_STSU_SVSW_SXSY_SZS[_S\S]_S^S__S`Sa_SbSc_SdSeSfSgSh.Er	0 SiSj_SkSl_SmSn_SoSp_SqSr_SsSt_SuSv_SwSx_SySz_S{S|_S}S~_SS_SS_SS_SS_SS_SS_0 SS_SS_SS_SS_SS_SS_SS_SS_SS_SS_SS_SS_SS_SS_SS_SS_SS_E0 SS_SS_SS_SS_SS_SS_SS_SS_SS_SS_SS_SS_SS_SS_SS_SS_SS_E0 SS_SS_SS_SSg_SS_SS_SS_SS_SS_SS_SS_SS_SS_SS_SS_SS_SS_ESSSSSS.Er
SSSSS.rSrg)CharMapsi|  z8LaTeX 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{}rr  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'  rG  N)r   r   r   r   r/  ordallttspecialunsupported_unicodeutf8_supported_unicoderW  pifontr   rG  rU   rS   rY  rY  |  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^ 	FrU   rY  c                  6    \ rS rSrSrSS	S jjrS rS
S jrSrg)DocumentClassi+  z"Details of a LaTeX document class.c                b   Xl         X l        / SQU l        U R                   R                  S5      (       d0  U R                   R                  S5      (       d  U R                   S;   a  U R                  R	                  SS5        U R                  (       a  U R                  R	                  SS5        g g )N)section
subsectionsubsubsection	paragraphsubparagraphbookreport)ctexrepmemoirmwbkmwrepscrreprtr   chapterrj   )document_class
_with_partsectionsendswithinsert)rR   r  	with_parts      rS   rN   DocumentClass.__init__.  s    ,#6((00""++H55"" '< <MM  I.??MM  F+ rU   c                Z    U[        U R                  5      ::  a  U R                  US-
     $ g)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  )rR   levels     rS   r  DocumentClass.section;  s+     C&&==q))rU   c                    [        U[        U R                  5      5      nSU R                  ;   a  US-  nU R                  S   S:X  a  US-  nU$ )a  
Return LaTeX equivalent of Docutils section level `depth`.

Given the value of the ``:depth:`` option of the "contents" or
"sectnum" directive, return the corresponding value for the
LaTeX ``tocdepth`` or ``secnumdepth`` counters.

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   rj   )minr  r  )rR   depths     rS   latex_section_depth!DocumentClass.latex_section_depthF  sM    " E3t}}-.%QJE==v%QJErU   )r  r  r  N)Fr|   )r  intr}   r  )	r   r   r   r   r/  rN   r  r  r   rG  rU   rS   r  r  +  s    ,,	rU   r  c                      \ rS rSrSrSS jrSS jrSS jrS rSS jr	S r
SS	 jrS
 rSS jrS S jrS rSS jrS rSS jrSS jrS rS rS rSS jrS rSS jrS rS rSS jrS rSrg)!Tablei_  a,  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                t    Xl         X l        SU l        U R                  5         / U l        / U l        SU l        g )NFr   )_translator_latex_typer=   close
_colwidths_rowspan	_in_thead)rR   
translator
latex_types      rS   rN   Table.__init__k  s4    %%$)!

rU   c                J    SU l         / U l        / U l        0 U l        SU l        g )NTF)_open
_col_specscaption_attrs_in_headrQ   s    rS   open
Table.openu  s%    
rU   c                X    SU l         S U l        / U l        0 U l        / U l        SU l        g NF)r  r  r  r  stubscolwidths_autorQ   s    rS   r  Table.close|  s-    

#rU   c                    U R                   $ rM   )r  rQ   s    rS   is_openTable.is_open  s    zzrU   c                r   UR                   U l         SU;   a  U R                  SUS   5        S/UR                  -   US   -    Vs/ s H  nUS;   d  M  UR                  SS5      PM     nnUS   U l        SUS   ;   =(       d    SUR                  ;   =(       a    S	US   ;  =(       a    S
U;  U l        g s  snf )Nalignr   classes)r   r   r   r   r   r   r  r   colwidths-givenwidth)r=   settable_stylereplacebordersr  )rR   nodert   clsr  s        rS   set_table_styleTable.set_table_style  s    $,$A$A!d?HHWd7m, !+|!)!5!5 6!%i 1P 1s NN	 83;;y,7 1 	 P
 r{ 0DO C !L#3x7K7K#K 7#4DO#K 7 $+$#6 	Ps   
B4B4c                ^    U R                   S:X  a  U R                  (       d  gU R                   $ )N	longtablez
longtable*)r  r  rQ   s    rS   get_latex_typeTable.get_latex_type  s%    {*4<<rU   c                     X R                   U'   g rM   r  )rR   attrvalues      rS   r  	Table.set  s    !DrU   c                @    XR                   ;   a  U R                   U   $ g rM   r  )rR   r  s     rS   r  	Table.get  s    ;;;;t$$rU   c                &    U R                   S:X  a  gg)Nr   |r.   )r  rQ   s    rS   get_vertical_barTable.get_vertical_bar  s    <<:%rU   c                   / n[        U R                  5      nSSSSS.nUR                  U R                  S5      5      nU R                  5       nU(       a,  UR	                  S5      (       d  UR                  SU-  5        SnU R                  (       dN  U R                  S	:X  a*  U R                  (       d  UR                  S
XS-   4-  5        OUR                  SU-  5        UR                  SU< SU< 35        SR                  U5      $ )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{r\  rn   )
r  r  r  r  
startswithr:   r  r  r=   rs   )rR   r  opening
nr_of_cols	align_mapr  r  s          rS   get_openingTable.get_opening  s    )
"$#	 dhhw/0((*
..{;;NN@5HIE""||z)$2K2K  I"'A!6 7 8 AEIJ*e<=yy!!rU   c                D   / nU R                   S:X  a  UR                  S5        UR                  SU R                  5       -  5        U R                  S5      (       a5  U R                  5       R	                  S5      (       d  UR                  S5        SR                  U5      $ )Nr   z\bottomrulez\end{%s}r  r  r\  rn   )r  r:   r  r  r  rs   )rR   closings     rS   get_closingTable.get_closing  s    <<:%NN>* 	{T%8%8%::;HHW'')44[AANN3yy!!rU   c                    U R                   R                  U5        U R                  R                  UR                  R	                  S5      5        g )Nstub)r  r:   r  
attributesr  rR   r  s     rS   visit_colspecTable.visit_colspec  s5    t$

$//--f56rU   c                
   U R                  5       nS/[        U R                  5      -  U l        U R                  (       a"  / U l        S/[        U R                  5      -  nGOtU R                  (       a  SnSn[        S U R                   5       5      nXd:  a  XTU-  -  nU R                   Vs/ s H  nXQR                  5       S-   -  U-  S-   PM      snU l        U R
                   Vs/ s H  nSU-  PM
     nnOS	nS
UR                  R                  S   ;  a  Sn	OSn	U R                   Vs/ s H  nUR                  5       U	-   U-  PM     snU l        [        U R
                  5      nUS:  d$  SWR                  R                  R                  ;   a$  U R
                   Vs/ s H  nXv-  PM	     snU l        U R
                   Vs/ s H  nSU-  PM
     nnX"R                  U5      -   U-   $ s  snf s  snf s  snf s  snf s  snf )z3Return column specification for longtable.
        r   lP   g(\?c              3  F   #    U  H  oR                  5       S -   v   M     g7f)r  N	propwidthr  r  s     rS   r  %Table.get_colspecs.<locals>.<genexpr>       M_Tnn.q0_   !r  g{Gzt?zp{%.3f\DUtablewidth}(   r  r  r  p{\DUcolumnwidth{%.3f}})r  r  r  r  r  r  r=   sumr  parentr  rs   )
rR   r  barlatex_colspecsr  factortotal_widthcolwidthnorm_length	allowances
             rS   get_colspecsTable.get_colspecs  s    ##%c$//22 DO!US%99N&&EFMT__MMK"+--+/??<+:4 !'..*:1*< =e CuL+:<DO /3oo?.=( 6@.=  ?N K !(:(:9(EE		+/??<+:4 !% 0 :KG+:<DOdoo.KQ'T[[-?-?-J-J"J37??#D3Bx $,#73B#D /3oo?.=( 98C.=  ?XXn--337<? <
#D?s   -%G,(G1, G6!G;H c                     U R                   (       a  SU R                  U R                     -  $ SU R                  U R                     -  $ ! [         a     gf = f)z4Return columnwidth for current cell (not multicell).z%.2f\DUtablewidthz\DUcolumnwidth{%.2f}*)r=   r  _cell_in_row
IndexErrorrQ   s    rS   get_column_widthTable.get_column_width  sV    	((+DOOD<M<M,NNN*4??4;L;L+MMM 		s   ,A A 
AAc                   ^ ^  [        U U4S j[        U5       5       5      nT R                  (       a  SU-  $ SU-  $ ! [         a     gf = f)z)Return sum of columnwidths for multicell.c              3  H   >#    U  H  nTR                   TU-      v   M     g 7frM   )r  )r  corR   starts     rS   r  .Table.get_multicolumn_width.<locals>.<genexpr>  s%      !8+6R "&!<+6s   "zp{%.2f\DUtablewidth}r  r  )r  ranger=   r  )rR   r"  len_multicol_widths   ``  rS   get_multicolumn_widthTable.get_multicolumn_width  sT    	  !8+0;!8 8N((.??->> 		s   4> > 
A
Ac                ^    U R                   S:X  a  SU R                  R                  5       :H  $ g)Nr  r  r   )r  r  thead_depthrQ   s    rS   need_recurseTable.need_recurse  s-    {*((44666rU   c                |    U =R                   S-  sl         U R                  S:X  a  S/$ U R                  S:X  a  S/$ / $ )Nr  r   \hline
r   z	\toprule
)r  r  rQ   s    rS   visit_theadTable.visit_thead  s=    !<<:%= \\Z'!?"	rU   c                ,   / nU R                   S:X  a  UR                  S5        U R                  S:X  a  SU R                  R	                  5       :X  a  UR                  S5        O[        U R                  5      nUR                  S5        [        S U R                   5       5      nUS:  d  US	:  a<  U R                  (       d+  UR                  S
X R                  SU5      4-  S-   S-   5        UR                  S5        U =R                  S-  sl
        U$ )Nr   z	\midrule
r  r  z\endfirsthead
z	\endhead
c              3  F   #    U  H  oR                  5       S -   v   M     g7f)r7  Nr  r  s     rS   r  %Table.depart_thead.<locals>.<genexpr>-  r
  r  r      z\multicolumn{%d}{%s}r   z,{\raggedleft\ldots continued on next page}\\rn   z\endfoot
\endlastfoot
)r  r:   r  r  r*  r  r  r  r  r'  r  )rR   an_ct_widths       rS   depart_theadTable.depart_thead   s     <<:%HH]#{*D$$0022+,$//*'MT__MMR<GbL9L9LHH4 #%?%?3%GHINO  $$ % 56!rU   c                    SU l         g Nr   r  rQ   s    rS   	visit_rowTable.visit_row8  s
    rU   c                ~   S/nS U l         [        [        U R                  5      5       H/  nU R                  U   S:  d  M  U R                  U==   S-  ss'   M1     U R                  S:X  a  [        [        U R                  5      5       Vs/ s H  nU R                  U   S::  d  M  US-   PM     nn[        U5      [        U R                  5      :X  a  UR                  S5        U$ SnUR                  5           UR                  5       nUSXU4-  -  nM  U$ s  snf ! [         a     Of = fUR                  U5        N))N \\
r   r  r   r.  r.   z\cline{%d-%d}
)	r  r$  r  r  r  r:   reversepopr  )rR   resirowspansclinec_starts         rS   
depart_rowTable.depart_row;  s4   k s4==)*A}}Q!#a A%  + <<:%%*3t}}+=%> 2%>==+q0 !%>H 28}DMM 22

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

5!s   D'	D;D 
D*)D*c                B     X R                   U'   g ! [         a     g f = frM   r  r  )rR   cellr  s      rS   set_rowspanTable.set_rowspanT  s%    	"'MM$ 		    
c                B     U R                   U   $ ! [         a     gf = fr;  rK  )rR   rL  s     rS   get_rowspanTable.get_rowspanZ  s(    	==&& 		rO  c                    U R                   $ rM   r<  rQ   s    rS   get_entry_numberTable.get_entry_number`         rU   c                .    U =R                   S-  sl         g Nr  r<  rQ   s    rS   visit_entryTable.visit_entryc  s    QrU   c                |    [        U R                  5      U R                  :  a  U R                  U R                     $ gr  )r  r  r  rQ   s    rS   is_stub_columnTable.is_stub_columnf  s0    tzz?d///::d//00rU   )r  r  r  r  r  r  r  r  r  r  r  r  r  r=   r  Nr|   r}   str)
\linewidth)r   r   r   r   r/  rN   r  r  r  r  r  r  r  r  r  r  r   r  r  r'  r+  r/  r8  r=  rH  rM  rQ  rT  rY  r\  r   rG  rU   rS   r  r  _  s    
$8" "

",
"7
+4Z	
02!rU   r  c                    ^  \ rS rSrSrSrSrSrSrSr	Sr
SrSrSrSrSrSr\R$                  \R&                  \R(                  \R*                  \R,                  \R.                  4r\4SU 4S jjjrS rS rS	 rS
 r\R@                  " S5      4S jr!S r"SS jr#  S SS jjr$SS jr%SSS jjr&SSS jjr'SS jr(SS jr)SS jr*SS jr+S r,SS jr-SS jr.SS jr/SS jr0SS jr1SS jr2SS jr3SS jr4SS  jr5SS! jr6SS" jr7SS# jr8SS$ jr9SS% jr:SS& jr;SS' jr<SS( jr=SS) jr>SS* jr?SS+ jr@SS, jrASS- jrBSS. jrCSS/ jrDSS0 jrESS1 jrFSS2 jrGSS3 jrHSS4 jrISS5 jrJSS6 jrKSS7 jrLSS8 jrMSS9 jrNS: rOSS; jrPSS< jrQSS= jrRSS> jrSSS? jrTSS@ jrUSSA jrVSSB jrWSSC jrXSSD jrYSSE jrZSSF jr[SSG jr\SSH jr]SSI jr^SSJ jr_SSK jr`SSL jraSSM jrbSSN jrcSSO jrdSSP jreSSQ jrfSSSR jjrgSSS jrhSST jriSSU jrjSSV jrkSSW jrlSSX jrmSSY jrnSSZ jroSS[ jrpSS\ jrqS] rrSS^ jrsSS_ jrtSS` jruSSa jrvSSb jrwSSc jrxSSd jrySSe jrzSSf jr{SSg jr|SSh jr}SSi jr~SSj jrSSk jrSSl jrSSm jrSSn jrSSo jrSSp jrSSq jrSSr jrSs rSSt jrSSu jrSSv jrSSw jrSSx jrSSy jrSSSz jjrSS{ jrSS| jrSS} jrSS~ jrSS jrSS jrSS jrSS jrSS jrSS jrSS jrSS jrSS jrSS jrS rSS jrSS jrSS jrSS jrSSS jjrSS jrSS jrSS jrSS jrSS jrSS jrSS jrSS jrSS jrSS jrSS jrSS jrSS jrSS jrSS jrSS jrSS jrSS jrSS jrSS jrSS jrS rSS jrS rS rSS jrSS jrSS jrSS jrSS jrSS jrSS jrSS jrSS jrSSSSS.rSS jrSS jrSS jrSS jrSS jrSS jrS rSS jrSS jrSS jrSS jrSS jrSS jrSS jrSS jrSS jrSS jrSS jrSS jrSS jrSS jrSS jrSrS rSS jrSS jrSS jrSS jrS rSS jrSS jrSS jrSS jrSS jrSS jrS rSrU =r$ )rO   il  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.
Fr9   r   c                `  > [         T	U ]  U5        U R                  R                  R                  U l        U R                  R                  R                  U l        U R                  nUR                  c2  UR                  (       d!  SUl        [        R
                  " S[        SS9  UR                  c!  SUl        [        R
                  " S[        SS9  UR                  b  [        R
                  " S[        SS9  U R                  UR                  5      U l        UR"                  U l        UR$                  U l        UR                  U l        UR&                  U l        UR(                  U l        UR*                  U l        [-        USS	5      U l        UR0                  U l        UR2                  R5                  S
S5      U l        S	U l        S	U l        UR6                  (       a1  [:        R<                  " SUR6                  5      u  nU l        U l        nOUR                  (       a  SU l        UR                  (       a  SU l        UR                  U l        [@        RB                  " URD                  UR                  5      U l#        U" URD                  UR                  5      U l$        U RF                  RJ                  S   U l&        URN                  /nU RH                  RP                  S;  a%  URS                  U RH                  RP                  5        SRU                  [W        S U5      5      U l'        [Y        URZ                  UR\                  5      U l/        UR`                  S	:X  a  SU l1        OSUR`                  -  U l1        URd                  U l2        SU RN                   SURZ                   S3/U l3        0 U l4        URj                  /U l5        0 U l6        / U l7        / U l8        / U l9        / U l:        / U l;        / U l<        / U l=        / U l>        / U l?        / U l@         / U lA        / U lB        S	//U lC        / U lD        / U lE        / U lF        URD                  S:w  a(  U R                  RS                  SURD                  -  5        S/U lG        / U lH        SU lI        / U lJ        / U lK        [        U S5      U lM        U R~                  U lN        / U lO        U R                   S;  a  SU R                   -  U Rh                  S'   U R                  (       d  U R.                  (       a  SU R.                  -  U Rh                  S'   U R.                  R=                  S5       HA  nUR                  5       nUS:X  a  SU Rh                  S '   M*  US!;  d  M2  S"U Rh                  S#'   MC     URZ                  R                  S$5      (       d/  S%U RN                  ;   d  S&U RN                  ;   a  S'U Rh                  S('   [        R                  " U5      nS)U;   U lU        U R                  (       a9  UR                  S)5        UR                  (       a  SU lU        OS*U Rl                  S+'   U Vs/ s H  nU R                  U5      PM     snU lY        S,/U lZ        U R(                  R                  5       S-;  a5  U R                  RS                  S.U R(                   S/U R(                   35        UR                  (       a%  U R                  RS                  UR                  5        S0RU                  U R                  5      U lZ        g s  snf )1NFzXThe default for the setting "use_latex_citations" will change to "True" in Docutils 1.0.   r8  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.   rd  re  z	(\w+)(.*)verbatimr   )r   r.   r  z\usepackage{graphicx}z\usepackage[%s]{graphicx}z\documentclass[]{r\  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,
              )\rW   rN   r^   r
  r(  r;  errorrt   r&   
use_bibtexr:  FutureWarningr=   use_verbatim_when_possibleto_latex_encodingoutput_encodinglatex_encodingr3   r4   reference_labelhyperlink_colorr7   rb   rd  r8   section_enumerator_separatorr  literal_block_envliteral_block_optionsresplitbibtexr   r-  r  language_modulebabelauthor_separatorsauthor_separatordocumentoptionsr  r:   rs   filterr  documentclassuse_part_sectiond_classgraphicx_optiongraphicx_packagedocutils_footnotesr?   r@   rA   rB   rC   rE   rF   rD   rG   rH   rI   rJ   rK   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_xetexrM  r  r
   get_stylesheet_listfallback_stylesheetremover<   stylesheet_callr0   hyperref_optionsr1  )
rR   r^   babel_classrt   _none	d_optionsencstylesheet_listpathr[   s
            rS   rN   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iik%<F %%&89 GGG %%o6 5 &&11%88$...d222,DDj)
  33H=#-#@ ##"":...+0( 9 / (78'6t  //5'68
 "8 8%%'/NN!!(( *66:6J6J5K L5595I5I4J*L M $$!!(()B)BC 3 8 89N9N O8s   \+c                4   [        U5      nUR                  S;   nU R                  R                  (       a~  U(       a  UR	                  S5      n UR                  SS9nU R                  R                  R                  UR                  5       5        U(       a  SU S3nSUR                  5        S	U 3$ U(       a  UR                  UR                  -  nSnOSnU R                  R                   (       a.  U["        R$                  " U R                  R&                  U5      -  $ XaR                  5       -  $ ! [         aY  nSU 3R                  SS5      nU R                  R                  R                  U5        SUR                  S	S
5      -   s SnA$ SnAff = f)z9Return code to reference or embed stylesheet file `path`.).styr.   r  ro   rp   zCannot embed stylesheet:
 \\/z% rn   
% Nz\makeatletter
z
\makeatotherz% embedded stylesheet: z\usepackage{%s}z
\input{%s})r   suffixrt   r1   with_suffixrx   record_dependenciesaddas_posixOSErrorr  r^   r
  r|  r  stemr/   r
   relative_pathoutput_path)rR   r  
is_packagecontenterrmsgcmds          rS   r  LaTeXTranslator.stylesheet_callg  sY    Dz[[L0
==))''/G..'.: 1155dmmoF-gYoF-dmmo->bi! " ;;*D$CC==((,,T]]-F-FMMM]]_$$)  83C59AA&#N&&,,S1ckk$7778s   D4 4
F>AFFFc                    SSSSSSSSS	S
SSSSS.nUR                  5       nUR                  S5      S   nX2;   a  X#   $ UR                  SS5      R                  SS5      $ )zsTranslate 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cp1252rg  )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-asciirS  r   rd  r.   r9   )r1  r  r  )rR   docutils_encodingr  rq   s       rS   r  !LaTeXTranslator.to_latex_encoding  s    
 %$$$&$%&&  &&!8 %**,>>#&q)><R(00b99rU   c                4    U R                   R                  U   $ rM   )r  labels)rR   docutil_labels     rS   language_labelLaTeXTranslator.language_label  s    ##**=99rU   c                   U R                   (       a  U$ [        R                  R                  5       nU R                  (       d  UR	                  [        R
                  5        U R                  (       a  U R                  (       d  U[        S5      	 U R                  S;   a  U R                  (       dq  U R                  (       a6  SU[        S5      '   U R                  U R                  S'   SU[        S5      '   O*SU[        S5      '   S	U[        S
5      '   SU[        S5      '   U R                  (       a3  SU[        S5      '   SU R                  R                  -  U[        S5      '   U R                  (       Gdr  U R                   R#                  S5      (       d]  UR	                  [        R$                  5        UR	                  [        R&                  5        UR	                  [        R(                  5        UR	                  [        R*                  5        U H  n[        U5      nU[        R(                  ;   a0  U R,                  (       d  [.        R(                  U R                  S'   MR  U[        R*                  ;   a  SU R                  S'   Mw  U R                   S:X  d  M  U[        R$                  ;   d  M  SU[        R$                  U   4-  U R                  S[1        U5      -   '   M     UR3                  U5      nU R                  (       d>  SnU R                  (       a  US-  nUS-   H  nUR5                  Xf-   US-   U-   5      nM     U R6                  (       a\  UR9                  S5      n[;        USS 5       H(  u  pU	R=                  5       (       a  M  Xx==   S-  ss'   M*     SR?                  U5      nU R                  (       a#  U R                  (       d  UR5                  SS5      nU$ ) a-  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.
rd  )rl  r.   z\underline{~}graphicxz\reflectbox{/}rZ  z
\textbar{}r  z\textless{}<z\textgreater{}>rc   	ri  rW  z\usepackage{pifont}r  z"\DeclareUnicodeCharacter{%04X}{%s}rj  r9   z,`'"<>r7  z{}rn   Nr  \\
z  z ~) re  rY  r  copyupdater  inside_citation_reference_labelr  rd  r  literalr  r@   insert_non_breaking_blanksrt   	tab_widthr  r  r  r  rW  r  r  rI  r_  rk   r  insert_newliner  	enumeratelstriprs   )
rR   textrV  chcpseparate_charscharry   rD  rQ  s
             rS   encode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9X99:X<<=X../LL)W***43K3K4@4I4ID%%j18??*2HD%%h/))V3 < <<=x;;B?@A %%k#b'&9:  ~~e$ }} N ||)+&* ||DKt1CD + JJt$E %U3BZ0{{}}HOH 1 !&&u-D<< ? ?<<d+DrU   z[
	]c                D    U R                  UR                  SU5      5      $ )z1Cleanse, encode, and return attribute value text.r  )r  sub)rR   r  
whitespaces      rS   attvalLaTeXTranslator.attval  s     {{:>>#t455rU   c                J    [        UR                  [        R                  5      $ )z@Check whether a node represents an inline or block-level element)
isinstancer  r   TextElementr  s     rS   	is_inlineLaTeXTranslator.is_inline  s    $++u'8'899rU   c                l    U R                   R                  SR                  S US    5       5      5        g)z)Append hypertargets for all ids of `node`%
c              3  ,   #    U  H
  nS U-  v   M     g7f)z"\raisebox{1em}{\hypertarget{%s}{}}NrG  )r  r   s     rS   r  6LaTeXTranslator.append_hypertargets.<locals>.<genexpr>  s       #=0;" $J#%$&0;s   idsN)r  r:   rs   r  s     rS   append_hypertargets#LaTeXTranslator.append_hypertargets  s0     	

 #=04U#= = 	>rU   c                    U(       a  SOSnUS    Vs/ s H
  ov SU S3PM     nnU(       aJ  U(       a  UR                  SS5        U(       a  UR                  S5        U(       a  UR                  SS5        U$ s  snf )	a3  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{r\  r   z\phantomsectionrn   )r  r:   )	rR   r  
set_anchorprotectnewlinepre_nlprefixr   r  s	            rS   ids_to_labelsLaTeXTranslator.ids_to_labels  sp     !(R7;E{C{HIbT,{Ca!34d#a& Ds   A9c                   US    Vs/ s H  o"R                  S5      (       d  M  UPM     nnU(       aI  US   R                  S5      US'   US    Vs/ s H  nUR                  S5      (       a  M  UPM     snUS'   ggs  snf s  snf )z8Convert ``align-*`` class arguments into alignment args.r  zalign-r  r  N)r  removeprefix)rR   r  r  r  s       rS   set_align_from_classes&LaTeXTranslator.set_align_from_classes1  s     !%YL>>(3KL!"I228<DM.29o @os&)nnX&>  #o @DO  M@s   A>A>B0Bc                    UR                  SU5      nUS:X  a  U R                  R                  S5        g US:X  a  U R                  R                  S5        g US:X  a  U R                  R                  S5        g g )Nr  r  z\raggedright
r  z\centering
r  z\raggedleft
)r  r  r:   )rR   r  r   r  s       rS   insert_align_declaration(LaTeXTranslator.insert_align_declaration:  s`    '*F?HHOO-.hHHOOO,gHHOO,- rU   c                l    Uc  UnU R                   (       a  g [        [        U5      U R                  U'   g rM   )r  rb   rI  rB   )rR   featurerD  s      rS   provide_fallback LaTeXTranslator.provide_fallbackC  s-    ;C##%lG<srU   c                b   [        UR                  [        R                  5      (       d  U R                  R                  S5        US    H  nUR                  S5      (       a`  U R                  R                  USS 5      nU(       a9  SU R                  R                  U'   U R                  R                  SU-  5        Mw  My  [        U[        R                  5      (       a  U[        R                  S/-   ;   a  M  U R                  S	S
5        U R                  R                  SU-  5        M     g)z6Open a group and insert declarations for class values.rn   r  	language-	   NTz\begin{selectlanguage}{%s}
r  duclassDUclassz\begin{DUclass}{%s}
)r  r  r   compoundr  r:   r  r  r  r  rV  r   r   r  rR   r  r  r  s       rS   duclass_openLaTeXTranslator.duclass_openJ  s    $++u~~66HHOOD!	?C~~k**::33CG<:>DJJ--h7HHOO$Ch$NO  T5;;//V66:K9LLL%%i; 83 >? #rU   c                   [        US   5       H  nUR                  S5      (       aD  U R                  R                  USS 5      nU(       a  U R                  R                  S5        M[  M]  [        U[        R                  5      (       a  U[        R                  S/-   ;   a  M  U R                  SS5        U R                  R                  S	5        M     g)
z$Close a group of class declarations.r  r  r  Nz\end{selectlanguage}
r  r  r  \end{DUclass}
)reversedr  r  r  r  r:   r  r   rV  r   r   r  r  s       rS   duclass_closeLaTeXTranslator.duclass_close[  s    DO,C~~k**::33CG<HHOO$=> T5;;//V66:K9LLL%%i; 23 -rU   c                Z    U R                   R                  U R                  5        Xl        g rM   )r  r:   r  )rR   new_outs     rS   push_output_collector%LaTeXTranslator.push_output_collectori  s    dhh'rU   c                \    U R                   nU R                  R                  5       U l         U$ rM   )r  r  rB  )rR   old_outs     rS   pop_output_collector$LaTeXTranslator.pop_output_collectorm  s$    ((>>%%'rU   c                   U HC  n[        U[        R                  [        R                  [        R                  45      (       a  MC    O   g[        U[        R
                  [        R                  45      (       a  U R                  U5      $ [        U[        R                  5      (       a  g[        U[        R                  [        R                  45      (       d  gg)a  
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)rR   r  childs      rS   r4  LaTeXTranslator.term_postfixr  s     Eeeoou~~&+nn&6 7 7 
 eeoou~~>??$$U++eU[[))#%%//53C3C!DEE!rU   c                t    U R                   R                  U R                  UR                  5       5      5        g rM   )r  r:   r  astextr  s     rS   
visit_TextLaTeXTranslator.visit_Text  s!    DKKM23rU   c                    g rM   rG  r  s     rS   depart_TextLaTeXTranslator.depart_Text      rU   c                P    US   R                  SS5        U R                  U5        g )Nr  r   abbreviationr  visit_inliner  s     rS   visit_abbreviation"LaTeXTranslator.visit_abbreviation  s$    Yq.1$rU   c                &    U R                  U5        g rM   depart_inliner  s     rS   depart_abbreviation#LaTeXTranslator.depart_abbreviation      4 rU   c                P    US   R                  SS5        U R                  U5        g )Nr  r   acronymrC  r  s     rS   visit_acronymLaTeXTranslator.visit_acronym  s$    Yq),$rU   c                &    U R                  U5        g rM   rH  r  s     rS   depart_acronymLaTeXTranslator.depart_acronym  rL  rU   c                4    SU l         U R                  U5        g )NT)r  visit_docinfo_itemr  s     rS   visit_addressLaTeXTranslator.visit_address  s    "%rU   c                4    U R                  U5        SU l        g r  )depart_docinfo_itemr  r  s     rS   depart_addressLaTeXTranslator.depart_address  s      &#rU   c                   US    Vs/ s H  nUS:w  d  M  UPM     snUS'   U R                   R                  (       at  [        R                  U R                  S'   SUS   ;   a  [        R
                  U R                  S'   U R                  R                  SSR                  US   5      -  5        g U R                  S5        SUS   ;   a  U R                  S5        [        U[        R                  5      (       d#  U =R                  U R                  USS9-  sl        U R                  U5        U R                  R                  S5        g s  snf )	Nr  
admonitionr|  z
\DUadmonition[%s]{r  Tr	  z\begin{DUadmonition})rt   r<   rI  admonition_legacyrB   error_legacyr  r:   rs   r  r  r   system_messager  r  )rR   r  r  s      rS   visit_admonition LaTeXTranslator.visit_admonition  s   *.y/ 3/3!\1 / 3Y==//+7+I+IDNN<($y/)*6*C*Cw'HHOO3CHHT)_4MMNl+d9o%!!'*$ 4 455HH**4*==H$/03s
   
EEc                    U R                   R                  (       a  U R                  R                  S5        g U R                  R                  S5        U R	                  U5        g )N}
z\end{DUadmonition}
)rt   r<   r  r:   r$  r  s     rS   depart_admonition!LaTeXTranslator.depart_admonition  sA    ==//HHOOE"/04 rU   c                   U R                   R                  U R                  UR                  5       5      5        [	        UR
                  [        R                  5      (       a  U R                  / 5        g U R                  U5        g rM   )
r  r:   r  r:  r  r  r   authorsr(  rU  r  s     rS   visit_authorLaTeXTranslator.visit_author  sT    dkk$++-89dkk5==11&&r*##D)rU   c                    [        UR                  [        R                  5      (       a;  U R	                  5       nU R
                  R                  SR                  U5      5        g U R                  U5        g rK  )	r  r  r   ri  r,  r  r:   rs   rY  )rR   r  author_names      rS   depart_authorLaTeXTranslator.depart_author  sL    dkk5==11335KHHOOBGGK01$$T*rU   c                &    U R                  U5        g rM   rU  r  s     rS   visit_authorsLaTeXTranslator.visit_authors      %rU   c                &    U R                  U5        g rM   rY  r  s     rS   depart_authorsLaTeXTranslator.depart_authors        &rU   c                    U =R                   U R                  USS9-  sl         U R                  U5        U R                   R                  S5        g )NTr^  z\begin{quote}r  r  r  r:   r  s     rS   visit_block_quote!LaTeXTranslator.visit_block_quote  s?    D&&tD&99$()rU   c                \    U R                   R                  S5        U R                  U5        g )Nz\end{quote}
r  r:   r$  r  s     rS   depart_block_quote"LaTeXTranslator.depart_block_quote  s!    ()4 rU   c                    U =R                   U R                  USS9-  sl         U R                  U5        U R                   R                  S5        g )NTr^  z\begin{itemize}r{  r  s     rS   visit_bullet_list!LaTeXTranslator.visit_bullet_list  s?    D&&tD&99$*+rU   c                \    U R                   R                  S5        U R                  U5        g )Nz\end{itemize}
r  r  s     rS   depart_bullet_list"LaTeXTranslator.depart_bullet_list  s!    *+4 rU   c                \    U R                   R                  S5        U R                  U5        g )N\textsuperscript{r  r:   rD  r  s     rS   visit_superscript!LaTeXTranslator.visit_superscript  s!    ,-$rU   c                \    U R                  U5        U R                  R                  S5        g Nr\  rI  r  r:   r  s     rS   depart_superscript"LaTeXTranslator.depart_superscript       4 rU   c                \    U R                   R                  S5        U R                  U5        g )Nz\textsubscript{r  r  s     rS   visit_subscriptLaTeXTranslator.visit_subscript  s!    *+$rU   c                \    U R                  U5        U R                  R                  S5        g r  r  r  s     rS   depart_subscript LaTeXTranslator.depart_subscript  r  rU   c                \    U R                   R                  S5        U R                  U5        g )N	\caption{r  r  s     rS   visit_captionLaTeXTranslator.visit_caption  s     %$rU   c                \    U R                  U5        U R                  R                  S5        g Nre  r  r  s     rS   depart_captionLaTeXTranslator.depart_caption  s     4 rU   c                ~    U R                  S5        U R                  R                  S5        U R                  U5        g )Ntitlereferencez\DUroletitlereference{)r  r  r:   rD  r  s     rS   visit_title_reference%LaTeXTranslator.visit_title_reference   s0    ./12$rU   c                \    U R                  U5        U R                  R                  S5        g r  r  r  s     rS   depart_title_reference&LaTeXTranslator.depart_title_reference  r  rU   c                    U R                   (       a  U R                  / 5        g U R                  R                  S5        U R	                  U5        g )Nz\begin{figure}[b])r&   r(  r  r:   r  r  s     rS   visit_citationLaTeXTranslator.visit_citation	  s8    ##&&r*HHOO01$$T*rU   c                   U R                   (       aZ  U R                  S   nSR                  U R                  SS  5      nU R                  R	                  X#/5        U R                  5         g U R                  R	                  S5        g )Nr   r.   r  \end{figure}
)r&   r  rs   r  r:   r,  )rR   r  labelr  s       rS   depart_citationLaTeXTranslator.depart_citation  sa    ##HHQKE77488AB<(DNN!!5-0%%'HHOO-.rU   c                   U R                   (       a*  U R                  R                  UR                  5       /5        U R                  (       a\  U R
                  (       d#  U R                  R                  S5        SU l        g U R                  S   S;   d   S5       eU R                  S	 g SnSU;   a  US   nO"SU;   a  U R                  R                  US      nU R                  R                  S	U-  5        g )
Nz\cite{Tr  r  rn   z2unexpected non-whitespace while in reference labelr.   refidrefname\hyperlink{%s}{[)	r  r  r:   r:  r&   r  r  r^   nameids)rR   r  hrefs      rS   visit_citation_reference(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7rU   c                   U R                   (       a  SnUR                  SSS9n[        U[        R                  5      (       aE  UR                  5       S;   a1  UR                  SSS9n[        U[        R                  5      (       a  SnU(       a  U R                  R                  S5        g U R                  R                  S5        SU l	        g U R                  R                  S5        g )NFTdescendsiblingsr  r  r\  ]})
r&   	next_noder  r   Textr:  citation_referencer  r:   r  )rR   r  followup_citationsiblingsibling2s        rS   depart_citation_reference)LaTeXTranslator.depart_citation_reference-  s    ## %nnUTnBG7EJJ//NN$3",,UT,Jh(@(@AA(,% $$7<4HHOOD!rU   c                :    U R                   R                  S5        g )Nz	(\textbf{r  r:   r  s     rS   visit_classifier LaTeXTranslator.visit_classifier@  s    %rU   c                    U R                   R                  S5        UR                  [        R                  SSS9(       a  U R                   R                  S5        g g )Nz})FTr  rn   )r  r:   r  r   termr  s     rS   depart_classifier!LaTeXTranslator.depart_classifierC  s>    >>%**ed>CHHOOD! DrU   c                :    U R                   R                  U5        g rM   )r  r   r  s     rS   r   LaTeXTranslator.visit_colspecH  s    ''-rU   c                    g rM   rG  r  s     rS   depart_colspecLaTeXTranslator.depart_colspecK  r@  rU   c                "   [        UR                  [        R                  5      (       d  U R                  R                  S5        U R                  R                  SUR                  5       R                  SS5      -  5        [        R                  e)Nrn   z%% %s
r  )	r  r  r   r  r  r:   r:  r  SkipNoder  s     rS   visit_commentLaTeXTranslator.visit_commentN  sY    $++u~~66HHOOD!	DKKM$9$9$$GGHnnrU   c                    g rM   rG  r  s     rS   depart_commentLaTeXTranslator.depart_commentU  r@  rU   c                   [        UR                  [        R                  5      (       a  U R                  R                  S5        U =R                  U R                  USS9-  sl        US   R                  SS5        U R                  U5        g )Nrn   Tr^  r  r   r  )	r  r  r   r  r  r:   r  r  r  r  s     rS   visit_compoundLaTeXTranslator.visit_compoundX  sg    dkk5>>22HHOOD!D&&tD&99Yq*-$rU   c                &    U R                  U5        g rM   r$  r  s     rS   depart_compoundLaTeXTranslator.depart_compound_  rL  rU   c                &    U R                  U5        g rM   rq  r  s     rS   visit_contactLaTeXTranslator.visit_contactb  rt  rU   c                &    U R                  U5        g rM   rv  r  s     rS   depart_contactLaTeXTranslator.depart_contacte  ry  rU   c                l    U =R                   U R                  USS9-  sl         U R                  U5        g NTr^  )r  r  r  r  s     rS   visit_containerLaTeXTranslator.visit_containerh  s.    D&&tD&99$rU   c                &    U R                  U5        g rM   r  r  s     rS   depart_container LaTeXTranslator.depart_containerl  rL  rU   c                &    U R                  U5        g rM   rq  r  s     rS   visit_copyrightLaTeXTranslator.visit_copyrighto  rt  rU   c                &    U R                  U5        g rM   rv  r  s     rS   depart_copyright LaTeXTranslator.depart_copyrightr  ry  rU   c                &    U R                  U5        g rM   rq  r  s     rS   
visit_dateLaTeXTranslator.visit_dateu  rt  rU   c                &    U R                  U5        g rM   rv  r  s     rS   depart_dateLaTeXTranslator.depart_datex  ry  rU   c                    g rM   rG  r  s     rS   visit_decoration LaTeXTranslator.visit_decoration{      rU   c                    g rM   rG  r  s     rS   depart_decoration!LaTeXTranslator.depart_decoration  r@  rU   c                    g rM   rG  r  s     rS   visit_definition LaTeXTranslator.visit_definition  r@  rU   c                    g rM   rG  r  s     rS   depart_definition!LaTeXTranslator.depart_definition  r@  rU   c                    U =R                   U R                  USS9-  sl         U R                  U5        U R                   R                  S5        g )NTr^  z\begin{description}
r{  r  s     rS   visit_definition_list%LaTeXTranslator.visit_definition_list  s?    D&&tD&99$01rU   c                \    U R                   R                  S5        U R                  U5        g )Nz\end{description}
r  r  s     rS   depart_definition_list&LaTeXTranslator.depart_definition_list  !    ./4 rU   c                J    U =R                   U R                  USS9-  sl         g NTr  r  r  r  s     rS   visit_definition_list_item*LaTeXTranslator.visit_definition_list_item       D&&tT&::rU   c                ^    UR                  SSS9b  U R                  R                  S5        g g )NFTr  rn   )r  r  r:   r  s     rS   depart_definition_list_item+LaTeXTranslator.depart_definition_list_item  s+    >>%$>7CHHOOD! DrU   c                :    U R                   R                  S5        g )Nr  r  r  s     rS   visit_description!LaTeXTranslator.visit_description  s    rU   c                    g rM   rG  r  s     rS   depart_description"LaTeXTranslator.depart_description  r@  rU   c                :    U R                  U R                  5        g rM   )r(  rH   r  s     rS   visit_docinfoLaTeXTranslator.visit_docinfo  s    ""4<<0rU   c                   U R                  5         U R                  (       aj  SU R                  S'   U R                  SS5        U R                  S5        U R                  R	                  SS5        U R                  R                  S5        g g )	Nz\usepackage{tabularx}tabularxprovidelength_providelengthrH   r   z@
% Docinfo
\begin{center}
\begin{tabularx}{\DUdocinfowidth}{lX}
z\end{tabularx}
\end{center}
)r,  rH   r@   r  r  r:   r  s     rS   depart_docinfoLaTeXTranslator.depart_docinfo  s}    !!#<<,DDj)!!/3CD!!),LL $L M LL !2 3 rU   c                   Ub  [         R                  " S[        SS9  U R                  (       a,  [	        XR
                  5      (       a  U R                  / 5        g U R                  UR                  5      nU R                  R                  SU-  5        [	        U[        R                  5      (       a  U R                  R                  S5        O`[        U5      [        UR                  5       5      -   S:  a  U R                  R                  S5        OU R                  R                  S5        [	        U[        R                  5      (       a  U R                  / 5        g g )	NzVvisit_docinfo_item(): argument "name" is obsolete and will be removed in Docutils 0.24r7  r8  z\textbf{%s}: &z {\raggedright
@   z
  r  )r:  r;  r<  r4   r  TITLEDATA_NODESr(  r  tagnamer  r:   r   addressr  r:  ri  )rR   r  rw   r  s       rS   rU  "LaTeXTranslator.visit_docinfo_item  s    MM B,< !!j7K7K&L&L&&r*''5EHHOO-56$.. 34Uc$++-0025'$$..**2. /rU   c                  ^ U R                   (       Ga  [        XR                  5      (       Ga  [        U[        R                  5      (       a  SnUR                  SSSS9 Hv  n[        U[        R                  [        R                  45      (       a    OI[        U[        R                  [        R                  [        R                  45      (       d  Mt  SnMx     OSnUR                  U R                  5       5      n[        U[        R                  5      (       a  U R                  R                  U5        g [        U[        R                  [        R                  45      (       aF  U R                  S   S   (       a  U R                  R                  U/5        g X@R                  S   S'   g U R                  S   R                  U5        g [        U[        R                  5      (       a  U R                  R                  S	5        O[        U[        R                  5      (       a  U R                  5       n[!        U R"                  R$                  5       H  m['        U4S
 jU 5       5      (       a  M    O   U R                  R                  TS-   R                  U5      5        U R                  R                  S5        g )Nz \and FT)include_selfr  r  z \quad r.   r  r   r\  c              3  .   >#    U  H
  nTU;   v   M     g 7frM   rG  )r  rw   seps     rS   r  6LaTeXTranslator.depart_docinfo_item.<locals>.<genexpr>  s     D|tsd{|s   r  r@  )r4   r  r)  r   ri  findallauthorr+  contactorganizationrs   r,  r  r:   r  r  r#  r  r  any)rR   r  sr   r  author_namesr0  s         @rS   rY  #LaTeXTranslator.depart_docinfo_item  s   !!!j7K7K&L&L$.. ,,E504 ' 6B!"u||U]]&CDD!"u}}emm','9'9'; < <&6 66$3356D$

++		  &D5<<"?@@ $$R(+%%,,dV4/3%%b)!, !!"%,,T2$..$D%--00#88:#D$8$8$J$JKCD|DDD L S| <=HHOOI&rU   c                &    U R                  U5        g rM   )visit_literal_blockr  s     rS   visit_doctest_block#LaTeXTranslator.visit_doctest_block  ry  rU   c                &    U R                  U5        g rM   )depart_literal_blockr  s     rS   depart_doctest_block$LaTeXTranslator.depart_doctest_block  s    !!$'rU   c                    U R                   (       d-  [        UR                  5       [        R                  5      (       a>  U R
                  R                  S:H  nU =R                  U R                  USUS9-  sl        g g )Nr  Fr  r  )	r4   r  r  r   rE   rt   r  r  r  rR   r  r  s      rS   visit_documentLaTeXTranslator.visit_document  sh    !!Z0@%++%N%N}}22h>G!3!3DU<C "4 "E E &OrU   c           
     r   U R                   R                  (       d  U R                   R                  S;  a  U R                  5       U R                  S'   U R                  R                  [        R                  U R                  -  5        U R                  R                  SS5      (       aH  U R                  R                  SSU R                  U R                  R                  SS5      5      -  5        U R                  (       aF  U R                  S-   R!                  U R                  5      nU R                  R                  SU-  5        U R                  (       a'  U =R                  S	/U R                  -   S
/-   -  sl        U R"                  (       d#  U R$                  (       d  U R&                  S//:w  a  U R)                  5         U R*                  (       a  U R-                  5         SU R                  ;   a,  U R.                  (       d  U R0                  R                  S5        [3        U R                  R5                  5       5       Vs/ s H  nU R                  U   PM     snU l        [3        U R6                  R5                  5       5       Vs/ s H  nU R6                  U   PM     snU l        g s  snf s  snf )N)r.   r   r  rE   r.   r   z  pdftitle={%s},r  z  pdfauthor={%s}z\hypersetup{r\  minitocz'
\faketableofcontents % for local ToCs
)r  r  r  r@   rC   r:   rI  linkingr  r^   r  r  r  r  r  r  rs   rE   r  r  
make_titler  append_bibliogaphyhas_latex_tocr  r  r  rB   )rR   r  ri  rD  s       rS   depart_document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(H "..s3(HJ &,DNN,?,?,A%BD%Bc ..-%BDJDs   J/J4c           	        SR                  U R                  5      /nU R                  (       a  XR                  -  nU R                  (       a0  USSSR                  U R                  5      -  /U R                  -   -  nU R
                  R                  SSR                  U5      -  5        U R                   Vs/ s H  nSR                  [        S U5      5      PM      nnU R
                  R                  SSR                  U5      -  5        U R
                  R                  S	S
R                  U R                  5      -  5        U R                  R                  S5        g s  snf )Nr.   r  z\DUdocumentsubtitle{%s}z
\title{%s}%
  r  z\author{%s}z \and
z	\date{%s}, z\maketitle
)rs   rE   r  rF   r  rD   r:   r  r  r  rG   )rR   	title_argauthor_entryri  s       rS   rJ  LaTeXTranslator.make_title  s"    WWTZZ()	::***I==%4rwwt}}7MM"223 3I 	mgll9.EEF
 (,'8'8:'8| ==l!;<'8 	 :nzw/GGHlTYYtyy-AAB 	$$_5:s   8%Ec           
        U R                   (       af  U R                  R                  SU R                   S   -  5        U R                  R                  SSR                  U R                   SS  5      -  5        g U R                  (       a  SnU R
                   H%  n[        U5      [        US   5      :  d  M   US   nM'     U R                  R                  SU-  5        U R
                   HF  nUS   R                  SS	5      nU R                  R                  S
US   < SU< SUS   < S35        MH     U R                  R                  S5        g g )Nz
\bibliographystyle{%s}
r   z\bibliography{%s}
r  r  r.   z
\begin{thebibliography}{%s}
re  rd  z	\bibitem[rf  }{re  z\end{thebibliography}
)r  r  r:   rs   r&   r  r  r  )rR   widest_labelbibitemcite_keys       rS   rK  "LaTeXTranslator.append_bibliogaphy;  s    ;;HHOO9DKKNJKHHOO2SXXdkk!"o5NNO%%L>>|$s71:6#*1:L * HHOO>() *>>"1:--eS9!(Xwqz!C D *
 HHOO67 &rU   c                \    U R                   R                  S5        U R                  U5        g )Nz\emph{r  r  s     rS   visit_emphasisLaTeXTranslator.visit_emphasisQ  s     	"$rU   c                \    U R                  U5        U R                  R                  S5        g r  r  r  s     rS   depart_emphasisLaTeXTranslator.depart_emphasisU  r  rU   c                T   U R                   R                  U R                   R                  5       5      (       ap  U R                  R	                  S5        U R                   R                  5         U R                   R                  U R                   R                  5       5      (       a  Mo  g g )N & )r  rQ  rT  r  r:   rY  rQ   s    rS   (insert_additional_table_colum_delimiters8LaTeXTranslator.insert_additional_table_colum_delimiters[  s    ++ $ 1 1 B B DF FHHOOE"))+ ++ $ 1 1 B B DF FrU   c           	     ^   U R                   R                  5       S:X  a  U R                  5         OU R                  R	                  S5        SU;   a  SU;   a  [        S5      eSU;   a  SU R                  S'   US   S-   nU R                   R                  U R                   R                  5       U5        U R                  R	                  S	X R                   R                  5       4-  5        U R                  R	                  S
5        OSU;   a  U R                   R                  5       S:X  a  U R                   R                  5       nOSnUS   S-   nU R                  R	                  SUUU R                   R                  U R                   R                  5       U5      U R                   R                  5       4-  5        U R                  R	                  S
5        OU R                  R	                  S5        [        U5      (       a  [        UR                  R                  [        R                   5      (       d  U R                   R#                  5       (       a7  U R                  R	                  S5        U R                  R	                  S
5        OU R                  R	                  S5        U R                   R$                  (       dS  U R                  S   R'                  S5      (       a0  UR)                  5       (       a  U R                  R	                  S5        U R                   R+                  5         g )Nr   rb  morerowsmorecolszWCells that span multiple rows *and* columns currently not supported by the LaTeX writerz\usepackage{multirow}multirowr  z\multirow{%d}{%s}{r\  r.   z\multicolumn{%d}{%s%s%s}{\textbf{r  r[  r`  )r  rT  rc  r  r:   NotImplementedErrorr@   rM  r  r  r  r'  r  r  r  r   theadr\  r  r  r:  rY  )rR   r  mrowsbar1mcolss        rS   rY  LaTeXTranslator.visit_entrya  s   --/1499;HHOOE" *"4% '< = = ,DDj)$q(E)) -->>@%IHHOO1"$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# t99*T[[%7%7EE!..==??HHOOK(LL$LL# !!00%%c**HHOOC %%'rU   c                    U R                   R                  U R                  R                  5       5        U R                   R                  U R                  R                  5       5        U R	                  5         g rM   )r  r:   r  rB  rc  r  s     rS   depart_entryLaTeXTranslator.depart_entry  sH    ((*+((*+557rU   c                8    U R                   R                  5         g rM   )r  r=  r  s     rS   r=  LaTeXTranslator.visit_row  s    ##%rU   c                j    U R                   R                  U R                  R                  5       5        g rM   )r  r  r  rH  r  s     rS   rH  LaTeXTranslator.depart_row  s!    ))4467rU   c                   SSSSSSS.n/ SQnSnU R                   (       a  U R                  (       a^  U R                  (       aM  U R                  (       d<  S	R	                  S
 U R
                  S U R                    5       5      U R                  -   nU R                  (       a  X@R                  S   -  nXAR                  SS5      -  nX!R                  SS5         nUR                  SS	5      n[        U R                  5      S-   nS[        U5      R                  5       -   nU< SU< SU< SU< 3n	U R                  R                  U	5        U =R                  U R                  USS9-  sl        U R                  U5        US::  aM  U R                  R                  S5        XEU4X7S-
     :w  a$  U R                  R                  SU< SU	< S35        OiSU-  U R                  U'   U R                  R                  S5        U R                  R                  SU	-  5        U R                  R                  SU-  5        SU;   a&  U R                  R                  SXS   S-
  4-  5        g g ) Nr.   r   alphAlphromanRoman)r.   r   
loweralpha
upperalpha
lowerroman
upperroman))r.   r   r2   )(rx  ))r.   rz  r2   )r.   ry  r2   r2   c              3  8   #    U  H  n[        U5      v   M     g 7frM   )r_  )r  ns     rS   r  8LaTeXTranslator.visit_enumerated_list.<locals>.<genexpr>  s      "$"K ./#a&&"K   r  r
  enumtyper  r  enumrZ  r[  r\  Tr^     z\begin{enumerate}z
\renewcommand{\labelrV  z\newcounter{%s}z\begin{list}z{%s}z{\usecounter{%s}}r"  z
\setcounter{%s}{%d})r7   r8   section_levelr  rs   r  r  r  r  r   to_lowercaser:   r  r  r  rB   )
rR   r  typesdefault_labelsr
  r  r  
enum_levelcounter_namer  s
             rS   visit_enumerated_list%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&)^qL-II!-u!6 7 ,>+LDNN<(HHOOO,HHOOFUN+HHOO0<?@d?HHOO4)=?;< = rU   c                    [        U R                  5      S::  a  U R                  R                  S5        OU R                  R                  S5        U R	                  U5        U R                  R                  5         g )Nr  z\end{enumerate}
z\end{list}
)r  r  r  r:   r$  rB  r  s     rS   depart_enumerated_list&LaTeXTranslator.depart_enumerated_list  sV    t))*a/HHOO01HHOOO,4 ""&&(rU   c                J    U =R                   U R                  USS9-  sl         g r  r  r  s     rS   visit_fieldLaTeXTranslator.visit_field  s     D&&tD&99rU   c                    g rM   rG  r  s     rS   depart_fieldLaTeXTranslator.depart_field  r@  rU   c                    [        UR                  R                  [        R                  5      (       d+  U R                  R                  U R                  U5      5        g g rM   )r  r  r   rH   r  r:   r4  r  s     rS   visit_field_body LaTeXTranslator.visit_field_body  s=    $++,,emm<<HHOOD--d34 =rU   c                n    U R                   U R                  L a  U R                   R                  S5        g g )Nr  r  rH   r:   r  s     rS   depart_field_body!LaTeXTranslator.depart_field_body  s'    88t||#HHOOJ' $rU   c                    U =R                   U R                  USS9-  sl         U R                  U5        U R                   U R                  La-  U R	                  S5        U R                   R                  S5        g g )NTr^  	fieldlistz\begin{DUfieldlist})r  r  r  rH   r  r:   r  s     rS   visit_field_list LaTeXTranslator.visit_field_list  sb    D&&tD&99$884<<'!!+.HHOO23 (rU   c                    U R                   U R                  La  U R                   R                  S5        U R                  U5        g )Nz\end{DUfieldlist}
)r  rH   r:   r$  r  s     rS   depart_field_list!LaTeXTranslator.depart_field_list  s1    884<<'HHOO234 rU   c                    U R                   U R                  L a  U R                   R                  S5        g U R                   R                  S5        g )Nri  z
\item[{r  r  s     rS   visit_field_name LaTeXTranslator.visit_field_name  s4    88t||#HHOOK( HHOOL)rU   c                    U R                   U R                  L a  U R                   R                  S5        g U R                   R                  S5        g )Nz}: &z:}]r  r  s     rS   depart_field_name!LaTeXTranslator.depart_field_name	  s2    88t||#HHOOF#HHOOE"rU   c                ^   [         R                  U R                  S'   U =R                  U R	                  USS9-  sl        U R                  U5        UR                  R                  SS5      nUS:w  a  U R                  R                  SU-  5        g U R                  R                  S5        g )NrU  Tr^  r  r  z\begin{figure} %% align = "%s"z\begin{figure})	rI  rU  r@   r  r  r  r  r  r:   )rR   r  	alignments      rS   visit_figureLaTeXTranslator.visit_figure
	  s    %1%7%7'"D&&tD&99$ OO'':	  HHOO=	IJHHOO-.rU   c                \    U R                   R                  S5        U R                  U5        g )Nr  r  r  s     rS   depart_figureLaTeXTranslator.depart_figure	  s!    )*4 rU   c                \    U R                  / 5        U R                  R                  S5        g )Nz\newcommand{\DUfooter}{r(  r  r:   r  s     rS   visit_footerLaTeXTranslator.visit_footer	  !    ""2&23rU   c                    U R                   R                  S5        SR                  U R                   5      U R                  S'   U R	                  5         g )Nr\  r.   z~footerr  r:   rs   r@   r,  r  s     rS   depart_footerLaTeXTranslator.depart_footer!	  ;    ')wwtxx'8)$!!#rU   c           
         US   S   nU R                  (       a  U R                  S5        US   R                  5       nU R                  R
                  S:X  a  SU-  nU R                  R                  SUS   S   < SU< SU R                  U5      < S35        [        U5      S	:  a?  [        US	   [        R                  5      (       a  U R                  R                  S
5        g g g g ! [          a    US   S   n Nf = f)Nbackrefsr   r  	footnotesr   z[%s]z%
\DUfootnotetext{rV  r  r`  )r  r  r  r:  rt   footnote_referencesr  r:   r  r  r  r   r  )rR   r  backrefnums       rS   visit_footnoteLaTeXTranslator.visit_footnote&	  s    	%:&q)G ""!!+.q'.."C}}00J>slHHOO!%[^Wdkk#6FH I 4y1}DGU__!E!E$ "F} #  	%5k!nG	%s   C+ +D ?D c                :    U R                   R                  S5        g r  r  r  s     rS   depart_footnoteLaTeXTranslator.depart_footnote7	  s    rU   c                   SnSU;   a  US   nO"SU;   a  U R                   R                  US      nU R                  R                  nUS:X  aK  U R	                  U5        U R
                  R                  SU-  5        U R                  R                  S5        g U R                  S5        U R
                  R                  SUS	   S
   < SU< S35        U R                  R                  S5        g )Nr.   r  r  r   r  r  r  z\DUfootnotemark{r  r   rV  r\  )	r^   r  rt   r  r  r  r:   r  r  )rR   r  r  formats       rS   visit_footnote_reference(LaTeXTranslator.visit_footnote_reference:	  s    d?=D$==((i9D 22Z$$T*HHOO/$67LL%!!+.HHOO!%[^T3 4LL$rU   c                j    U R                   R                  U R                  R                  5       5        g rM   )r  r:   r  rB  r  s     rS   depart_footnote_reference)LaTeXTranslator.depart_footnote_referenceT	  s    ((*+rU   c                &   [        UR                  [        R                  5      (       a  [        R                  e[        UR                  [        R
                  5      (       d   eU R                  (       d  U R                  R                  U5        g g rM   )	r  r  r   r1  r  r2  r&   r  r:   )rR   r  bracketr   s       rS   label_delimLaTeXTranslator.label_delimX	  sZ    dkk5>>22.. dkk5>>::::++( ,rU   c                *    U R                  USS5        g)z9footnote or citation label: in brackets or as superscriptrh  r  Nr  r  s     rS   visit_labelLaTeXTranslator.visit_label`	  s    s$89rU   c                *    U R                  USS5        g )Nri  r\  r  r  s     rS   depart_labelLaTeXTranslator.depart_labeld	  s    sC(rU   c                    g rM   rG  r  s     rS   visit_generatedLaTeXTranslator.visit_generatedh	  r@  rU   c                    g rM   rG  r  s     rS   depart_generated LaTeXTranslator.depart_generatedk	  r@  rU   c                \    U R                  / 5        U R                  R                  S5        g )Nz\newcommand{\DUheader}{r  r  s     rS   visit_headerLaTeXTranslator.visit_headern	  r  rU   c                    U R                   R                  S5        SR                  U R                   5      U R                  S'   U R	                  5         g )Nr\  r.   z~headerr  r  s     rS   depart_headerLaTeXTranslator.depart_headerr	  r  rU   c                   [         R                  " U5      u  p4US;   a  U$ US;   a  U S3$ US:X  a  US-   S3$ US:X  a	  US-  S	 S
3$ US:X  a	  US-  S	 S3$ US:X  a	  US-  S	 S3$ [        [        U5      (       d  U R	                  SU SU S3US9  OGUS:X  a  [        R
                  U R                  S'   O#U R                  SS5        U R                  U5        U SU S3$ )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   r  Qr  r  r`  d   gr`  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hasattrrI  r;  r  rB   r  )rR   
length_strr  r  units        rS   to_latex_lengthLaTeXTranslator.to_latex_lengthw	  s,    ))*5 2 2:WB<3;AgYb>!3;Ci]+..4<Ci],//4<Ci]-00|T**IItf %..2V 4:: !%  & T\#/??DNN4 !!/3CD!!$'TF%((rU   c           	        U R                   U R                  S'   UR                  nU R                  US   SS9nSU;  a  [	        UR
                  [        R                  5      (       d\  [	        UR
                  [        R                  5      (       a8  [	        UR
                  R
                  [        R                  5      (       a  SUS'   U R                  U5        / n/ n/ n[	        UR
                  [        R                  5      (       a)  UR                  U R                  R                  5       5        SSS	S
SSS.nSU;   a0   XrS      nUR                  US   5        UR                  US   5        SU;   a'  UR                  SU R                  US   U5       35        SU;   a  UR                  SUS   S-  S 35        SU;   a'  UR                  SU R                  US   U5       35        UR                  SR                  U R!                  USS95      5        U R#                  U5      (       d:  [	        UR
                  [        R$                  5      (       d  UR                  S5        U R#                  U5      (       d  UR                  S5        UR'                  5         U R                  R)                  U5        UR*                  S:X  a  SU R,                  R.                  ;   a  Sn	OSn	Sn
U(       a  SS R                  U5       S!3n
U R                  R                  S"U	 U
 S#UR1                  5        S$35        U R                  R)                  U5        g ! [         a     GNf = f)%Nr  urir.   )r  r  r  r.   r.   )z\raisebox{-0.5\height}{r\  )z\raisebox{-\height}{r\  )z!\noindent\makebox[\linewidth][c]{r\  )z
\noindent{z\hfill})z\noindent{\hfillr\  )bottommiddletopr  r  r  r   r  heightzheight=scalezscale=r  r  r  zwidth=Tr  rn   z.svgsvg
includesvgincludegraphicsrh  r  ri  rZ  r[  r\  )r  r@   r  uri2pathr  r  r   figure	referencer  r:   r  rB  r'  r  rs   r  r  r  rA  r  r  rt   r0   r  )rR   r  attrs	imagepathprepostinclude_graphics_optionsalign_codes
align_coder  optionss              rS   visit_imageLaTeXTranslator.visit_image	  s    )-(=(=*%MM%,BM?	%4;;55dkk5??;;"4;;#5#5u||DD!)g''-#% dkk5??3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   /M 
M%$M%c                    g rM   rG  r  s     rS   depart_imageLaTeXTranslator.depart_image	  r@  rU   c                   [         R                  [         R                  [         R                  4n[	        UR
                  U5      =(       d    [	        X5      (       + n[	        U[         R                  5      nU =R                  U R                  XUS9-  sl        US    H  nUR                  S5      (       a`  U R                  R                  USS  5      nU(       a9  SU R                  R                  U'   U R                  R                  SU-  5        Mw  My  U R                  S5        U R                  R                  SU-  5        M     g )	Nr  r  r  r  Tz\foreignlanguage{%s}{inlinez\DUrole{%s}{)r   r  rF   rE   r  r  r  r  r  r  r  r  r  r:   r  )rR   r  anchor_nodesr  add_newliner  r  s          rS   rD  LaTeXTranslator.visit_inline	  s     u~~u{{C$T[[,? <';=
 u7D&&t&MM	?C~~k**::33CG<:>DJJ--h7HHOO$<x$GH  %%h/# 56 #rU   c                X    U R                   R                  S[        US   5      -  5        g )Nr\  r  )r  r:   r  r  s     rS   rI  LaTeXTranslator.depart_inline	  s     c$y/223rU   c                \    U R                  S5        U R                  R                  S5        g )Nlegendz\begin{DUlegend}r  r  r:   r  s     rS   visit_legendLaTeXTranslator.visit_legend	  s!    h'+,rU   c                :    U R                   R                  S5        g )Nz\end{DUlegend}
r  r  s     rS   depart_legendLaTeXTranslator.depart_legend	  s    +,rU   c                :    U R                   R                  S5        g )Nz\item[] r  r  s     rS   
visit_lineLaTeXTranslator.visit_line	  s    $rU   c                :    U R                   R                  S5        g Nrn   r  r  s     rS   depart_lineLaTeXTranslator.depart_line
      rU   c                   U R                  SS5        U R                  S5        U R                  U5        [        UR                  [        R
                  5      (       a  U R                  R                  S5        g U =R                  U R                  USS9-  sl        U R                  U5        U R                  R                  S5        U R                  U5        g )Nr#  r$  	lineblockz0\item[]
\begin{DUlineblock}{\DUlineblockindent}
Tr^  z\begin{DUlineblock}{0em}
)r  r  r  r  r   
line_blockr  r:   r  r  r  r  s     rS   visit_line_block LaTeXTranslator.visit_line_block
  s    o/?@k*##D)dkk5#3#344HHOO J K HH**4*==Hd#HHOO9:))$/rU   c                \    U R                   R                  S5        U R                  U5        g )Nz\end{DUlineblock}
r  r  s     rS   depart_line_block!LaTeXTranslator.depart_line_block
  r  rU   c                    U =R                   U R                  USS9-  sl         U R                   R                  S5        g )NTr^  z
\item )r  r  r:   r  s     rS   visit_list_itemLaTeXTranslator.visit_list_item
  s0    D&&tD&99$rU   c                    g rM   rG  r  s     rS   depart_list_item LaTeXTranslator.depart_list_item
  r@  rU   c                   SU l         SUS   ;   aI  U R                  R                  S:w  a/  [        R                  U R
                  S'   U R                  SS5        U R                  R                  S5        U R                  U5        g )NTcoder  r-   rT  highlight_rulesz\texttt{)
r  rt   syntax_highlightrI  rT  r@   r  r  r:   rD  r  s     rS   visit_literalLaTeXTranslator.visit_literal
  sl    d9o%..&8)5););Dg&!!"3V<$$rU   c                j    SU l         U R                  U5        U R                  R                  S5        g )NFr\  )r  rI  r  r:   r  s     rS   depart_literalLaTeXTranslator.depart_literal&
  s'    4 rU   c                f    [        U5      S:H  =(       a    [        US   [        R                  5      $ )z,Check whether a node can be typeset verbatimr  r   )r  r  r   r  r  s     rS   is_plaintextLaTeXTranslator.is_plaintext:
  s$    D	QCJtAw

$CCrU   c           	        SSSSS.nU R                   nU R                  U5      nU R                  R                  5       nU=(       a    U R                  R                  n[
        R                  [
        R                  4nU R                  R                  (       a#  U[
        R                  [
        R                  4-  nU=(       a    [        UR                  U5      (       + nUS:H  =(       a    Un	U =R                  U R                  USS9-  sl        U R!                  U5        U(       dR  SUS	   ;   aI  U R                  R"                  S
:w  a/  [$        R&                  U R(                  S'   U R+                  SS5        U(       a  U(       a  U(       d  [$        R,                  U R.                  S'   U R                  R1                  S[3        S UR5                  5       R7                  S5       5       5      -  5        U R8                  R1                  S5        O`U(       d>  U	(       d7  U R                  R1                  S5        U R8                  R1                  S5        OU R8                  R1                  S5        U(       a  U(       a  U(       a  U	(       a   X#   U R(                  S'   SU l        U(       a"  U	(       a  U R                  R1                  S5        U R                  R1                  SU< SU R>                  < S35        U R8                  R1                  SU-  5        gU(       aT  U(       dM  SU l         SU R(                  S'   U R                  R1                  S5        U R8                  R1                  S5        gSU l!        SU l"        SU l#        U R                  R1                  S5        U R8                  R1                  S5        g! [:         a     GN1f = f) zZRender 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verbatimtabrP  Tr^  rD  r  r-   rT  rE  ttemz\begin{minipage}{%d\ttemwidth}
c              3  8   #    U  H  n[        U5      v   M     g 7frM   )r  )r  rQ  s     rS   r  6LaTeXTranslator.visit_literal_block.<locals>.<genexpr>h
  s     E+D4SYY+Dr  rn   z
\end{minipage}
z\begin{quote}
z
\end{quote}
literal_blockz\lstset{xleftmargin=0pt}
r  r\  z	
\end{%s}z\usepackage{alltt}r  z\begin{alltt}
z
\end{alltt}z\ttfamily\raggedright
r.   N)$r  rM  r  r  r  r   r1  sidebarrt   r<   r]  ra  r  r  r  r  r  rF  rI  rT  r@   r  rT  rB   r:   maxr:  r  r  r'  re  r  r  r  r  r  )
rR   r  packagesliteral_env
_plaintext	_in_table_autowidth_table_no_env_nodes_use_env_use_listingss
             rS   r;  #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=5J!!/2 !DM] =>HHOO($*D*DF GLL ;<.DJ)>Dg&HHOO./LL 01DL"&D.2D+ HHOO78LL#+  s   O 
OOc                8   SU l         SU l        SU l        SU l        SU l        U R
                  R                  U R                  R                  5       5        U R
                  R                  U R                  R                  5       5        U R                  U5        g r  )
r  r  r  re  r  r  r:   r  rB  r$  r  s     rS   r?  $LaTeXTranslator.depart_literal_block
  so    */'#
((*+((*+4 rU   c                V   SU;  d  SU;  a  [         R                  eUS   nU R                  US   5      nUS;   a%  U R                  R	                  SU< SU< S35        g US:X  a  U R                  R	                  SU-  5        g U R                  R	                  S	U< SU< S
35        g )Nrw   r  )r3  keywordsproducersubjectrE   z  pdfz={z},creatorz  addtopdfcreator={%s},z  pdfinfo={z}},)r   r  r  r  r:   )rR   r  rw   r  s       rS   
visit_metaLaTeXTranslator.visit_meta
  s    $!6..  F|++d9o.IILLw ?@YLL 9' AB LLg FGrU   c                    g rM   rG  r  s     rS   depart_metaLaTeXTranslator.depart_meta
  r@  rU   c                b   SU R                   S'   U R                  U5        UR                  5       R                  [        R
                  5      nU R                  (       a  U =R                  SUS/-  sl        OU =R                  SUS/-  sl        U R                  U5        [        R                  e)zG
Provisional: the `math_env` argument will be dropped in Docutils 2.0.
\usepackage{amsmath}amsmathz\(z\)r_  )r@   rD  r:  rk   r   uni2tex_tabler  r  rI  r   r  )rR   r  math_env	math_codes       rS   
visit_mathLaTeXTranslator.visit_math
  s     (?)$$KKM++K,E,EF	::HH	511HHHi--H4 nnrU   c                    g rM   rG  r  s     rS   depart_mathLaTeXTranslator.depart_math
  r@  rU   c           	        SU R                   S'   [        UR                  5       5      nU R                  R	                  S5        US   (       a1  UR                  S5      (       a  U R                  R	                  S5        US    H3  nU R                  S5        U R                  R	                  S	U S
35        M5     U =R                  SU S3UR                  5       R                  [        R                  5      S/U R                  USSS9QSU S3P-  sl        US   (       a-  U R                  R	                  SS[        US   5      -  -   5        [        R                  e)Nrp  rq  r  r  r  z\phantomsection
r  r  z\DUrole{z}{%
r  re  rn   FT)r  r  z\end{r\  )r@   r   r:  r  r:   r  r  rk   r   rr  r  r  r   r  )rR   r  rs  r  s       rS   visit_math_block LaTeXTranslator.visit_math_block
  s1   '>)$(7;8,,S11HHOO01	?C!!(+HHOOjW56 # 	y
$/[[],,[-F-FG- ((%(N- xj+	- 	-
 	?HHOOD3T)_)=#==>nnrU   c                    g rM   rG  r  s     rS   depart_math_block!LaTeXTranslator.depart_math_block
  r@  rU   c                d    U R                   S   (       a  U R                  R                  S5        g g )Nr  rQ  )r  r  r:   r  s     rS   visit_optionLaTeXTranslator.visit_option
  s#    <<HHOOD! rU   c                2    U R                   S==   S-  ss'   g )Nr  r  )r  r  s     rS   depart_optionLaTeXTranslator.depart_option
  s    RArU   c                Z    U R                   R                  UR                  SS5      5        g)z@Append the delimiter between an option and its argument to body.	delimiterr  N)r  r:   r  r  s     rS   visit_option_argument%LaTeXTranslator.visit_option_argument
  s    c23rU   c                    g rM   rG  r  s     rS   depart_option_argument&LaTeXTranslator.depart_option_argument
  r@  rU   c                p    U R                   R                  S5        U R                  R                  S5        g )Nz\item[r   )r  r:   r  r  s     rS   visit_option_group"LaTeXTranslator.visit_option_group
  s$    	"ArU   c                n    U R                   R                  5         U R                  R                  S5        g )Nz] )r  rB  r  r:   r  s     rS   depart_option_group#LaTeXTranslator.depart_option_group
  s"    rU   c                    U R                  SS5        U R                  S5        U =R                  U R                  USS9-  sl        U R                  U5        U R                  R	                  S5        g )Nr#  r$  
optionlistTr^  z\begin{DUoptionlist}
r  r  r  r  r:   r  s     rS   visit_option_list!LaTeXTranslator.visit_option_list
  s^    o/?@l+D&&tD&99$12rU   c                \    U R                   R                  S5        U R                  U5        g )Nz\end{DUoptionlist}
r  r  s     rS   depart_option_list"LaTeXTranslator.depart_option_list
  s!    /04 rU   c                J    U =R                   U R                  USS9-  sl         g r  r  r  s     rS   visit_option_list_item&LaTeXTranslator.visit_option_list_item
  r  rU   c                    g rM   rG  r  s     rS   depart_option_list_item'LaTeXTranslator.depart_option_list_item
  r@  rU   c                    g rM   rG  r  s     rS   visit_option_string#LaTeXTranslator.visit_option_string
  r  rU   c                    g rM   rG  r  s     rS   depart_option_string$LaTeXTranslator.depart_option_string   r  rU   c                &    U R                  U5        g rM   rq  r  s     rS   visit_organization"LaTeXTranslator.visit_organization  rt  rU   c                &    U R                  U5        g rM   rv  r  s     rS   depart_organization#LaTeXTranslator.depart_organization  ry  rU   c                   UR                   R                  U5      nUS:X  aX  [        UR                   [        R                  [        R
                  [        R                  [        R                  45      (       a  OUS:  ai  [        UR                   [        R                  5      (       a@  [        UR                   US-
     [        R                  [        R                  45      (       d  OnU R                  R                  (       a8  US:X  a  U R                  SUS9  US:  a  U R                  R                  S5        OU R                  R                  S5        U R                  U5        g )Nr   r  z:LaTeX merges paragraphs in tables with auto-sized columns!r  rn   )r  indexr  r   	list_itemdescriptionr  r3  r  r  r  r;  r  r:   rD  )rR   r  r  s      rS   visit_paragraphLaTeXTranslator.visit_paragraph
  s   
 !!$'A:*T[[&+oou7H7H&+nneoo&GH H aiT[[%..99 UQY!7"'//5>>!BD D--z		 5@D  Fqy%HHOOD!$rU   c                    U R                  U5        U R                  R                  (       d  U R                  R	                  S5        g g r1  )rI  r  r  r  r:   r  s     rS   depart_paragraph LaTeXTranslator.depart_paragraph#  s4    4   //HHOOD! 0rU   c                    [         R                  U R                  S'   U R                  R	                  S5        U R                  U5        U R                  R	                  SUS   -  5        g )NrT  r  z"\hyperlink{%s}{\textbf{\color{red}r  )rI  rT  r@   r  r:   r  r  s     rS   visit_problematic!LaTeXTranslator.visit_problematic(  sP    %1%7%7'"  &=WMNrU   c                :    U R                   R                  S5        g )Nz}}r  r  s     rS   depart_problematic"LaTeXTranslator.depart_problematic.  r4  rU   c                P   SUR                  SS5      R                  5       ;  a  [        R                  eU R	                  U5      (       dD  [        UR                  [        R                  5      (       d  U R                  R                  S5        U R                  U5        SU l        g )Nr   r  r.   rn   T)r  r  r   r  r  r  r  r  r  r:   rD  re  r  s     rS   	visit_rawLaTeXTranslator.visit_raw1  sq    $((8R06688.. t$$dkk5>>::HHOOD!$rU   c                    SU l         U R                  U5        U R                  U5      (       d  U R                  R	                  S5        g g )NFrn   )re  rI  r  r  r:   r  s     rS   
depart_rawLaTeXTranslator.depart_raw;  s;    4 ~~d##HHOOD! $rU   c                ^    SnU H!  nUS:X  a  US-  nUS:X  a  US-  nUS:  d  M!    g   US:g  $ )z7Test whether there are unmatched '{' or '}' characters.r   r[  r  r\  TrG  )rR   rd   r  r  s       rS   has_unbalanced_braces%LaTeXTranslator.has_unbalanced_bracesA  sG    BSy
Sy
qy  zrU   c           	        [        S5      S[        S5      S[        S5      S0nU R                  U5      (       d  U R                  R                  S5        SU;   a  [	        US   5      R                  U5      nS	U;   d  U R                  U5      (       a  U R                  S
U S35        US   UR                  5       :X  a.  U R                  R                  SU-  5        [        R                  eU R                  R                  SU-  5        g SU;   a  US   nO.SU;   a  U R                  R                  US      nO[        S5      eU R                  (       aN  U R                  R                  SU R                  < SUR                  SS5      < S35        [        R                  eU R                  R                  SU-  5        g )Nr]  r^  r`  ra  rZ  r  rn   refuriz^^zExternal link "zH" not supported by LaTeX.
 (Must not contain "^^" or unbalanced braces.)z\url{%s}z
\href{%s}{r  r  zUnknown reference.r[  r.   r\  z\hyperref[%s]{)r  r  r  r:   r_  rk   r  r|  r:  r   r  r^   r  AssertionErrorr  r  )rR   r  special_charsr  s       rS   visit_referenceLaTeXTranslator.visit_referenceM  sz   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1rU   c                    U R                   R                  S5        U R                  U5      (       d  U R                   R                  S5        g g )Nr\  rn   )r  r:   r  r  s     rS   depart_reference LaTeXTranslator.depart_referenceo  s6    ~~d##HHOOD! $rU   c                &    U R                  U5        g rM   rq  r  s     rS   visit_revisionLaTeXTranslator.visit_revisiont  rt  rU   c                &    U R                  U5        g rM   rv  r  s     rS   depart_revisionLaTeXTranslator.depart_revisionw  ry  rU   c                    U R                  S5        U =R                  U R                  USS9-  sl        U R                  U5        U R                  R	                  S5        g )NrubricTr^  z
\DUrubric{r  r  s     rS   visit_rubricLaTeXTranslator.visit_rubricz  sN    h' 	D&&tD&99$&rU   c                \    U R                   R                  S5        U R                  U5        g r  r  r  s     rS   depart_rubricLaTeXTranslator.depart_rubric       4 rU   c                   U =R                   S-  sl         U R                  R                  S5        U R                  U R                   S-
  ==   S-  ss'   SU R                  ;   a  g U R                  R
                  (       a  SnO[        U R                  SS5      n[        U[        5      (       a  Sn[        U R                  SS5      n[        U[        5      (       a  SnUS:w  a.  SU R                  R                  S   US-
  4-  U R                  S'   Ub,  SU R                  R                  U5      -  U R                  S'   g g )Nr  r   sectnumsectnum_depthsectnum_startz\setcounter{%s}{%d}z\setcounter{secnumdepth}{%d})r  r  r:   r@   rt   sectnum_xformrb   r  r_  r  r  r  )rR   r  r  r  s       rS   visit_section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( %rU   c                b    U R                   R                  5         U =R                  S-  sl        g rX  )r  rB  r  r  s     rS   depart_sectionLaTeXTranslator.depart_section  s%      "arU   c                    U =R                   U R                  USS9-  sl         U R                  U5        [        R                  U R
                  S'   U R                  S5        U R                   R                  S5        g )NTr^  rT  rX  z\DUsidebar{)r  r  r  rI  rT  r@   r  r:   r  s     rS   visit_sidebarLaTeXTranslator.visit_sidebar  sb    D&&tD&99$%1%7%7'"i('rU   c                \    U R                   R                  S5        U R                  U5        g r  r  r  s     rS   depart_sidebarLaTeXTranslator.depart_sidebar  r  rU   )u   —r.   )r  r  r  r)   c                ^   U R                   U R                  R                     u  p#U R                  R	                  S5        U =R                  U R                  USS9-  sl        U R                  U5        U R                  R	                  SU 35        U R                  R	                  U5        g )Nz\nopagebreak
Tr^  z\raggedleft )attribution_formatsrt   attributionr  r:   r  r  r  )rR   r  r
  r  s       rS   visit_attribution!LaTeXTranslator.visit_attribution  s    11$--2K2KL)*D&&tD&99$-x01F#rU   c                    U R                   R                  U R                  R                  5       S-   5        U R	                  U5        g r1  )r  r:   r  rB  r$  r  s     rS   depart_attribution"LaTeXTranslator.depart_attribution  s2    ((*T124 rU   c                &    U R                  U5        g rM   rq  r  s     rS   visit_statusLaTeXTranslator.visit_status  rt  rU   c                &    U R                  U5        g rM   rv  r  s     rS   depart_statusLaTeXTranslator.depart_status  ry  rU   c                \    U R                   R                  S5        U R                  U5        g )Nri  r  r  s     rS   visit_strongLaTeXTranslator.visit_strong  s     $$rU   c                \    U R                  U5        U R                  R                  S5        g r  r  r  s     rS   depart_strongLaTeXTranslator.depart_strong  r  rU   c                "    [         R                  erM   )r   r  r  s     rS   visit_substitution_definition-LaTeXTranslator.visit_substitution_definition  s    nnrU   c                &    U R                  U5        g rM   )unimplemented_visitr  s     rS   visit_substitution_reference,LaTeXTranslator.visit_substitution_reference  ry  rU   c                ^   [        UR                  [        R                  5      (       aj  U R	                  U R
                  5        U R                  S5        U R                  R                  S:H  nU =R                  U R                  USUS9-  sl	        g [        UR                  [        R                  5      (       aE  U R                  R                  SU R                  R                  U R                  S-   5      -  5        g U R                  S5        U R                  R                  S5        g )	Ndocumentsubtitler  FrC  z\%s*{r  rF   z
\DUsubtitle{)r  r  r   r^   r(  rF   r  rt   r  r  r  r  r  r:   r  r  rD  s      rS   visit_subtitleLaTeXTranslator.visit_subtitle  s    dkk5>>22&&t}}5!!"45}}22h>G  D$6$6t?F %7 %H H  U]]33HHOOH LL001C1Ca1GHI J !!*-HHOO-.rU   c                    [        UR                  [        R                  5      (       a  U R	                  5         g U R
                  R                  S5        g r  )r  r  r   r^   r,  r  r:   r  s     rS   depart_subtitleLaTeXTranslator.depart_subtitle  s3    dkk5>>22%%'HHOOE"rU   c                   [         R                  U R                  S'   U R                  S5        U R                  R
                  (       a  [         R                  U R                  S'   S/US'   U R                  R                  S5        U R                  U5        U R                  U5        U R                  R
                  (       a  U R                  R                  S5        OU R                  R                  S5         SUS	    3nU R                  R                  SUS    SUS    SU R                  US   5       SU S3	5        [        US   5      S:X  aA  U R                  R                  SUS   S    S35        U R                  R                  S5        g [!        US   5       VVs/ s H  u  p4SU SUS-    S3PM     nnnU R                  R                  SSR#                  U5      -   5        g ! [         a    S
n Nf = fs  snnf )NrT  rE   zsystem-messager  rn   z5
\DUtitle[system-message]{\color{red}System Message}
z%
\DUtitle{\color{red}System Message}
z, line~rQ  r.   typer  r  z in \texttt{sourcer\  r  r  z
\hyperlink{r   rV  re  z\hyperlink{z
backrefs: r  )rI  rT  r@   r  rt   r<   title_legacyrB   r  r:   r  rb  r'  r  r  r  r  rs   )rR   r  rQ  rD  r  r  s         rS   visit_system_message$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)DIQ (vT!A#d;)D  FLLsxx/A AB  	D	Fs   =G2 )H2H Hc                    U R                   R                  U R                  R                  5       5        U R	                  U5        g rM   )r  r:   r  rB  rf  r  s     rS   depart_system_message%LaTeXTranslator.depart_system_message  s-    ((*+t$rU   c                   [         R                  U R                  S'   U R                  R                  (       d  [         R
                  U R                  S'   U R                  R                  5       (       a6  U R                  R                  U R                  5        [        U S5      U l        U R                  R                  S:X  a  [        UR                  [        R                  5      (       ac  UR                  R!                  U5      S:X  aD  SU R"                  R                  U R$                  5      ;   a  U R&                  R                  S5        U R                  R)                  5         U R                  R+                  XR                  5        U R                  R,                  S:X  a  S	U R                  S'   U R/                  / 5        g )
NrV  table1tabularr  r  r  r/  r   z\usepackage{booktabs})rI  rV  r@   rt   r=   table_columnwidthr  r  r  r:   r  r  r  r  r   r  r  r  r  r  r  r  r  r(  r  s     rS   visit_tableLaTeXTranslator.visit_table  sD   %1%7%7'"}}11*6*H*HDh'$$&&##D$5$56 %dI 6D ))[84;;66!!$'1,t||33D4F4FGGHHOON+ ))$>$$
2,DDj)""2&rU   c                   U R                  5       n U R                  US   U5      nU R                  R                  (       d;  [        U R                  5      S:g  nU =R                  U R                  XSS9-  sl        U R                  U5        U R                  R                  U R                  R                  U5      5        U =R                  U-  sl        U R                  R                  U R                  R                  5       S-   5        U R                  R                  5         [        U R                  5      S:  a  U R                  R                  5       U l        U R                  U5        g ! [         a    Sn GNYf = f)Nr  r`  r  Tr^  rn   r   )r,  r  r'  r  r  r  r  r  r  r  r:   r  r  r  rB  r$  )rR   r  r  r  r  s        rS   depart_tableLaTeXTranslator.depart_table'  s2   ++-	"((g=E   ((d../14JHH**4D*IIH$ 	))55e<=G))557$>?!t 1$ $ 0 0 4 4 6D4 )  	"!E	"s   E1 1F Fc                    SU;   d  SU;   d  SU;   a  g U R                  U5      (       a  U R                  R                  S5        U R                  R                  S5        U R                  U5        g )Nr  r  r  r`  rn   )r  r  r:   rD  r  s     rS   visit_targetLaTeXTranslator.visit_targetB  sY    $D >>$HHOOC $rU   c                &    U R                  U5        g rM   rH  r  s     rS   depart_targetLaTeXTranslator.depart_targetN  rL  rU   c                    U R                   R                  S5      (       d#  U R                  U5        U R                  S 5        g g )Npreamble written)r  r  r/  r8  r  s     rS   visit_tbodyLaTeXTranslator.visit_tbodyQ  s=       $$%788T"d# 9rU   c                    g rM   rG  r  s     rS   depart_tbodyLaTeXTranslator.depart_tbodyX  r@  rU   c                :    U R                   R                  S5        g)zdefinition list termz\item[{Nr  r  s     rS   
visit_termLaTeXTranslator.visit_term[  s     	
#rU   c                d   U R                   R                  S5        UR                  SSS9n[        U[        R
                  5      (       a  U R                   R                  S5        g [        U[        R                  5      (       d+  U R                   R                  U R                  U5      5        g g )Nz}] FTr  rn   )r  r:   r  r  r   r  
classifierr4  )rR   r  r  s      rS   depart_termLaTeXTranslator.depart_terma  sz     NN54N@	i,,HHOOD!Iu'7'788HHOOD--i89 9rU   c                    g rM   rG  r  s     rS   visit_tgroupLaTeXTranslator.visit_tgroupk  r@  rU   c                    g rM   rG  r  s     rS   depart_tgroupLaTeXTranslator.depart_tgroupn  r@  rU   c                    U R                   $ rM   )_thead_depthrQ   s    rS   r*  LaTeXTranslator.thead_depths  rV  rU   c                   U =R                   S-  sl         SU R                  5       :X  aS  U R                  R                  SU R                  R                  U5      -  5        U R                  R                  SS5        U R                  R                  (       a|  U R                   S:X  a.  S/nU R                  UR                  R                  S5      S/-   nOS/nS/nU R                  R                  X R                  R                  -   U-   S	/-   5        U R                  R                  U R                  R                  5       5        g )
Nr  z{%s}
r'  r  Fz}\\z\caption[]{z (... continued)}\\rn   )r;  r*  r  r:   r  r  r  r  r  r  r  r/  )rR   r  r  r  s       rS   r/  LaTeXTranslator.visit_theadv  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8rU   c                    Ubc  U R                   R                  U R                  R                  5       5        U R                  R	                  5       (       a  UR                  U 5        U =R                  S-  sl        g rX  )r  r  r  r8  r+  r_   r;  r  s     rS   r8  LaTeXTranslator.depart_thead  sY    HHOOD--::<=  --//t$QrU   c                   [        UR                  [        R                  5      (       a7  U R	                  U R
                  5        U R                  R                  S5        g[        UR                  [        R                  5      (       dR  [        UR                  [        R                  5      (       d)  [        UR                  [        R                  5      (       a  UR                  S   =(       d    UR                  R                  /nU R                  R                  (       aK  [        R                  U R                   S'   U R"                  R                  SSR%                  U5      -  5        O,U R'                  S5        U R"                  R                  S5        U R                  R                  S5        g[        UR                  [        R(                  5      (       aA  U R	                  U R*                  R,                  5        U R                  R                  S5        gU R.                  nU R0                  R3                  U5      nU R"                  R                  S5        U[5        U R0                  R6                  5      :  a  U R                  R                  (       a/  [        R                  U R                   S'   US	[9        U5      -  -  nOJU R'                  S5        U R'                  S
S5        U R"                  R                  S[9        U5      -  5        SUR                  S   ;   aa  [        R:                  U R<                  S'   U R?                  URA                  5       5      nU R"                  R                  SU< SU< S35        OU R"                  R                  SU-  5        S/nX`RC                  UR                  SS9-  nU R                  R                  SR%                  U5      S-   5        U[5        U R0                  R6                  5      :  a4  U R                  R                  (       d  U R                  S==   S-  ss'   ggg)z Append section and other titles.r.   r  rE   z
\DUtitle[%s]{r  z

\DUtitle{re  z

z[section%s]r  r  z\begin{DUclass}{section%s}
zsystem-messagesrT  rZ  rh  z]{\color{red}z\%s{F)r  rP  z%
}
r  r"  N)"r  r  r   r^   r(  rE   r  r:   topicr]  rX  r*  rt   r<   rI  r  rB   r  rs   r  rV  r  r  r  r  r  r  r  r   rT  r@   r  r:  r  )rR   r  r  r  section_namesection_titlebookmarks          rS   visit_titleLaTeXTranslator.visit_title  s    dkk5>>22&&tzz2LL#ekk22DKK)9)9::DKK77kk),E1D1D0EG}}33*6*C*Cw' 2SXXg5F FG%%g./LL&U[[1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  = 3rU   c                    U R                   R                  U R                  R                  5       5        [	        UR
                  [        R                  [        R                  45      (       a  U R                  5         g g rM   )
r  r:   r  rB  r  r  r   rV  r^   r,  r  s     rS   depart_titleLaTeXTranslator.depart_title  sO    ((*+dkkEKK#@AA%%' BrU   c           	     ^   U R                   (       aV  SUS   ;   aM  U R                  R                  U R                  5      nSSSS.nSU R                  R                  ;   a  US	  X2   nU R                  R                  S5        [        US   5      S:  a#  U =R                  U R                  USS9-  sl	        [        UR                  5       [        R                  5      (       a  SUS   ;  ax  U R                   R"                  S:w  a^  U R                  R                  SU R                  S-   UR                  5       R%                  5       UR'                  SS/5      S   4-  5        U R                   (       d/  [(        R*                  U R,                  S'   U R/                  U5        g UR                  [        R0                  5      R2                  nUR'                  SS5      n[        U R                  R                  5      n[        UR                  5       [        R                  5      (       a#  U R7                  US   R%                  5       5      nOSnSUS   ;   a  [(        R8                  U R:                  S'   SW-  U R:                  SU-   '   SXG4-  U R:                  SU-  '   SSSS.n	SU R                  R                  ;   a  S U	S'   U(       a$  U R                  R                  S!XFX   -   4-  5        U R                  R                  S"U< S#U< S$35        U R                  R                  S%U-  5        [        R                  eU(       a7  U R                  R                  S&U R                  R=                  U5      -  5        US':w  a  U R                  R                  S(U-  5        U R                  R                  S)5        SU l        [        R                  e! [
         a$    U R                  S	U-  US
9  [        R                  ef = f! [4         a    U R                  S5        0 n GN[f = f)*zOWrite the table of contents.

Called from visit_topic() for "contents" topics.
localr  rj   minisect)rj   r  r  r  r  zUSkipping local ToC at "%s" level.
  Feature not supported with option "use-latex-toc"r  rn   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.   rH  z\do%stoczminitoc-z\mtcsetdepth{%stoc}{%d}zminitoc-%s-depth)rN  rM  rj   r  z\setcounter{%stocdepth}{%d}z\mtcsettitle{ztoc}{re  z\%stoc
z\setcounter{tocdepth}{%d}
Contentsz!\renewcommand{\contentsname}{%s}
z\tableofcontents
) r3   r  r  r  r  r'  r;  r   r  r  r:   r  r  r  r  rE   rt   r  r:  r  rI  toc_listrB   r  pendingdetailsAttributeErrorr  rH  r@   r  rL  )
rR   r  rC  minitoc_namesmtc_namerT  r  maxdepthrE   offsets
             rS   visit_contentsLaTeXTranslator.visit_contents  s    'T)_"<<<//0B0BCL%+(.(.0M DLL111!),%(6 	tG}!HH**4*>>Ht~~'55tI.++x7HHOO9!//1!^^-446!XXej\:1=?? @ !!)5)>)>DNN:&d#	nnU]]3;;G
 GQ't||,,-dnn&4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 >!)63C+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   $O ')P .PP,+P,c                   SUS   ;   a  U R                  U5        g SUS   ;   a  U R                  R                  (       av  U R                  U R                  5        U R
                  R                  S5        [        UR                  5       [        R                  5      (       a  UR                  S5        g g SUS   ;   ae  U R                  S5        U R                  R                  (       a  [        R                  U R                   S'   U R                  U R                  5        OKSUS   ;   a-  U R                  S5        U R                  U R"                  5        OUS   R%                  SS5        U R'                  U5        g )NrP  r  rJ   z\begin{abstract}r   rI   rB  )rZ  rt   r5   r(  rJ   r  r:   r  r  r   rE   rB  r  r<   rI  abstract_legacyrB   rI   r  r|  r  s     rS   visit_topicLaTeXTranslator.visit_topic!  s    i(%DO+--22&&t}}5HHOO/0$..*EKK88 9 T)_,%%j1==771=1M1MDNN:.**4==9i0%%l3**4??;Y&&q'2""4(rU   c                "   SUS   ;   a7  U R                   R                  (       a  U R                  R                  S5        O,SUS   ;   a  U R	                  U5        OU R                  U5        SUS   ;   d	  SUS   ;   a  U R                  5         g g )NrJ   r  z\end{abstract}
rP  rI   )rt   r5   r  r:   r$  r  r,  r  s     rS   depart_topicLaTeXTranslator.depart_topic:  s}    $y/)00HHOO/04	?*t$##D)$y/)tI.%%' /rU   c                    U R                  S5        U R                  R                  S5        U R                  R                  S5        g )N
transitionzN
%___________________________________________________________________________
z\DUtransition
r'  r  s     rS   visit_transition LaTeXTranslator.visit_transitionF  s2    l+/0*+rU   c                    g rM   rG  r  s     rS   depart_transition!LaTeXTranslator.depart_transitionK  r@  rU   c                &    U R                  U5        g rM   rq  r  s     rS   visit_versionLaTeXTranslator.visit_versionN  rt  rU   c                &    U R                  U5        g rM   rv  r  s     rS   depart_versionLaTeXTranslator.depart_versionQ  ry  rU   c                F    [        SUR                  R                  -  5      e)Nz$visiting unimplemented node type: %s)rj  r[   r   r  s     rS   r  #LaTeXTranslator.unimplemented_visitT  s$    !"H"&.."9"9#: ; 	;rU   )<r  r  r  r  rJ   r  r  r  r  r  r  rK   rG   r7   r  r  r  rI   rH   r  r  r|  r  rB   rd  r  rL  r?   r  r  r  r  r  r  r  rA   r  r  r  r  r  r  r  rC   r  r@   r  r8   r0   rF   r  r  rE   r  rD   r&   r4   r3   re  r;  r|   )TFFF)r}   z	list[str]rM   )r'  listr}   r~   )r}   rr  r^  )r_  )r   r   r   r   r/  r  r7   r8   r  rL  r  r  re  r  r  r  r  r   r+  r3  ri  r4  r  r5  r)  r   rN   r  r  r  r  r  compiler  r  r  r  r  r  r  r  r$  r(  r,  r4  r;  r>  rE  rJ  rO  rR  rV  rZ  rb  rf  rj  rn  rr  rw  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%  rU  rY  r<  r@  rE  rM  rJ  rK  r\  r_  rc  rY  rq  r=  rH  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  rD  rI  r(  r+  r.  r2  r8  r;  r>  rA  rG  rJ  rM  r;  r?  rj  rm  ru  rx  r{  r~  r  r  r  r  r  r  r  r  r  r  r  r  r  r  r  r  r  r  r  r  r  r  r  r  r  r  r  r  r  r  r  r  r  r  r  r  r  r  r  r  r	  r  r  r  r  r  r!  r$  r(  r+  r.  r2  r5  r8  r;  r*  r/  r8  rF  rI  rZ  r^  ra  re  rh  rk  rn  r  r   r   r   s   @rS   rO   rO   l  s    H ! &+" $' 
 MM ',#H!&NGE }}ellEMM}}ejj%2D2DFO .3 BP 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
(,
&'; ;rU   rO   )<r/  
__future__r   __docformat__r  rd   r:  pathlibr   rx  r   r   r   r	   r
   docutils.transformsr   r   docutils.utils._roman_numeralsr   docutils.utils.mathr   r   __file__r  r   r   r   dictr5  rI  r  rT  rU  rI  rH  rV  r  rW  r]  r_  r`  r  rR  rT  rR  r  rO  rQ  rM  r  rN  
block_namedefinitionsra   rY  r  r  DoctreeTranslatorrO   rG  rU   rS   <module>r     s   $ "" 
    ? ? 6 7 B>(( HJW^^ HJVn nh84 8<2 2 / >   6 
3   J  C 
" ? 	  ( # 

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