HEX
Server: Apache
System: Linux pdx1-shared-a1-38 6.6.104-grsec-jammy+ #3 SMP Tue Sep 16 00:28:11 UTC 2025 x86_64
User: mmickelson (3396398)
PHP: 8.1.31
Disabled: NONE
Upload Files
File: //usr/lib/python3/dist-packages/sphinx/writers/__pycache__/latex.cpython-310.pyc
o

�$�a!D�@sDdZddlZddlZddlmZddlmZddlmZm	Z	m
Z
mZmZm
Z
mZmZddlmZmZddlmZmZmZddlmZmZdd	lmZdd
lmZddlmZddl m!Z!dd
l"m#Z#m$Z$m%Z%ddl&m'Z'm(Z(m)Z)ddl*m+Z+ddl,m-Z-m.Z.ddl/m0Z0ddl1m2Z2zddl3m4Z4Wne5y�ddl6m4Z4Ynwer�ddl7m8Z8ddl9m:Z:e'�;e<�Z=dZ>gd�Z?edd�dddddd��Z@d ZAd!ZBe�Cd"�ZDGd#d$�d$ejE�ZFGd%d&�d&e!�ZGGd'd(�d(ejH�ZIGd)d*�d*�ZJGd+d,�d,�ZKd-eLd.eLfd/d0�ZMd9d2eLd3eNd.eLfd4d5�ZOGd6d7�d7e+�ZPdd8lQmRZRmSZSmTZTdS):a0
    sphinx.writers.latex
    ~~~~~~~~~~~~~~~~~~~~

    Custom docutils writer for LaTeX.

    Much of this code is adapted from Dave Kuhlman's "docpy" writer from his
    docutils sandbox.

    :copyright: Copyright 2007-2021 by the Sphinx team, see AUTHORS.
    :license: BSD, see LICENSE for details.
�N)�defaultdict)�path)�
TYPE_CHECKING�Any�Dict�Iterable�List�Set�Tuple�cast)�nodes�writers)�Element�Node�Text)�addnodes�highlighting)�RemovedInSphinx50Warning)�
IndexEntry)�StandardDomain)�SphinxError)�_�__�admonitionlabels)�logging�
split_into�	texescape)�SphinxTranslator)�clean_astext�
get_prev_node)�
LaTeXRenderer)�tex_replace_map)�toRoman)�LaTeXBuilder)�Theme�)�part�chapter�section�
subsection�
subsubsection�	paragraph�subparagraphcCsdS)N�\arabic�r.r.r.�6/usr/lib/python3/dist-packages/sphinx/writers/latex.py�<lambda>3sr0r-z\alphz\Alphz\romanz\Roman)�arabic�
loweralpha�
upperalpha�
lowerroman�
upperroman�
z

z^(.*\S)\s+\(([^()]*)\)\s*$c@�eZdZdZdS)�collected_footnotez5Footnotes that are collected are assigned this class.N)�__name__�
__module__�__qualname__�__doc__r.r.r.r/r8A�r8c@r7)�UnsupportedErrorzMarkup is unsupported in LaTeXN)r9r:r;�categoryr.r.r.r/r>Er=r>csreZdZUdZddddgddifddgdd	ifd
dgddifffZiZeed<d
Zd�fdd�Z	ddd�Z
�ZS)�LaTeXWriter)�sphinxlatexzLaTeX writer options�z
Document namez	--docname�defaultzDocument classz
--docclass�manual�Authorz--author�settings_defaultsN�builderr#�returncst���||_d|_dS�N)�super�__init__rG�theme)�selfrG��	__class__r.r/rKVs

zLaTeXWriter.__init__cCspz
|j�|j|j|j�}Wnty'tjdtdd�|j�|j|j�}Ynw|j�|�t	t
|���|_dS)N�0LaTeXTranslator now takes 3rd argument; "theme".���
stacklevel)
rG�create_translator�documentrL�	TypeError�warnings�warnr�	walkaboutr�LaTeXTranslator�astext�output)rM�visitorr.r.r/�	translate[s��zLaTeXWriter.translate)rGr#rHN)rHN)r9r:r;�	supported�
settings_specrFr�__annotations__r\rKr^�
__classcell__r.r.rNr/r@Is
�r@c@szeZdZdZdeddfdd�Zdefdd�Zdefd	d
�Z	defdd�Z
d
ededdfdd�Zddededdfdd�Z
dS)�TablezA table data�noderHNcCsxg|_g|_|�dd�|_|�dg�|_d|_d|_g|_d|_d|_	d|_
d|_g|_d|_
d|_tt�|_d|_dS)N�alignrC�classesrF)�header�body�getrerf�colcount�colspec�	colwidths�has_problematic�has_oldproblematic�has_verbatim�caption�stubs�col�rowr�int�cells�cell_id�rMrdr.r.r/rKls 

zTable.__init__cCs|jdkp	d|jvS)z5True if and only if table uses longtable environment.��	longtable)rsrf�rMr.r.r/�is_longtable�szTable.is_longtablecCs>|��rdS|jrdS|jrdS|js|jrd|jvrdSdS)z�Returns the LaTeX environment name for the table.

        The class currently supports:

        * longtable
        * tabular
        * tabulary
        ry�tabular�tabulary�colwidths-given)r{rorkrmrlrfrzr.r.r/�get_table_type�s	zTable.get_table_typecs�|jr|jS|jr&d|jvr&t|j���fdd�|jD�}dd�|�tS|jr3d|j|jftS|��dkrDdd	|jd
tS|j	rQd|j|jftSdd|jd
tS)z�Returns a column spec of table.

        This is what LaTeX calls the 'preamble argument' of the used table environment.

        .. note:: the ``\X`` and ``T`` column type specifiers are defined in ``sphinx.sty``.
        r~csg|]}d|�f�qS)z
\X{%d}{%d}r.)�.0�width��totalr.r/�
<listcomp>�sz%Table.get_colspec.<locals>.<listcomp>z{|%s|}�|z{|*{%d}{\X{1}{%d}|}}r}z{|zT|�}zl|)
rkrlrf�sum�join�CRrmrjrrn)rM�colspecsr.r�r/�get_colspec�s
zTable.get_colspec�heightr�cCsl|jd7_t|�D](}t|�D]!}|j|j||j|fdks$J�|j|j|j||j|f<qqdS)zsAdds a new cell to a table.

        It will be located at current position: (``self.row``, ``self.col``).
        �rN)rv�rangerursrr)rMr�r�rrrsr.r.r/�add_cell�s"��zTable.add_cellrsrr�	TableCellcCs@z|dur|j}|dur|j}t|||�WStyYdSw)z�Returns a cell object (i.e. rectangular area) containing given position.

        If no option arguments: ``row`` or ``col`` are given, the current position;
        ``self.row`` and ``self.col`` are used to get a cell object by default.
        N)rsrrr��
IndexError)rMrsrrr.r.r/�cell�s�z
Table.cell)NN)r9r:r;r<rrK�boolr{�strrr�rtr�r�r.r.r.r/rcisrcc@sNeZdZdZdedededdfdd�Zedefd	d
��Zedefdd��Z	dS)
r�zData of a cell in a table.�tablersrrrHNcCs�|j||fdkrt�||_|j||f|_||_||_|j|jd|jf|jkr?|jd8_|j|jd|jf|jks*|j|j|jdf|jkrd|jd8_|j|j|jdf|jksMdSdS�Nrr�)rur�r�rvrsrr)rMr�rsrrr.r.r/rK�s�$�zTableCell.__init__cCsLd}|jj|j|j|f|jkr$|d7}|jj|j|j|f|jks|S)zReturns the cell width.rr��r�rursrrrv)rMr�r.r.r/r���
�zTableCell.widthcCsLd}|jj|j||jf|jkr$|d7}|jj|j||jf|jks|S)zReturns the cell height.rr�r�)rMr�r.r.r/r��r�zTableCell.height)
r9r:r;r<rcrtrK�propertyr�r�r.r.r.r/r��sr��textrHcCst�dd|�S)z#Adjust spacing after abbreviations.z
\.(?=\s|$)z.\@)�re�sub)r�r.r.r/�escape_abbr��r��d�	width_str�scalecCs�t�d|�}|s
t�|}|��dd�\}}|dkr@t|�|dvr(d|}|S|dkr2d|}|S|d	kr>d
t|�d}|St|�|d}|dvrRd|}|S|dkr\d
|}|S|d	krhd|d}|Sd||f}|S)z4Convert `width_str` with rst length to LaTeX length.z^(\d*\.?\d*)\s*(\S*)$NrQr�)rB�pxz%s\sphinxpxdimen�ptz%sbp�%z%.3f\linewidth�Y@z%.5f\sphinxpxdimenz%.5fbpz%.5f\linewidthz%.5f%s)r��match�
ValueError�groups�float)r�r�r��res�amount�unit�amount_floatr.r.r/�rstdim_to_latexdim�s8�
�����r�c	sveZdZUdZded<dZdZdZ	�d�dej	dddd	d
df�fdd�
Z
d
eed
dfdd�Z
d
eefdd�Zded
efdd�Zd
efdd�Z�d�dededed
efdd�Z�d�deded
efdd�Zded
efd d!�Zded
efd"d#�Zd$ed
efd%d&�Zded
efd'd(�Zd)ed*ed
efd+d,�Zd
efd-d.�Zd/ed0ed
efd1d2�Zed
efd3d4��Zded
dfd5d6�Z ded
dfd7d8�Z!ded
dfd9d:�Z"ded
dfd;d<�Z#ded
dfd=d>�Z$ded
dfd?d@�Z%ded
dfdAdB�Z&ded
dfdCdD�Z'ded
dfdEdF�Z(ded
dfdGdH�Z)e(Z*e)Z+ded
dfdIdJ�Z,ded
dfdKdL�Z-ded
dfdMdN�Z.ded
dfdOdP�Z/ded
dfdQdR�Z0ded
dfdSdT�Z1ded
dfdUdV�Z2ded
dfdWdX�Z3ded
dfdYdZ�Z4ded
dfd[d\�Z5ded
dfd]d^�Z6ded
dfd_d`�Z7ded
dfdadb�Z8ded
dfdcdd�Z9ded
dfdedf�Z:ded
dfdgdh�Z;ded
dfdidj�Z<ded
dfdkdl�Z=ded
dfdmdn�Z>ded
dfdodp�Z?ded
dfdqdr�Z@ded
dfdsdt�ZAded
dfdudv�ZBded
dfdwdx�ZCded
dfdydz�ZDded
dfd{d|�ZEded
dfd}d~�ZFded
dfdd��ZGded
dfd�d��ZHded
dfd�d��ZIded
dfd�d��ZJded
dfd�d��ZKded
dfd�d��ZLded
dfd�d��ZMded
dfd�d��ZNded
dfd�d��ZOded
dfd�d��ZPded
dfd�d��ZQded
dfd�d��ZRded
dfd�d��ZSded
dfd�d��ZTded
dfd�d��ZUded
dfd�d��ZVded
dfd�d��ZWded
dfd�d��ZXded
dfd�d��ZYded
dfd�d��ZZded
dfd�d��Z[ded
dfd�d��Z\ded
dfd�d��Z]ded
dfd�d��Z^ded
dfd�d��Z_ded
dfd�d��Z`ded
dfd�d��Zaded
dfd�d��Zbded
dfd�d��Zcded
dfd�d��Zdded
dfd�d��Zeded
dfd�d��Zfded
dfd�d��Zgded
dfd�d„Zhded
dfd�dĄZided
dfd�dƄZjded
dfd�dȄZkded
dfd�dʄZlded
dfd�d̄Zmded
dfd�d΄Znded
dfd�dЄZoded
dfd�d҄Zpded
dfd�dԄZqded
dfd�dքZrded
dfd�d؄Zsded
dfd�dڄZtded
dfd�d܄Zuded
dfd�dބZvded
dfd�d�Zwded
dfd�d�Zxded
dfd�d�Zyded
dfd�d�Zzded
dfd�d�Z{ded
dfd�d�Z|ded
dfd�d�Z}ded
dfd�d�Z~euZevZ�eyZ�ezZ�ded
dfd�d�Z�ded
dfd�d�Z�ded
dfd�d�Z�ded
dfd�d��Z�ded
dfd�d��Z�ded
dfd�d��Z�ded
dfd�d��Z�ded
dfd�d��Z��d�de�de�d
ef�d�d�Z�ded
ef�d�d�Z�ded
df�d�d�Z�ded
df�d�d	�Z�ded
df�d
�d�Z�ded
df�d�d
�Z�ded
df�d�d�Z�ded
df�d�d�Z�ded
df�d�d�Z�ded
df�d�d�Z�ded
df�d�d�Z�ded
df�d�d�Z�ded
df�d�d�Z�ded
df�d�d�Z�e�Z�e�Z�e�Z�e�Z�e�Z�e�Z�e�Z�e�Z�e�Z�e�Z�e�Z�e�Z�e�Z�e�Z�e�Z�e�Z�e�Z�e�Z�ded
df�d�d�Z�ded
df�d �d!�Z�ded
df�d"�d#�Z�ded
df�d$�d%�Z�ded
df�d&�d'�Z�ded
df�d(�d)�Z�ded
df�d*�d+�Z�ded
df�d,�d-�Z�ded
df�d.�d/�Z�ded
df�d0�d1�Z�ded
df�d2�d3�Z�ded
df�d4�d5�Z�ded
df�d6�d7�Z�ded
df�d8�d9�Z�ded
df�d:�d;�Z�ded
df�d<�d=�Z�ded
df�d>�d?�Z�ded
df�d@�dA�Z�ded
df�dB�dC�Z�ded
df�dD�dE�Z�ded
df�dF�dG�Z�ded
df�dH�dI�Z�ded
df�dJ�dK�Z�ded
df�dL�dM�Z�ded
df�dN�dO�Z�ded
df�dP�dQ�Z�ded
df�dR�dS�Z�ded
df�dT�dU�Z�ded
df�dV�dW�Z�ded
df�dX�dY�Z�ded
df�dZ�d[�Z�ded
df�d\�d]�Z�ded
df�d^�d_�Z�ded
df�d`�da�Z�ded
df�db�dc�Z�ded
df�dd�de�Z�ded
df�df�dg�Z�ded
df�dh�di�Z�ded
df�dj�dk�Z�ded
df�dl�dm�Z�ded
df�dn�do�Z�ded
df�dp�dq�Z�ded
df�dr�ds�Z�ded
df�dt�du�Z�ded
df�dv�dw�Z�ded
df�dx�dy�Z�e�Z�e�Z�ded
df�dz�d{�Z�ded
df�d|�d}�Z�ded
df�d~�d�Z�ded
df�d��d��Z�ded
df�d��d��Z�ded
df�d��d��Z�ded
df�d��d��Z�ded
df�d��d��Z�ded
df�d��d��Z�ded
df�d��d��Z�ded
df�d��d��Z�ded
df�d��d��Z�ded
df�d��d��Z�ded
df�d��d��Z�ded
df�d��d��Z�ded
df�d��d��Z�ded
df�d��d��Z�ded
df�d��d��Z�ded
df�d��d��Z�ded
df�d��d��Z�ded
df�d��d��Z�ded
df�d��d��Z�ded
df�d��d��Z�ded
df�d��d��Z�ded
df�d��d��Z�ded
df�d��d��Z�ded
df�d��d��Z�ded
df�d��d��Z�ded
df�d��d��Z�ded
df�d��d��Z�ded
df�d��d��Z�ded
df�d��d��Z�ded
df�d��d��Z�ded
df�d��d��Z�ded
df�d��d��Z�ded
df�d��d��Z��d�ed
ef�dÐdĄ�Z�d�ed
ef�dŐdƄ�Zd�ed
df�dǐdȄ�Zd�ed
df�dɐdʄ�Zded
df�dːd̄�Zded
df�d͐d΄�Zded
df�dϐdЄ�Zded
df�dѐd҄�Zded
df�dӐdԄ�Z	ded
df�dՐdք�Z
ded
df�dאd؄�Zded
df�dِdڄ�Zd�e
d
df�dېd܄�Z��ZS(�rZNr#rGrQF)�howtorDrUrLr$rHc	sxt��||�g|_||_|durtjdtdd�d|_d|_d|_	d|_
d|_d|_d|_
d|_d|_d|_d|_d|_d|_d|_g}|jj��|_tdd�|_|jrg|jj}|jjdkrf|j�d�n4|�|jj�|jd<|� d	�d
kr�|j!j"� d
d�}|ddkr�n|j�d�n|j!j"� d
d�}||jd	<d|_#|j!j$r�z|j�%|j!j$�|_#Wnt&y�t'�(t)d�|j!j$|f�Ynw|j!j*�r|j!j+|_+|j+dk�r	t,|j�t,t�kr�|j#dkr�|j+|j#7_+n
|j+|j#d7_+t-|j+t,t�d�|_+|�.d|j+�n|�.d�|j!j*�r|j!j/�r|�.d�|j!j0dv�r8d|j!j1v�r8dt2dt2d|jd<|jj3|_3|j!j0�rR|j3�4��sRt'�(t)d�|j!j0�|j5}|j6� d��r�|j6� dd�|j#d}t,|j�t,t�k�r||j#dk�r||d7}|t,t�dk�r�t'�(t)d��t,t�d}d||jd<t7||�}|j!j*�r�|j!j+dk�r�t7||j+d�}||j5k�r�d||jd<|� d�}|�r�|�8d |�|jd<|jd!�r�|�.d"|jd!�|�r�d#d$�9|�|jd%<|jd&�r�d'|jd&|jd&<|jd(�r|jd)d$|jd(7<t:j;d*|j!j<|j!j=d+�|_>g|_g|_?g|_@d|_Ag|_Bd|_Cg|_Dg|_EtF�|_GdS),NrPrQrRrr�r(r'�wrapperclass�docclassr��article�jrD�reportz+unknown %r toplevel_sectioning for class %rznumfigreset=%s�
nonumfigreset�
mathnumfig>N�en�ja�fncychapz\usepackage[Sonny]{fncychap}z&\ChNameVar{\Large\normalfont\sffamily}z'\ChTitleVar{\Large\normalfont\sffamily}z%no Babel option known for language %r�tocdepthi�ztoo large :maxdepth:, ignored.z\setcounter{tocdepth}{%d}z\setcounter{secnumdepth}{%d}�secnumdepth�contentsnamez
\contentsname�maxlistdepthzmaxlistdepth=%sz[,%s]�,�sphinxpkgoptions�sphinxsetupz\sphinxsetup{%s}�extraclassoptions�classoptions�latex��latex_engine)HrJrKrhrLrWrXr�in_title�in_production_list�in_footnote�
in_caption�in_term�needs_linetrimming�in_minipage�no_latex_floats�first_document�this_is_the_title�literal_whitespace�in_parsed_literal�compact_list�first_paramrG�context�copy�elements�LATEXSECTIONNAMES�sectionnamesr��toplevel_sectioning�remove�format_docclass�settingsri�config�latex_docclass�top_sectionlevel�latex_toplevel_sectioning�indexr��logger�warningr�numfig�numfig_secnum_depth�len�min�append�math_numfig�language�latex_elementsr��babel�is_supported_languager�rU�max�babel_renewcommandr�r�PygmentsBridge�pygments_styler��highlighter�	descstack�tables�next_table_colspec�	bodystack�footnote_restricted�pending_footnotes�curfilestack�set�
handled_abbrs)	rMrUrGrLr�r��minsecnumdepthr�r�rNr.r/rKs���
�


��



�

��
�

�

�

���zLaTeXTranslator.__init__�newbodycCs|j�|j�||_dSrI)r�r�rh)rMr�r.r.r/�pushbody�s
zLaTeXTranslator.pushbodycCs|j}|j��|_|SrI)rhr��pop)rMrhr.r.r/�popbody�szLaTeXTranslator.popbodyr�cCs&tjdtdd�||jvrd|}|S)z*Prepends prefix to sphinx document classesz,LaTeXWriter.format_docclass() is deprecated.rQrR�sphinx)rWrXr�
docclasses)rMr�r.r.r/r��s�
zLaTeXTranslator.format_docclasscCs,|j�d�|j�|��d��|�d|j�S)NrB)rh�indiceszlatex.tex_t)r��updater�rh�generate_indices�renderrzr.r.r/r[�s

�zLaTeXTranslator.astextT�id�withdoc�anchorcCs0|r|jdd|}|rdndd|�|�S)N����:�\phantomsectionrB�
\label{%s})r��idescape)rMrrr	r.r.r/�hypertarget�szLaTeXTranslator.hypertargetrdcs,d��fdd�|dD��}|rd|S|S)NrBc3s�|]
}�j|dd�VqdS)F�r	N)r)r��node_idrzr.r/�	<genexpr>�s�z1LaTeXTranslator.hypertarget_to.<locals>.<genexpr>�idsr)r�)rMrdr	�labelsr.rzr/�hypertarget_to�szLaTeXTranslator.hypertarget_tocC�d|�|�S)Nz{\hyperref[%s]{�r�rMrr.r.r/�	hyperlink��zLaTeXTranslator.hyperlinkcCr)Nz\autopageref*{%s}rrr.r.r/�hyperpageref�rzLaTeXTranslator.hyperpageref�scCst�||jj�SrI)r�escaper�r�)rMrr.r.r/r��zLaTeXTranslator.escapecCs(dt|��t��dd��d��dd�S)Nz\detokenize{%s}�ascii�backslashreplace�\r)r�r^r!�encode�decode�replacerr.r.r/r�s�zLaTeXTranslator.idescape�command�
definitioncCs:|jdrd|j��}d}nd}d}d||||ftS)N�multilingualz\addto\captions%s{r�rBz%s\renewcommand{%s}{%s}%s)r�r��get_languager�)rMr%r&�prefix�suffixr.r.r/r��s
z"LaTeXTranslator.babel_renewcommandcs�dtttttfdtddf��fdd�}g��jj}|r]�jjj	�
�D]7}|jD]1}d|j|jf}t
|t�r>||vr>q*||���jj�\}}|sLq*��d|jt�|||�q*q%d���S)	N�content�	collapsedrHc
s���dt���dt�t|�D]U\}\}}|dkr#��dt���d��|�t�|D]5}|ds8q1��d��|d��|drT��d	��|d����d
|d��|d�ft�q1q��dt�dS)
Nz\begin{sphinxtheindex}z*\let\bigletter\sphinxstyleindexlettergrouprz\indexspacez\bigletter{%s}�z%\item\relax\sphinxstyleindexentry{%s}�z\sphinxstyleindexextra{%s}z\sphinxstyleindexpageref{%s:%s}rQz\end{sphinxtheindex})r�r��	enumeraterr"r)r+r,�i�letter�entries�entry��retrMr.r/�generate�s*����
z2LaTeXTranslator.generate_indices.<locals>.generatez%s-%sz\renewcommand{\indexname}{%s}rB)rr
r�rr�r��latex_domain_indicesrG�env�domains�valuesr�name�
isinstance�listr6�docnamesr��	localnamer�r�)rMr6�indices_config�domain�indexcls�	indexnamer+r,r.r4r/r�s&,

��
z LaTeXTranslator.generate_indices�
template_name�	variablescCsTt|jjd�}|jjD]}t�|jj||�}t�|�r#|�	||�Sq|�	||�S)Nr�)
r r�r��templates_pathrr�rG�confdir�existsr)rMrDrE�renderer�template_dir�templater.r.r/rs�
�zLaTeXTranslator.rendercCs|jr|jdSdS)zGet current table.r
N)r�rzr.r.r/r�#s
zLaTeXTranslator.tablecCst|j�|�dd��|jdkrd|_n|jdkr%|j�tdt�d|_d|vr2|j�|�d��|jd|_dS)N�docnamerBr�rz	\appendixr
z:doc)	r�r�rir�rhr�rr��sectionlevelrwr.r.r/�visit_document+s

zLaTeXTranslator.visit_documentcC�dSrIr.rwr.r.r/�depart_document9�zLaTeXTranslator.depart_documentcCs|j�|d�dS)NrL)r�r�rwr.r.r/�visit_start_of_file<�z#LaTeXTranslator.visit_start_of_filecCs|j��dSrI)r�r�rwr.r.r/�depart_start_of_file?rz$LaTeXTranslator.depart_start_of_filecCs$|js
|jd7_|j�t�dS�Nr�)r�rMrhr��	BLANKLINErwr.r.r/�
visit_sectionBszLaTeXTranslator.visit_sectioncCst|jd|jd�|_dSrU)r�rMr�rwr.r.r/�depart_sectionGs

�zLaTeXTranslator.depart_sectioncC�|j�d�dS)Nz{\color{red}\bfseries{}�rhr�rwr.r.r/�visit_problematicKrz!LaTeXTranslator.visit_problematiccCrY�Nr�rZrwr.r.r/�depart_problematicNrz"LaTeXTranslator.depart_problematiccCsd|_|j�tdt�dS)Nr�z\begin{sphinxShadowBox}�r�rhr�r�rwr.r.r/�visit_topicQszLaTeXTranslator.visit_topiccCsd|_|j�dt�dS)Nrz\end{sphinxShadowBox}r^rwr.r.r/�depart_topicUszLaTeXTranslator.depart_topiccCrOrIr.rwr.r.r/�visit_glossary[rQzLaTeXTranslator.visit_glossarycCrOrIr.rwr.r.r/�depart_glossary^rQzLaTeXTranslator.depart_glossarycCs&|j�t�|j�dt�d|_dS)Nz\begin{productionlist}r�)rhr�rVr�r�rwr.r.r/�visit_productionlistas
z$LaTeXTranslator.visit_productionlistcCs|j�dt�d|_dS)Nz\end{productionlist}r)rhr�rVr�rwr.r.r/�depart_productionlistfs
z%LaTeXTranslator.depart_productionlistcCsP|dr |d}|j�|�d|��|j�d|�|��dS|j�d�dS)N�	tokennamezgrammar-token-z\production{%s}{z\productioncont{)rhr�rr")rMrd�tnr.r.r/�visit_productionjs
z LaTeXTranslator.visit_productioncC�|j�dt�dSr\�rhr�r�rwr.r.r/�depart_productionrrSz!LaTeXTranslator.depart_productioncCs|j�|jd�dS)N�
transition)rhr�r�rwr.r.r/�visit_transitionu�z LaTeXTranslator.visit_transitioncCrOrIr.rwr.r.r/�depart_transitionxrQz!LaTeXTranslator.depart_transitioncCs�|j}t|tj�rtj�t|tj�r�|jrCt|j	�dkr.t|j	dtj
�s.tjt
d�|d�|jds=|�|���|jd<d|_tj�d}t|�tj��r[d|�d�t|�����}z|j�d	|j|j|f�Wnty�|j�d	|jd
|f�Ynw|j�dt|�|j��nbt|tj�r�|j�d�|j�dt�nMt|tj �r�|j�d
�|j�dt�n8t|tj!�r�|j�d�|j�dt�n#t|tj"�r�|�#g�ntjt
d�|d�|j�d�|j�dt�d|_$dS)Nr�rz(document title is not a single Text node��location�titlerB�[%s]� z\%s%s{r
r�z\sphinxstyletopictitle{z\sphinxstylesidebartitle{�{zJencountered title node not in section, topic, table, admonition or sidebarz\sphinxstyleothertitle{)%�parentr<r�seealsor�SkipNoder(r�r��childrenrr�r�rr�rr[r=�traverse�imager�r�splitrhr�r�rMr�r�r�r�topic�sidebar�
Admonitionr�r�r�)rMrdru�shortr.r.r/�visit_title{sR�
�
 �
�
zLaTeXTranslator.visit_titlecCs:d|_t|jtj�r|��|j_dS|j�|j	�
��dS�Nr)r�r<rurr�rrprhr�r�r�rwr.r.r/�depart_title�szLaTeXTranslator.depart_titlecCs>t|jtj�r|j�d�|j�dt�dS|j�d�dS)Nz\sphinxstylesidebarsubtitle{r�rB)r<rurr}rhr�r�r�rwr.r.r/�visit_subtitle�szLaTeXTranslator.visit_subtitlecC�|j�|j���dSrI�rhr�r�r�rwr.r.r/�depart_subtitle�rmzLaTeXTranslator.depart_subtitlecCs\|jjdkr|j�t�|j�dt�n|j�t�|j�dt�|jr,d|j_dSdS)N�footnotez&\begin{savenotes}\begin{fulllineitems}z\begin{fulllineitems}T)r��latex_show_urlsrhr�rVr�r�rmrwr.r.r/�
visit_desc�s�zLaTeXTranslator.visit_desccCs<|jjdkr|j�tdt�dS|j�tdt�dS)Nr�z"\end{fulllineitems}\end{savenotes}z\end{fulllineitems})r�r�rhr�r�rVrwr.r.r/�depart_desc�szLaTeXTranslator.depart_desccCs8|D]}t|tj�r|j�d�dSq|j�d�dS)Nz\pysiglinewithargsret{z\pysigline{)r<r�desc_parameterlistrhr�)rMrd�childr.r.r/�_visit_signature_line�s�z%LaTeXTranslator._visit_signature_linecCrYr\rZrwr.r.r/�_depart_signature_line�rz&LaTeXTranslator._depart_signature_linecCsv|jddkr|dr|�|dd�}nd}|j�|�|�d�s)|�|�dS|j�dt�|j�dt�dS)	N�objtype�describerrrB�is_multiliner�z\pysigstartmultiline)rurrhr�rir�r�)rMrd�hyperr.r.r/�visit_desc_signature�s
z$LaTeXTranslator.visit_desc_signaturecCs8|�d�s|�|�dS|j�dt�|j�d�dS)Nr�r�z\pysigstopmultiline)rir�rhr�r�rwr.r.r/�depart_desc_signature�s
z%LaTeXTranslator.depart_desc_signaturecC�|�|�dSrI)r�rwr.r.r/�visit_desc_signature_line�rz)LaTeXTranslator.visit_desc_signature_linecCr�rI)r�rwr.r.r/�depart_desc_signature_line�rz*LaTeXTranslator.depart_desc_signature_linecCs0|jrt|jdtj�s|j�d�dSdSdS)Nr�~)rxr<rr+rhr�rwr.r.r/�visit_desc_content�s�z"LaTeXTranslator.visit_desc_contentcCrOrIr.rwr.r.r/�depart_desc_content�rQz#LaTeXTranslator.depart_desc_contentcCrY)N�\sphinxcode{\sphinxupquote{rZrwr.r.r/�visit_desc_inline�rz!LaTeXTranslator.visit_desc_inlinecCrY�N�}}rZrwr.r.r/�depart_desc_inlinerz"LaTeXTranslator.depart_desc_inlinecC�|j�d�|jd7_dS)N�\sphinxbfcode{\sphinxupquote{r��rhr�r�rwr.r.r/�visit_desc_name�zLaTeXTranslator.visit_desc_namecC�|j�d�|jd8_dS�Nr�r�r�rwr.r.r/�depart_desc_namer�z LaTeXTranslator.depart_desc_namecCr�)Nr�r�r�rwr.r.r/�visit_desc_addnamer�z"LaTeXTranslator.visit_desc_addnamecCr�r�r�rwr.r.r/�depart_desc_addnamer�z#LaTeXTranslator.depart_desc_addnamecCrOrIr.rwr.r.r/�visit_desc_typerQzLaTeXTranslator.visit_desc_typecCrOrIr.rwr.r.r/�depart_desc_typerQz LaTeXTranslator.depart_desc_typecCrY)Nz{ $\rightarrow$ rZrwr.r.r/�visit_desc_returnsrz"LaTeXTranslator.visit_desc_returnscCrYr\rZrwr.r.r/�depart_desc_returns!rz#LaTeXTranslator.depart_desc_returnscCs|j�d�d|_dS)N�}{r�)rhr�r�rwr.r.r/�visit_desc_parameterlist$s
z(LaTeXTranslator.visit_desc_parameterlistcCrY)Nr�rZrwr.r.r/�depart_desc_parameterlist)sz)LaTeXTranslator.depart_desc_parameterlistcCs8|js
|j�d�nd|_|�d�s|j�d�dSdS)N�, r�noemph�\emph{)r�rhr��hasattrrwr.r.r/�visit_desc_parameter-s
�z$LaTeXTranslator.visit_desc_parametercCs|�d�s
|j�d�dSdS)Nr�r�)r�rhr�rwr.r.r/�depart_desc_parameter5s
�z%LaTeXTranslator.depart_desc_parametercCrY)Nz\sphinxoptional{rZrwr.r.r/�visit_desc_optional9rz#LaTeXTranslator.visit_desc_optionalcCrYr\rZrwr.r.r/�depart_desc_optional<rz$LaTeXTranslator.depart_desc_optionalcCrY)Nr�rZrwr.r.r/�visit_desc_annotation?rz%LaTeXTranslator.visit_desc_annotationcCrYr�rZrwr.r.r/�depart_desc_annotationBrz&LaTeXTranslator.depart_desc_annotationcCs8|j�t�|j�dtdt�|j�dt�dS)Nz\sphinxstrong{%s:}rvz\nopagebreak)rhr�rVrr�rwr.r.r/�
visit_seealsoGszLaTeXTranslator.visit_seealsocC�|j�t�dSrI)rhr�rVrwr.r.r/�depart_seealsoLrzLaTeXTranslator.depart_seealsocCsLt|�dkr|��dtd�fvrtj�|j�d�|j�dt�d|_	dS)Nr��	Footnotesz\subsubsection*{r�)
r�r[rrrwrhr�r�r�r�rwr.r.r/�visit_rubricOs
 
zLaTeXTranslator.visit_rubriccCsd|_|j�|j���dSr�)r�rhr�r�r�rwr.r.r/�
depart_rubricVszLaTeXTranslator.depart_rubriccCs�|jd7_ttj|d�}d|vr|j�d�|jr'|j�d|���n|j�dt�|j�d|���d|vrI|j�d|��t�|j�dt�dS)	Nr�r�autoz\sphinxstepexplicit z\begin{footnote}[%s]r�z+\phantomsection\label{\thesphinxscope.%s}%%�\sphinxAtStartFootnote)	r�rr�labelrhr�r�r[r��rMrdr�r.r.r/�visit_footnoteZs��zLaTeXTranslator.visit_footnotecCsB|jr
|j�d�n|j�dt�|j�d�|jd8_dS)Nz\end{footnote}r�r�)r�rhr�r�r�rwr.r.r/�depart_footnoteis
zLaTeXTranslator.depart_footnotecC�tj�rI�rrwrwr.r.r/�visit_labelq�zLaTeXTranslator.visit_labelcCs|d|_tj�)N�spec)r�rrwrwr.r.r/�visit_tabular_col_spects
z&LaTeXTranslator.visit_tabular_col_speccCs�t|j�dkr!|j��dkrtd|jd|jpdf��d|j_nt|j�dkr6td|jd|jp2df��|j�t	|��|j
r[d	|j
t|j_d
|�
dg�vr[tjtd�|d
�d|_
dS)Nr�ryz2%s:%s: longtable does not support nesting a table.r
rBTrQz0%s:%s: deeply nested tables are not implemented.z{%s}r~rfzGboth tabularcolumns and :widths: option are given. :widths: is ignored.ro)r�r�r�rr>r��linermr�rcr�r�rkrir��inforrwr.r.r/�visit_tablexs,��
��
�
zLaTeXTranslator.visit_tablecCs`|�|�}|j��}|�|dt|j|d��}|j�t�|j�|�|j�t�|j	�
�dS)Nz.tex_t)r�r)rr�rr�dictrhr�rVr�r�r�)rMrdr�
table_typer�r.r.r/�depart_table�s


�zLaTeXTranslator.depart_tablecCsP|jjd7_d|vr|jj�|d�d|vr&|jj�|jjd�dSdS)Nr��colwidth�stub)r�rjrlr�rqrwr.r.r/�
visit_colspec�s�zLaTeXTranslator.visit_colspeccCrOrIr.rwr.r.r/�depart_colspec�rQzLaTeXTranslator.depart_colspeccCrOrIr.rwr.r.r/�visit_tgroup�rQzLaTeXTranslator.visit_tgroupcCrOrIr.rwr.r.r/�
depart_tgroup�rQzLaTeXTranslator.depart_tgroupcC�|�|jj�dSrI)r�r�rgrwr.r.r/�visit_thead��zLaTeXTranslator.visit_theadcC�|��dSrI�rrwr.r.r/�depart_thead��zLaTeXTranslator.depart_theadcCr�rI)r�r�rhrwr.r.r/�visit_tbody�r�zLaTeXTranslator.visit_tbodycCr�rIr�rwr.r.r/�depart_tbody�r�zLaTeXTranslator.depart_tbodycCs�d|j_	|j�|jj|jj�}|durdS|jj|j7_|jr(|j�d�|jdkr7|j�d|j�n|j�d|j|jf�q)NrT�&r��\sphinxtablestrut{%d}z,\multicolumn{%d}{|l|}{\sphinxtablestrut{%d}})r�rrr�rsr�rhr�rv)rMrdr�r.r.r/�	visit_row�s

��zLaTeXTranslator.visit_rowcs��j�dt��fdd�t�jj�D�}�fdd�|D�}t|�r)�j�d�n9d}|�dg�|t|�krb||durX||d��	d�}�j�d	|d
||f�||7}|d
7}|t|�ks7�jj
d
7_
dS)Nz\\csg|]}�j��jj|��qSr.)r�r�rs)r�r0rzr.r/r��sz.LaTeXTranslator.depart_row.<locals>.<listcomp>cs$g|]}|j|j�jjdk�qS)r�)rsr�r�)r�r�rzr.r/r��s$z\hlinerFTz
\cline{%d-%d}r�)rhr�r�r�r�rj�all�extendr�r�rs)rMrdru�
underlinedr0r�r.rzr/�
depart_row�s�zLaTeXTranslator.depart_rowcCs�|jjdkr|j�d�|j�|�dd�d|�dd�d�|j��}d}|jdkr`|jj	rQ|jjdkrA|j�d|jt
�n|j�d|jt
�d	t
}n|j�d
|jt
�dt
}|jdkry|j�d|j|jft
�d	t
|}|jdks�|jdkr�|j�d
|j|jj
ft
�dt
dt
|}d|_tt|�tj���dkr�d|j_t|jjtj�s�|j|jjvr�t|�dkr�t|dtj�r�|��dkr�n|j�d�|jr�|�g�|j�|�dS)Nrr��morerowsr��morecolsrBz\multicolumn{%d}{|l|}{%%z\multicolumn{%d}{l|}{%%z}%z\sphinxstartmulticolumn{%d}%%z\sphinxstopmulticolumnz\sphinxmultirow{%d}{%d}{%%z,\begin{varwidth}[t]{\sphinxcolwidth{%d}{%d}}z\parz7\vskip-\baselineskip\vbox{\hbox{\strut}}\end{varwidth}%rQTz\sphinxstyletheadfamily )r�rrrhr�r�rir�r�r��latex_use_latex_multicolumnr�r�rvrjr�r�r=ryrr+rnr<ru�theadrqr[r�r�)rMrdr�r�r.r.r/�visit_entry�sJ&



��
��(
zLaTeXTranslator.visit_entrycCs�|jr%d|_|��}|r|dtkr|�d�|r|dtks|j�|�|j�|j���|j�	�}|jj
|j7_
	|j�	�}|durHdS|jj
|j7_
|j�d�|jdkrf|j�d|j�n|j�d|j|jf�q=)NrTr�r�r�z+\multicolumn{%d}{l|}{\sphinxtablestrut{%d}})
r�rr�r�rhr�r�r�r�r�rrr�rv)rMrdrhr��nextcellr.r.r/�depart_entrys,
�



��zLaTeXTranslator.depart_entrycCs^ttj|d�}tttj|�}|j�t�|j�d�dd�|D��d�|j�t�tj	�)Nrr�cs��|]}|��VqdSrI�r[)r��nr.r.r/r'��z-LaTeXTranslator.visit_acks.<locals>.<genexpr>�.)
rr�bullet_listr�	list_itemrhr�rVr�rw)rMrdr��
list_itemsr.r.r/�
visit_acks!s zLaTeXTranslator.visit_ackscCs,|js|j�dt�|jrd|j_dSdS)Nz\begin{itemize}T�r�rhr�r�r�rmrwr.r.r/�visit_bullet_list+s
�z!LaTeXTranslator.visit_bullet_listcCs|js
|j�dt�dSdS)Nz
\end{itemize}�r�rhr�r�rwr.r.r/�depart_bullet_list1s�z"LaTeXTranslator.depart_bullet_listcs�dtdtfdd�}dtdtf�fdd��dt�|����}dt�|�d���}t�||��}|�d	d
�}|�dd�}|j�d
t	�|j�d|||||ft	�d|vrh|j�d||ddft	�|j
rqd|j
_dSdS)NrdrHcSs4|�dd�}d|vrd|�dd�t|�krd}|S)N�enumtyper1�alpha��startr)rir�)rdr�r.r.r/�get_enumtype6s z;LaTeXTranslator.visit_enumerated_list.<locals>.get_enumtypecs0|durdSt|tj�r�|j�dS�|j�Sr�)r<r�enumerated_listru)rd��get_nested_levelr.r/r>s

z?LaTeXTranslator.visit_enumerated_list.<locals>.get_nested_levelzenum%sr�r)rBr*r�z\begin{enumerate}z*\sphinxsetlistlabels{%s}{%s}{%s}{%s}{%s}%%rz\setcounter{%s}{%d}T)rr�rtr"�lower�ENUMERATE_LIST_STYLErirhr�r�r�rm)rMrdr�enum�enumnext�styler)r*r.rr/�visit_enumerated_list5s$�� �z%LaTeXTranslator.visit_enumerated_listcCrh)Nz\end{enumerate}rirwr.r.r/�depart_enumerated_listTrSz&LaTeXTranslator.depart_enumerated_listcCrY)Nz	\item {} rZrwr.r.r/�visit_list_itemWszLaTeXTranslator.visit_list_itemcCr�rIrirwr.r.r/�depart_list_item\rz LaTeXTranslator.depart_list_itemcC�&|j�dt�|jrd|j_dSdS)Nz\begin{description}T�rhr�r�r�rmrwr.r.r/�visit_definition_list_��z%LaTeXTranslator.visit_definition_listcCrh)Nz\end{description}rirwr.r.r/�depart_definition_listdrSz&LaTeXTranslator.depart_definition_listcCrOrIr.rwr.r.r/�visit_definition_list_itemgrQz*LaTeXTranslator.visit_definition_list_itemcCrOrIr.rwr.r.r/�depart_definition_list_itemjrQz+LaTeXTranslator.depart_definition_list_itemcCsd|jd7_d}|�d�r d}|dD]}||j|dd�7}q|d7}|j�d�|j�|�dS)	Nr�rBrrFrz}] \leavevmodez\item[{)r�rirrhr�r�)rMrd�ctxrr.r.r/�
visit_termms
zLaTeXTranslator.visit_termcCs$|j�|j���|jd8_dSrU)rhr�r�r�r�rwr.r.r/�depart_termxszLaTeXTranslator.depart_termcCrY)Nz{[}rZrwr.r.r/�visit_classifier|rz LaTeXTranslator.visit_classifiercCrY)Nz{]}rZrwr.r.r/�depart_classifierrz!LaTeXTranslator.depart_classifiercCrOrIr.rwr.r.r/�visit_definition�rQz LaTeXTranslator.visit_definitioncCr�rIrirwr.r.r/�depart_definition�rz!LaTeXTranslator.depart_definitioncCr)Nz \begin{quote}\begin{description}Trrwr.r.r/�visit_field_list�rz LaTeXTranslator.visit_field_listcCrh)Nz\end{description}\end{quote}rirwr.r.r/�depart_field_list�rSz!LaTeXTranslator.depart_field_listcCrOrIr.rwr.r.r/�visit_field�rQzLaTeXTranslator.visit_fieldcCrOrIr.rwr.r.r/�depart_field�rQzLaTeXTranslator.depart_fieldcCs�|j�|�}|dkr1t|jtj�r1t|j|dtj�s1t|j|dtj�s1|j�dt�dS|dkr@t|jtj	t
f�r@dS|j�tdtg�dS)Nrr��	\noindentz\sphinxAtStartPar)rur�r<r�compoundr+rhr�r�r��footnotetextr�)rMrdr�r.r.r/�visit_paragraph�s��zLaTeXTranslator.visit_paragraphcCr�rIrirwr.r.r/�depart_paragraph�rz LaTeXTranslator.depart_paragraphcCs&|j�td�|jrd|j_dSdS)N�\begin{center}Trrwr.r.r/�visit_centered�rzLaTeXTranslator.visit_centeredcC�|j�td�dS)N�\end{center}rirwr.r.r/�depart_centered�rSzLaTeXTranslator.depart_centeredcCsn|jd7_|d}|jdkr|j�dt�|j�d|dt�|j�dt�|jr5d|j_dSdS)Nr��ncolumnsz\setlength{\multicolsep}{0pt}z\begin{multicols}{z
}\raggedrightzA\begin{itemize}\setlength{\itemsep}{0pt}\setlength{\parskip}{0pt}Tr�)rMrdr*r.r.r/�visit_hlist�s
��zLaTeXTranslator.visit_hlistcCs"|jd8_|j�dt�dS)Nr�z*\end{itemize}\raggedcolumns\end{multicols}r�rwr.r.r/�depart_hlist�szLaTeXTranslator.depart_hlistcCrOrIr.rwr.r.r/�visit_hlistcol�rQzLaTeXTranslator.visit_hlistcolcCrOrIr.rwr.r.r/�depart_hlistcol�szLaTeXTranslator.depart_hlistcolr�r�r�cCs2zt||�WStyt�td�|�YdSw)Nz&dimension unit %s is invalid. Ignored.)r�r�r�r�r)rMr�r�r.r.r/�latex_image_length�s�z"LaTeXTranslator.latex_image_lengthcCst|jtj�S)z2Check whether a node represents an inline element.)r<rur�TextElementrwr.r.r/�	is_inline�r�zLaTeXTranslator.is_inlinecCsRg}g}g}t|jtj�}|r|�|j�}n|�|�}d|vr>d|vr.|�|d|d�}n|�|d�}|r>|�d|�d|vrad|vrQ|�|d|d�}n|�|d�}|ra|�d|�d|vrt|st|�dt|d�d�d|vr�d	d
ddd
dd�}	z|�|	||dfd�|�|	||dfd�Wn	ty�Ynw|j	r�|�d�|�d�|s�|s�|�t
d�|�t
�|��|d|jj
vr�|jj
|d}
n	|jr�dS|d}
|
�d�dkr�dS|j�|�d}|r�dd�|�}t�|
�\}}
|j�r|�r|j�d|||
f�n|j�d|||
f�|j�|�dS)Nr�r�zwidth=%sr�z	height=%szscale=%sr�re)rBrB)z\raisebox{-0.5\height}{r�)z\raisebox{-\height}{r�)�{\hspace*{\fill}�\hspace*{\fill}})rtr3)r2r�))r��top)r��middle)r��bottom)r�center)r�left)r�rightrr�z!{\sphinxunactivateextrasandspace r�r �uriz://r
rBrrr�z,\lowercase{\sphinxincludegraphics%s}{{%s}%s}z \sphinxincludegraphics%s{{%s}%s})r<rur�	referencer1r/r�r��KeyErrorr�r��reverserG�images�ignore_missing_images�findrhr�r�r�splitextr�)rMrd�pre�post�include_graphics_options�
has_hyperlinkr1�w�h�
align_prepostr:�options�base�extr.r.r/�visit_image�s�
���


��zLaTeXTranslator.visit_imagecCrOrIr.rwr.r.r/�depart_image,rQzLaTeXTranslator.depart_imagecCs�|jd}|jr
d}|jrVd|vr-|�|d�}|r,|j�d|t�|j�dt�n|j�dt�|j�dt�tdd�|D��rL|j�d	�|j�d
t�dS|�	dd�d
vr�d}d|vrl|�|d�}nt
|dtj�r�d|dvr�|�|dd�}|j�t
�|j�d|ddkr�dnd|p�dft�|j�d�|j�dt�dS|jr�|j�td�|j�dt�dS|j�td|t�|j�dt�tdd�|D��r�|j�d	t�|j�dt�dS)N�figure_align�Hr�z!\begin{sphinxfigure-in-table}[%s]z
\centeringz\begin{sphinxfigure-in-table}cs��|]	}t|tj�VqdSrI�r<rrp�r�r�r.r.r/r=��z/LaTeXTranslator.visit_figure.<locals>.<genexpr>z	\capstartz!\end{sphinxfigure-in-table}\relaxrerB)r8r9rz\begin{wrapfigure}{%s}{%s}r9�r�l�0ptz\end{wrapfigure}r%r(z\begin{figure}[%s]csrPrIrQrRr.r.r/rRrSz\end{figure})r�r�r�r/rhr�r��anyr�rir<rrzrVr�)rMrdre�lengthr.r.r/�visit_figure/sJ
���zLaTeXTranslator.visit_figurecCr�rIr�rwr.r.r/�
depart_figureVrmzLaTeXTranslator.depart_figurecCs�|jd7_t|jt�r|j�d�dS|jr't|jtj�r'|j�d�dS|j	r8|jj
dkr8|j�d�dS|j�d�dS)Nr�z\sphinxSetupCaptionForVerbatim{z\captionof{figure}{�figurez\sphinxfigcaption{z	\caption{)r�r<ru�captioned_literal_blockrhr�r�rr[r��tagnamerwr.r.r/�
visit_captionYszLaTeXTranslator.visit_captioncCsD|j�d�t|jtj�r|�|j�}|j�|�|jd8_dS)Nr�r�)rhr�r<rurr[rr�)rMrdrr.r.r/�depart_captionds
zLaTeXTranslator.depart_captioncCr')Nz\begin{sphinxlegend}rirwr.r.r/�visit_legendkrSzLaTeXTranslator.visit_legendcCrh)Nz\end{sphinxlegend}rirwr.r.r/�
depart_legendnrSzLaTeXTranslator.depart_legendcCs"|j�td�|jd7_dS)Nz\begin{sphinxadmonition}{note}r��rhr�r�r�rwr.r.r/�visit_admonitionq�z LaTeXTranslator.visit_admonitioncC�"|j�dt�|jd8_dS�Nz\end{sphinxadmonition}r�rbrwr.r.r/�depart_admonitionurdz!LaTeXTranslator.depart_admonitioncCs6t|j}|j�td|j|f�|jd7_dS)Nz!\begin{sphinxadmonition}{%s}{%s:}r�)rr]rhr�r�r�r�r.r.r/�_visit_named_admonitionys


�z'LaTeXTranslator._visit_named_admonitioncCrerfrbrwr.r.r/�_depart_named_admonitionrdz(LaTeXTranslator._depart_named_admonitioncCrOrIr.rwr.r.r/�visit_versionmodified�rQz%LaTeXTranslator.visit_versionmodifiedcCrOrIr.rwr.r.r/�depart_versionmodified�rQz&LaTeXTranslator.depart_versionmodifiedcs�dtddf��fdd�}�}t|tj�r |jdd�}t|tj�stt�jj�	d��}t|t
�r1dS|�|�r=|�|�r=dSd�vrCdSd	�vrIdS��
d
�rgt��}t|tj�ra�d
|d
kran|�d
��dD]}||�qkdS)NrrHcst|�d�rdS|�d�rdS�j���}|dkr)t�j|dtj�r)�j�t��j	}�j��j
||d��dS)Nzindex-z	equation-rr�r)�
startswithrur�r<rr+rhr�r�r�r)rr�r	�rdrMr.r/�
add_target�s

z0LaTeXTranslator.visit_target.<locals>.add_targetT)�ascend�std�refuri�	anonymous�refidr)r�r<r�target�	next_noderrrGr8�
get_domain�HYPERLINK_SUPPORT_NODES�get_enumerable_node_type�get_numfig_titlerirr;)rMrdrnrurA�	prev_noderr.rmr/�visit_target�s,�


�zLaTeXTranslator.visit_targetcCrOrIr.rwr.r.r/�
depart_target�rQzLaTeXTranslator.depart_targetcCs$|j�tdt�|j�d�dS)Nz\begin{flushright}z---rirwr.r.r/�visit_attribution�sz!LaTeXTranslator.visit_attributioncCs|j�tdt�dS)Nz\end{flushright}rirwr.r.r/�depart_attribution�sz"LaTeXTranslator.depart_attributioncs�dtdtf�fdd��dtdtfdd�}|�dd	�s �j�t�|d
}|D�]7\}}}}}d}	|r4d}	�z|d
kr�z'�fdd�tdd
|�D�\}
}||
�||�}}
�j�d|
|||
|	f�Wn�ty��tdd
|�d�}||�}�j�d|||	f�Yn�w|dkr��fdd�tdd|�D�\}
}||
�||�}}
�j�d|
|||
|	||
|
||	f
�n�|dkr�fdd�tdd|�D�\}
}}||
�||�||�}}
}�j�d|
||||
||	||
||
|||	|||
|||
|	f�nP|dk�r�fdd�tdd|�D�\}
}||
�}�j�d|
||f�n,|dk�r;�fd d�tdd|�D�\}
}||
�}�j�d|
||f�nt�t	d!�|�Wq&t�y^}z
t�t|��WYd}~q&d}~ww|�dd	��sl�j�d"�t
j�)#N�valuerHcsV��|�}|�dd�}|�dd�}|�dd�}|�dd�}|�d	d
�}|�dd�}|S)
Nz\{z\sphinxleftcurlybrace{}z\}z\sphinxrightcurlybrace{}�"z""�@z"@�!z"!r�z
\textbar{}�r"r$)rrzr.r/r�s
z+LaTeXTranslator.visit_index.<locals>.escape�stringcSs t�|�}|r|�d�Sd|S)Nz\\spxentry{\1}\\spxextra{\2}z
\spxentry{%s})�EXTRA_REr��expand)r�r�r.r.r/r	�s

z*LaTeXTranslator.visit_index.<locals>.style�inlineTr2rBz	|spxpagem�singlec�g|]}�|��qSr.r.�r��x�rr.r/r���z/LaTeXTranslator.visit_index.<locals>.<listcomp>rQz\index{%s@%s!%s@%s%s}r�rz\index{%s@%s%s}�paircr�r.r.r�r�r.r/r��r�z*\index{%s@%s!%s@%s%s}\index{%s@%s!%s@%s%s}�triplecr�r.r.r�r�r.r/r��r�r-zS\index{%s@%s!%s %s@%s %s%s}\index{%s@%s!%s, %s@%s, %s%s}\index{%s@%s!%s %s@%s %s%s}�seecr�r.r.r�r�r.r/r�r�z\index{%s@%s|see{%s}}rvcr�r.r.r�r�r.r/r�r�z!unknown index entry type %s foundz\ignorespaces )r�rirhr�r�rr�r�r�rrrw)rMrdr	r2�typer��tid�ismain�key_�m�p1�p2�P1�P2�p�P�p3�P3�errr.)rrMr/�visit_index�sl
�� ���

���zLaTeXTranslator.visit_indexcCsV|�|�s|j�t�d|�dd���vr|j�|���|�|�s(|j�t�tj�)Nr��formatrB)	r1rhr�r�rir{r[rrwrwr.r.r/�	visit_raws

zLaTeXTranslator.visit_rawcCsz|js|�d�D]}|j}|j|j||d�7_q|�|�s&|j�t�|�dd�}|s@|�d�r@d|jdd|d}|jsE|sM|j	�d�dS|�
d�r�|jdd	|d
d�}|j�|�|��|j�d�|jj
r�|js�|j	�d|�|��dS|j	�d
�dS|�
d�r�|�d�}|dkr�|d
d�d}n
|d
d��dd	�}|j�|�|��t|�r�t|dtj�r�d|d�dg�vr�|j	�d
�|j�d�dS|j�d�|jj
r�|js�|j	�d|�|��dS|j	�d
�dSt|�d
k�r*||dk�r*|�d��r|j�d|�|��tj�|j�d|�|��tj�|j�d|�|��|j	�d�dS)NrrrqrBrsr�r
�#rr�r�z}}} (%s)z}}}z::docrzstd-termrfz\sphinxtermref{z\sphinxcrossref{�	nolinkurlz\sphinxnolinkurl{%s}z\sphinxurl{%s}z\sphinxhref{%s}{r�)r�rir�rhrr1r�r�r�r�rlrr��latex_show_pagerefsr�rr@r$r�r<rr�
encode_urirw)rMrdrr	r:�	hashindexr.r.r/�visit_referencesX


�

��zLaTeXTranslator.visit_referencecCs0|j�|j���|�|�s|j�t�dSdSrI)rhr�r�r�r1r�rwr.r.r/�depart_referenceWs
�z LaTeXTranslator.depart_referencecCs�|�d�r|jdd|d}n|�dd�dd��dd�}|�|�dd	���d
d	�}d|vs4d|vrR|�dd
��dd�}t|�jd|�|�d|�|�d�}nt|�d|�|�}d|�|�|f}|j�|�t	j
�)Nrsr
rrqrBr�r�rqz%sz\%sz\{name\}z
\{number\}z{name}z{number}z\nameref{%s}�\ref{%s})r;�numberz\hyperref[%s]{%s})rir�r$rr�r�rrhr�rrw)rMrdrrqr��hyperrefr.r.r/�visit_number_reference\s
�z&LaTeXTranslator.visit_number_referencecCrOrIr.rwr.r.r/�visit_download_referenceprQz(LaTeXTranslator.visit_download_referencecCrOrIr.rwr.r.r/�depart_download_referencesrQz)LaTeXTranslator.depart_download_referencecCrOrIr.rwr.r.r/�visit_pending_xrefvrQz"LaTeXTranslator.visit_pending_xrefcCrOrIr.rwr.r.r/�depart_pending_xrefyrQz#LaTeXTranslator.depart_pending_xrefcCrY)Nz\sphinxstyleemphasis{rZrwr.r.r/�visit_emphasis|rzLaTeXTranslator.visit_emphasiscCrYr\rZrwr.r.r/�depart_emphasisrzLaTeXTranslator.depart_emphasiscCrY)Nz+\sphinxstyleliteralemphasis{\sphinxupquote{rZrwr.r.r/�visit_literal_emphasis�rz&LaTeXTranslator.visit_literal_emphasiscCrYr�rZrwr.r.r/�depart_literal_emphasis�rz'LaTeXTranslator.depart_literal_emphasiscCrY)Nz\sphinxstylestrong{rZrwr.r.r/�visit_strong�rzLaTeXTranslator.visit_strongcCrYr\rZrwr.r.r/�
depart_strong�rzLaTeXTranslator.depart_strongcCrY)Nz)\sphinxstyleliteralstrong{\sphinxupquote{rZrwr.r.r/�visit_literal_strong�rz$LaTeXTranslator.visit_literal_strongcCrYr�rZrwr.r.r/�depart_literal_strong�rz%LaTeXTranslator.depart_literal_strongcCsb|��}|j�d�|�d�r)||jvr)|j�d|�|d��|j�|�dS|j�d�dS)Nz\sphinxstyleabbreviation{�explanationz} (%s)r�)r[rhr�r�r�r�r"�add)rMrd�abbrr.r.r/�visit_abbreviation�sz"LaTeXTranslator.visit_abbreviationcCr�rIr�rwr.r.r/�depart_abbreviation�rmz#LaTeXTranslator.depart_abbreviationcC�
|�|�SrI)r�rwr.r.r/�
visit_manpage��
zLaTeXTranslator.visit_manpagecCr�rI)r�rwr.r.r/�depart_manpage�r�zLaTeXTranslator.depart_manpagecCrY)Nz\sphinxtitleref{rZrwr.r.r/�visit_title_reference�rz%LaTeXTranslator.visit_title_referencecCrYr\rZrwr.r.r/�depart_title_reference�rz&LaTeXTranslator.depart_title_referencecCsntttj|�}dd�|D�}tdd�|D�td�}t|�tkr&|dt�}|j�t	d|�
|�t	�dS)Ncss �|]}ttj|d�VqdS)rN)rrr�)r��citationr.r.r/r�s�z8LaTeXTranslator.visit_thebibliography.<locals>.<genexpr>csr�rIr�)r�r�r.r.r/r�r�)�keyz!\begin{sphinxthebibliography}{%s})rrrr�r�r��MAX_CITATION_LABEL_LENGTHrhr�r�r")rMrd�	citationsr�
longest_labelr.r.r/�visit_thebibliography�s
�
�z%LaTeXTranslator.visit_thebibliographycCrh)Nz\end{sphinxthebibliography}rirwr.r.r/�depart_thebibliography�rSz&LaTeXTranslator.depart_thebibliographycCs@ttj|d�}|j�d|�|���|d|ddf�dS)Nrz\bibitem[%s]{%s:%s}rLr)rrr�rhr�r"r[r�r.r.r/�visit_citation�s�zLaTeXTranslator.visit_citationcCrOrIr.rwr.r.r/�depart_citation�rQzLaTeXTranslator.depart_citationcCs,|jrdS|j�d|d|df�tj�)Nz\sphinxcite{%s:%s}rL�refname)r�rhr�rrwrwr.r.r/�visit_citation_reference�sz(LaTeXTranslator.visit_citation_referencecCrOrIr.rwr.r.r/�depart_citation_reference�rQz)LaTeXTranslator.depart_citation_referencecCsB|jr|j�d�dSd|dvr|j�d�dS|j�d�dS)Nz*\sphinxstyleliteralintitle{\sphinxupquote{�kbdrfz\sphinxkeyboard{\sphinxupquote{r�)r�rhr�rwr.r.r/�
visit_literal�s
zLaTeXTranslator.visit_literalcCrYr�rZrwr.r.r/�depart_literal�rzLaTeXTranslator.depart_literalcCr�rIr�rwr.r.r/�visit_footnote_reference�r�z(LaTeXTranslator.visit_footnote_referencecCrY)Nz\sphinxfootnotemark[rZrwr.r.r/�visit_footnotemark�rz"LaTeXTranslator.visit_footnotemarkcCrY)N�]rZrwr.r.r/�depart_footnotemark�rz#LaTeXTranslator.depart_footnotemarkcCsTttj|d�}|j�dt�|j�d|��|��ft�|j�dt�dS)Nrr�zC\begin{footnotetext}[%s]\phantomsection\label{\thesphinxscope.%s}%%r�)rrr�rhr�r�r[r�r.r.r/�visit_footnotetext�s��z"LaTeXTranslator.visit_footnotetextcCs |j�dt�|j�d�dS)Nr�z \end{footnotetext}\ignorespaces rirwr.r.r/�depart_footnotetext�sz#LaTeXTranslator.depart_footnotetextcCrOrIr.rwr.r.r/�visit_captioned_literal_block�rQz-LaTeXTranslator.visit_captioned_literal_blockcCrOrIr.rwr.r.r/�depart_captioned_literal_block�rQz.LaTeXTranslator.depart_captioned_literal_blockc	Cs�|j|��kr|jd7_|j�dt�dS|�|�}t|jt	�r+||�|j�7}|r<|j
s<|j�td|d�|�dd�}|�dd�}|�d	i�}|�d
d�|d
<|jj
�|i�}|jj|j|f|||d�|��}|j
r�|j�td�|�d
d�}n|jr�d|j_d|j_|�d
d�}n|�d
d�}|��dd�}|jr�|j
s�|d7}n|d7}t|�dg��dd�}|r�|j�td|�|j�t|t�|r�|j�dt�tj�)Nr�z\begin{sphinxalltt}z\def\sphinxLiteralBlockLabel{r�r�rC�linenosF�highlight_args�force)�optsr�rpz\sphinxSetupCodeBlockInFootnotez\begin{Verbatim}z\begin{sphinxVerbatim}Tz\begin{sphinxVerbatimintable}i�z\end{sphinxVerbatimintable}z\end{sphinxVerbatim}�hl_linesr
z\fvset{hllines={, %s,}}%%z\sphinxresetverbatimhllines)�	rawsourcer[r�rhr�r�rr<rur\r�rir��highlight_optionsr��highlight_blockr$r�rmro�rstripr�rrw)	rMrdr�langr�r�r��hlcode�hllinesr.r.r/�visit_literal_block�s\

������
z#LaTeXTranslator.visit_literal_blockcCs&|j�tdt�|jd8_dS)Nz\end{sphinxalltt}r�)rhr�r�r�rwr.r.r/�depart_literal_block'sz$LaTeXTranslator.depart_literal_blockcCrY)Nz\item[] rZrwr.r.r/�
visit_line-rzLaTeXTranslator.visit_linecCr�rIrirwr.r.r/�depart_line0rzLaTeXTranslator.depart_linecCsZt|jtj�r|j�dt�|j�dt�n
|j�tdt�|jr+d|j_dSdS)Nz\item[]z'\begin{DUlineblock}{\DUlineblockindent}z\begin{DUlineblock}{0em}T)	r<rur�
line_blockrhr�r�r�rmrwr.r.r/�visit_line_block3s�z LaTeXTranslator.visit_line_blockcCrh)Nz\end{DUlineblock}rirwr.r.r/�depart_line_block<rSz!LaTeXTranslator.depart_line_blockcCsfd}t|j�dkr|jd}t|tj�st|tj�rd}|s/|j�dt�|j	r1d|j	_
dSdSdS)Nrr�z
\begin{quote}T)r�rxr<rr�rrhr�r�r�rm�rMrd�doner�r.r.r/�visit_block_quote?s

��z!LaTeXTranslator.visit_block_quotecCsTd}t|j�dkr|jd}t|tj�st|tj�rd}|s(|j�dt�dSdS)Nrr�z\end{quote})	r�rxr<rr�rrhr�r�r�r.r.r/�depart_block_quoteNs

��z"LaTeXTranslator.depart_block_quotecCs|jdr
|j�d�dSdS)Nr
r�)r�rhr�rwr.r.r/�visit_optionZs
�zLaTeXTranslator.visit_optioncCs|jdd7<dS)Nr
r�)r�rwr.r.r/�
depart_option_szLaTeXTranslator.depart_optioncCs|j�|�dd��dS)z1The delimiter between an option and its argument.�	delimiterrsN)rhr�rirwr.r.r/�visit_option_argumentcsz%LaTeXTranslator.visit_option_argumentcCrOrIr.rwr.r.r/�depart_option_argumentgrQz&LaTeXTranslator.depart_option_argumentcCs|j�d�|j�d�dS)Nz\item [r)rhr�r�rwr.r.r/�visit_option_groupjsz"LaTeXTranslator.visit_option_groupcCs|j��|j�d�dS)Nz] )r�r�rhr�rwr.r.r/�depart_option_groupos
z#LaTeXTranslator.depart_option_groupcCr)Nz\begin{optionlist}{3cm}Trrwr.r.r/�visit_option_listsrz!LaTeXTranslator.visit_option_listcCrh)Nz\end{optionlist}rirwr.r.r/�depart_option_listxrSz"LaTeXTranslator.depart_option_listcCrOrIr.rwr.r.r/�visit_option_list_item{rQz&LaTeXTranslator.visit_option_list_itemcCrOrIr.rwr.r.r/�depart_option_list_item~rQz'LaTeXTranslator.depart_option_list_itemcCs |��}|j�|�|��tj�rI)r[rhr�r"rrw)rMrd�ostringr.r.r/�visit_option_string�sz#LaTeXTranslator.visit_option_stringcCrY)NrsrZrwr.r.r/�visit_description�rz!LaTeXTranslator.visit_descriptioncCrOrIr.rwr.r.r/�depart_description�rQz"LaTeXTranslator.depart_descriptioncCrY)Nz	$^{\text{rZrwr.r.r/�visit_superscript�rz!LaTeXTranslator.visit_superscriptcCrY�Nz}}$rZrwr.r.r/�depart_superscript�rz"LaTeXTranslator.depart_superscriptcCrY)Nz	$_{\text{rZrwr.r.r/�visit_subscript�rzLaTeXTranslator.visit_subscriptcCrYrrZrwr.r.r/�depart_subscript�rz LaTeXTranslator.depart_subscriptcCs�|�dg�}|dgfvr|j�d�|j�d�dS|dgfvr.|j�d�|j�d�dS|dgfvrB|j�d�|j�d�dS|rZ|jsZ|j�d	d
�|��|j�d�dS|j�d�dS)Nrf�
menuselectionz\sphinxmenuselection{r��guilabelz\sphinxguilabel{�acceleratorz\sphinxaccelerator{z\DUrole{%s}{r�rB)rirhr�r�r�r�)rMrdrfr.r.r/�visit_inline�s
zLaTeXTranslator.visit_inlinecCr�rIr�rwr.r.r/�
depart_inline�rmzLaTeXTranslator.depart_inlinecCrOrIr.rwr.r.r/�visit_generated�rQzLaTeXTranslator.visit_generatedcCrOrIr.rwr.r.r/�depart_generated�rQz LaTeXTranslator.depart_generatedcCrOrIr.rwr.r.r/�visit_compound�rQzLaTeXTranslator.visit_compoundcCrOrIr.rwr.r.r/�depart_compound�rQzLaTeXTranslator.depart_compoundcCs*|�dg�}|D]
}|j�d|�qdS)Nrfz
\begin{sphinxuseclass}{%s}�rirhr��rMrdrf�cr.r.r/�visit_container�s�zLaTeXTranslator.visit_containercCs&|�dg�}|D]}|j�d�qdS)Nrfz
\end{sphinxuseclass}rrr.r.r/�depart_container�s�z LaTeXTranslator.depart_containercCrOrIr.rwr.r.r/�visit_decoration�rQz LaTeXTranslator.visit_decorationcCrOrIr.rwr.r.r/�depart_decoration�rQz!LaTeXTranslator.depart_decorationcCr�rIr�rwr.r.r/�visit_header�r�zLaTeXTranslator.visit_headercCr�rIr�rwr.r.r/�visit_footer�r�zLaTeXTranslator.visit_footercCr�rIr�rwr.r.r/�
visit_docinfo�r�zLaTeXTranslator.visit_docinfor�cCs,|�|�}|jr|�tdt��dd�}|S)Nz~\\rsr�)rr�r$r��rMr�r.r.r/r"�s
zLaTeXTranslator.encodecCs"|�|��dd��dd��dd�S)Nz\textasciitilde{}r�z\sphinxhyphen{}�-z\textquotesingle{}�'r�rr.r.r/r��s�zLaTeXTranslator.encode_uricCs|�|���}|j�|�dSrI)r"r[rhr�)rMrdr�r.r.r/�
visit_Text�szLaTeXTranslator.visit_TextcCrOrIr.rwr.r.r/�depart_Text�rQzLaTeXTranslator.depart_TextcCr�rIr�rwr.r.r/�
visit_comment�r�zLaTeXTranslator.visit_commentcCr�rIr�rwr.r.r/�
visit_meta�szLaTeXTranslator.visit_metacCrOrIr.rwr.r.r/�visit_system_message�rQz$LaTeXTranslator.visit_system_messagecCr�rIrirwr.r.r/�depart_system_message�rz%LaTeXTranslator.depart_system_messagecCs:|jr|j�d|���tj�|j�d|���tj�)Nz\protect\(%s\protect\)z\(%s\))r�rhr�r[rrwrwr.r.r/�
visit_math�s
�zLaTeXTranslator.visit_mathcCs�|�d�rd|d|df}nd}|�d�r,|r!|j�d|�|j�|���tj	�ddlm}|j�||��||jj��tj	�)Nr��equation:%s:%srL�nowrapr
r)�wrap_displaymath)
rirhr�r[�sphinx.util.mathr%r��math_number_allrrw)rMrdr�r%r.r.r/�visit_math_blocks

��z LaTeXTranslator.visit_math_blockc
Cs�d|d|df}|jj}|rGzd|}|j�|j|d��WdStyF}ztjtd�||d�|j�d|�WYd}~dSd}~ww|j�d|�dS)	Nr#rLrtr�)r�zInvalid math_eqref_format: %rroz
\eqref{%s})	r��math_eqref_formatrhr�r�r<r�r�r)rMrdr��eqref_format�ref�excr.r.r/�visit_math_references���z$LaTeXTranslator.visit_math_referencecCrOrIr.rwr.r.r/�depart_math_referencerQz%LaTeXTranslator.depart_math_referencecCstd|jj��)NzUnknown node: )�NotImplementedErrorrOr9rwr.r.r/�
unknown_visit"rzLaTeXTranslator.unknown_visitrI)TT)F�r�(r9r:r;rGrar�r?rrrUrKrr�r�rr�r[r�rrrrrrrr�rrrr�rcr�rNrPrRrTrWrXr[r]r_r`�
visit_sidebar�depart_sidebarrarbrcrdrgrjrlrnr�r�r�r�r�r�r�r�r�r�r�r�r�r�r�r�r�r�r�r�r�r�r�r�r�r�r�r�r�r�r�r�r�r�r�r�r�r�r�r�r�r�r�r�r�r�r�r�r�r�r�r�r�r�r�r�r�r
rrr
rrrrrrrrrrrrrr�visit_field_name�depart_field_name�visit_field_body�depart_field_bodyr#r$r&r)r+r,r-r.rtr/r1rLrMrYrZr^r_r`rarcrgrhri�visit_attention�depart_attention�
visit_caution�depart_caution�visit_danger�
depart_danger�visit_error�depart_error�
visit_hint�depart_hint�visit_important�depart_important�
visit_note�depart_note�	visit_tip�
depart_tip�
visit_warning�depart_warningrjrkr{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��visit_doctest_block�depart_doctest_blockr�r�r�r�r�r�r�r�r�r�r�r�r�r�r�r�r�r�rrrrrr	r
rrr
rrrrrrrrr"r�rrrrrr r!r"r(r-r.rr0rbr.r.rNr/rZs
���
'
0

% 
"O'.B	8
3		$rZ)rwr\r"r1)Ur<r�rW�collectionsr�osr�typingrrrrrr	r
r�docutilsrr
�docutils.nodesrrrrrr�sphinx.deprecationr�sphinx.domainsr�sphinx.domains.stdr�
sphinx.errorsr�
sphinx.localerrr�sphinx.utilrrr�sphinx.util.docutilsr�sphinx.util.nodesrr�sphinx.util.templater �sphinx.util.texescaper!�docutils.utils.romanr"�ImportError�roman�sphinx.builders.latexr#�sphinx.builders.latex.themingr$�	getLoggerr9r�r�r�rr�rV�compiler�r�r8r>�Writerr@rcr�r�r�rtr�rZ�sphinx.builders.latex.nodesrwr\r"r.r.r.r/�<module>s�
(�
��	
 c#&