a
    1aB                    @   sB  d Z ddlZddlZddlmZ ddlmZ ddlmZm	Z	m
Z
mZmZmZmZmZ ddlmZmZ ddlmZmZmZ ddlmZmZ dd	lmZ dd
lmZ ddlmZ ddl m!Z! ddl"m#Z#m$Z$m%Z% ddl&m'Z'm(Z(m)Z) ddl*m+Z+ ddl,m-Z-m.Z. ddl/m0Z0 ddl1m2Z2 zddl3m4Z4 W n  e5yD   ddl6m4Z4 Y n0 erdddl7m8Z8 ddl9m:Z: e';e<Z=dZ>g dZ?edd ddddddZ@d ZAd!ZBeCd"ZDG d#d$ d$ejEZFG d%d& d&e!ZGG d'd( d(ejHZIG d)d* d*ZJG d+d, d,ZKeLeLd-d.d/ZMd7eLeNeLd1d2d3ZOG d4d5 d5e+ZPdd6lQmRZRmSZSmTZT dS )8a0  
    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-2022 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sectionZ
subsectionZsubsubsection	paragraphZsubparagraphc                   C   s   dS )N\arabic r+   r+   r+   3lib/python3.9/site-packages/sphinx/writers/latex.py<lambda>3       r-   r*   z\alphz\Alphz\romanz\Roman)arabicZ
loweralphaZ
upperalphaZ
lowerromanZ
upperroman
z

z^(.*\S)\s+\(([^()]*)\)\s*$c                   @   s   e Zd ZdZdS )collected_footnotez5Footnotes that are collected are assigned this class.N)__name__
__module____qualname____doc__r+   r+   r+   r,   r1   A   s   r1   c                   @   s   e Zd ZdZdS )UnsupportedErrorzMarkup is unsupported in LaTeXN)r2   r3   r4   categoryr+   r+   r+   r,   r6   E   s   r6   c                       s|   e Zd ZU dZddddgddifddgdd	ifd
dgddifffZi Zeed< dZddd fddZ	ddddZ
  ZS )LaTeXWriter)ZsphinxlatexzLaTeX writer options zDocument namez	--docnamedefaultzDocument classz
--docclassmanualZAuthorz--authorsettings_defaultsNr#   )builderreturnc                    s   t    || _d | _d S N)super__init__r=   theme)selfr=   	__class__r+   r,   rA   V   s    
zLaTeXWriter.__init__r>   c                 C   sp   z| j | j| j | j}W n4 tyN   tjdtdd | j | j| j }Y n0 | j| t	t
| | _d S )N0LaTeXTranslator now takes 3rd argument; "theme".   
stacklevel)r=   Zcreate_translatordocumentrB   	TypeErrorwarningswarnr   Z	walkaboutr   LaTeXTranslatorastextoutput)rC   Zvisitorr+   r+   r,   	translate[   s    zLaTeXWriter.translate)r2   r3   r4   Z	supportedZsettings_specr<   r   __annotations__rQ   rA   rR   __classcell__r+   r+   rD   r,   r8   I   s   
r8   c                   @   sp   e Zd ZdZeddddZedddZedd	d
Z	edddZ
eeddddZdeeddddZdS )TablezA table dataNnoder>   c                 C   sx   g | _ g | _|dd| _|dg | _d| _d | _g | _d| _d| _	d| _
d | _g | _d| _d| _tt| _d| _d S )Nalignr:   classesr   F)headerbodygetrX   rY   colcountcolspec	colwidthshas_problematichas_oldproblematichas_verbatimcaptionstubscolrowr   intcellscell_idrC   rW   r+   r+   r,   rA   l   s     
zTable.__init__rF   c                 C   s   | j dkpd| jv S )z5True if and only if table uses longtable environment.   	longtable)rf   rY   rC   r+   r+   r,   is_longtable   s    zTable.is_longtablec                 C   sB   |   rdS | jrdS | jr dS | js6| jr:d| jv r:dS dS dS )zReturns the LaTeX environment name for the table.

        The class currently supports:

        * longtable
        * tabular
        * tabulary
        rl   Ztabulartabularycolwidths-givenN)rn   rb   r^   r`   r_   rY   rm   r+   r+   r,   get_table_type   s    	zTable.get_table_typec                    s   | j r| j S | jrLd| jv rLt| j  fdd| jD }dd| t S | jrfd| j| jf t S |  dkrdd	| j  d
 t S | j	rd| j| jf t S dd| j  d
 t S dS )zReturns 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``.
        rp   c                    s   g | ]}d | f qS )z
\X{%d}{%d}r+   ).0widthtotalr+   r,   
<listcomp>   r.   z%Table.get_colspec.<locals>.<listcomp>z{|%s|}|z{|*{%d}{\X{1}{%d}|}}ro   z{|zT|}zl|N)
r^   r_   rY   sumjoinCRr`   r]   rq   ra   )rC   Zcolspecsr+   rt   r,   get_colspec   s    
zTable.get_colspec)heightrs   r>   c                 C   sl   |  j d7  _ t|D ]P}t|D ]B}| j| j| | j| f dksHJ | j | j| j| | j| f< q"qdS )zsAdds a new cell to a table.

        It will be located at current position: (``self.row``, ``self.col``).
           r   N)ri   rangerh   rf   re   )rC   r}   rs   re   rf   r+   r+   r,   add_cell   s
    "zTable.add_cell	TableCell)rf   re   r>   c                 C   sD   z*|du r| j }|du r| j}t| ||W S  ty>   Y dS 0 dS )zReturns 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)rf   re   r   
IndexError)rC   rf   re   r+   r+   r,   cell   s    z
Table.cell)NN)r2   r3   r4   r5   r   rA   boolrn   strrq   r|   rg   r   r   r+   r+   r+   r,   rU   i   s   rU   c                   @   sH   e Zd ZdZeeeddddZeedddZeedd	d
Z	dS )r   zData of a cell in a table.N)tablerf   re   r>   c                 C   s   |j ||f dkrt|| _|j ||f | _|| _|| _|j | jd | jf | jkrd|  jd8  _q8|j | j| jd f | jkr|  jd8  _qdd S Nr   r~   )rh   r   r   ri   rf   re   )rC   r   rf   re   r+   r+   r,   rA      s    zTableCell.__init__rF   c                 C   s0   d}| j j| j| j| f | jkr,|d7 }q|S )zReturns the cell width.r   r~   r   rh   rf   re   ri   )rC   rs   r+   r+   r,   rs      s    
zTableCell.widthc                 C   s0   d}| j j| j| | jf | jkr,|d7 }q|S )zReturns the cell height.r   r~   r   )rC   r}   r+   r+   r,   r}      s    
zTableCell.height)
r2   r3   r4   r5   rU   rg   rA   propertyrs   r}   r+   r+   r+   r,   r      s   r   textr>   c                 C   s   t dd| S )z#Adjust spacing after abbreviations.z
\.(?=\s|$)z.\@)resub)r   r+   r+   r,   escape_abbr   s    r   d   	width_strscaler>   c                 C   s   t d| }|st| }| dd \}}|dkrzt| |dv rNd| }q|dkr`d| }q|d	krd
t|d  }nVt|| d }|dv rd| }n4|dkrd| }n"|d	krd|d  }nd||f }|S )z4Convert `width_str` with rst length to LaTeX length.z^(\d*\.?\d*)\s*(\S*)$NrH   r   )r9   Z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amountZunitZamount_floatr+   r+   r,   rstdim_to_latexdim   s,    



r   c                       s  e Zd ZU dZded< dZdZdZdej	dddd fd	d
Z
ee ddddZee dddZeedddZedddZdeeeedddZdeeedddZeedddZeedd d!Zeed"d#d$Zeedd%d&Zeeed'd(d)Zedd*d+Zeeed,d-d.Zeedd/d0Zedd1d2d3Z edd1d4d5Z!edd1d6d7Z"edd1d8d9Z#edd1d:d;Z$edd1d<d=Z%edd1d>d?Z&edd1d@dAZ'edd1dBdCZ(edd1dDdEZ)e(Z*e)Z+edd1dFdGZ,edd1dHdIZ-edd1dJdKZ.edd1dLdMZ/edd1dNdOZ0edd1dPdQZ1edd1dRdSZ2edd1dTdUZ3edd1dVdWZ4edd1dXdYZ5edd1dZd[Z6edd1d\d]Z7edd1d^d_Z8edd1d`daZ9edd1dbdcZ:edd1dddeZ;edd1dfdgZ<edd1dhdiZ=edd1djdkZ>edd1dldmZ?edd1dndoZ@edd1dpdqZAedd1drdsZBedd1dtduZCedd1dvdwZDedd1dxdyZEedd1dzd{ZFedd1d|d}ZGedd1d~dZHedd1ddZIedd1ddZJedd1ddZKedd1ddZLedd1ddZMedd1ddZNedd1ddZOedd1ddZPedd1ddZQedd1ddZRedd1ddZSedd1ddZTedd1ddZUedd1ddZVedd1ddZWedd1ddZXedd1ddZYedd1ddZZedd1ddZ[edd1ddZ\edd1ddZ]edd1ddZ^edd1ddZ_edd1ddZ`edd1ddZaedd1ddZbedd1ddZcedd1ddZdedd1ddZeedd1ddZfedd1ddZgedd1ddZhedd1ddZiedd1ddÄZjedd1ddńZkedd1ddǄZledd1ddɄZmedd1dd˄Znedd1dd̈́Zoedd1ddτZpedd1ddфZqedd1ddӄZredd1ddՄZsedd1ddׄZtedd1ddلZuedd1ddۄZvedd1dd݄Zwedd1dd߄Zxedd1ddZyedd1ddZzedd1ddZ{edd1ddZ|edd1ddZ}edd1ddZ~euZevZeyZezZedd1ddZedd1ddZedd1ddZedd1ddZedd1ddZedd1ddZedd1ddZedd1ddZdeeedddZeed1d dZedd1ddZedd1ddZedd1ddZedd1dd	Zedd1d
dZedd1ddZedd1ddZedd1ddZedd1ddZedd1ddZedd1ddZedd1ddZeZeZeZeZeZeZeZeZeZeZeZeZeZeZeZeZeZeZedd1ddZedd1ddZedd1ddZedd1d d!Zedd1d"d#Zedd1d$d%Zedd1d&d'Zedd1d(d)Zedd1d*d+Zedd1d,d-Zedd1d.d/Zedd1d0d1Zedd1d2d3Zedd1d4d5Zedd1d6d7Zedd1d8d9Zedd1d:d;Zedd1d<d=Zedd1d>d?Zedd1d@dAZedd1dBdCZedd1dDdEZedd1dFdGZedd1dHdIZedd1dJdKZedd1dLdMZedd1dNdOZedd1dPdQZedd1dRdSZedd1dTdUZedd1dVdWZedd1dXdYZedd1dZd[Zedd1d\d]Zedd1d^d_Zedd1d`daZedd1dbdcZedd1dddeZedd1dfdgZedd1dhdiZedd1djdkZedd1dldmZedd1dndoZedd1dpdqZedd1drdsZedd1dtduZeZeZedd1dvdwZedd1dxdyZedd1dzd{Zedd1d|d}Zedd1d~dZedd1ddZedd1ddZedd1ddZedd1ddZedd1ddZedd1ddZedd1ddZedd1ddZedd1ddZedd1ddZedd1ddZedd1ddZedd1ddZedd1ddZedd1ddZedd1ddZedd1ddZedd1ddZedd1ddZedd1ddZedd1ddZedd1ddZedd1ddZedd1ddZedd1ddZedd1ddZedd1ddZedd1ddZedd1ddZedd1ddZedd1ddZeedddZ eedddZedd1dÐdĄZedd1dŐdƄZedd1dǐdȄZedd1dɐdʄZedd1dːd̄Zedd1d͐d΄Zedd1dϐdЄZ	edd1dѐd҄Z
edd1dӐdԄZedd1dՐdքZ  ZS (  rO   Nr#   r=   rH   F)howtor;   r$   )rK   r=   rB   r>   c           	         s  t  || g | _|| _|d u r2tjdtdd d| _d| _d| _	d| _
d| _d| _d| _d| _d| _d| _d| _d| _d| _d| _g }| jj | _td d  | _| jr| jj}| jjdkr| jd nl| | jj| jd< | d	d
kr | j!j" d
d}|d dkrn| jd n| j!j" dd}|| jd	< d| _#| j!j$rz| j%| j!j$| _#W n. t&y   t'(t)d| j!j$|f  Y n0 | j!j*r(| j!j+| _+| j+dkrt,| jt,tk r| j#dkr|  j+| j#7  _+n|  j+| j#d 7  _+t-| j+t,td | _+|.d| j+  n
|.d | j!j*rF| j!j/rF|.d | j!j0dvr|d| j!j1vr|dt2 d t2 d | jd< | jj3| _3| j!j0r| j34 st'(t)d| j!j0 | j5}| j6 drH| j6 dd| j# d }t,| jt,tk r| j#dkr|d7 }|t,td kr0t'(t)d t,td }d| | jd< t7||}| j!j*rp| j!j+dkrpt7|| j+d }|| j5krd| | jd< | d}|r| 8d || jd< | jd! r|.d"| jd!   |rd#d$9| | jd%< | jd& rd'| jd&  | jd&< | jd( r.| jd)  d$| jd(  7  < t:j;d*| j!j<| j!j=d+| _>g | _g | _?g | _@d | _Ag | _Bd | _Cg | _Dg | _EtF | _Gd S ),NrG   rH   rI   r   r~   r(   r'   Zwrapperclassdocclassr   Zarticlejr;   reportz+unknown %r toplevel_sectioning for class %rznumfigreset=%sZnonumfigresetZ
mathnumfig>   NjaenZfncychapz\usepackage[Sonny]{fncychap}z&\ChNameVar{\Large\normalfont\sffamily}z'\ChTitleVar{\Large\normalfont\sffamily}z%no Babel option known for language %rtocdepthi  ztoo large :maxdepth:, ignored.z\setcounter{tocdepth}{%d}z\setcounter{secnumdepth}{%d}secnumdepthcontentsnamez\contentsnameZmaxlistdepthzmaxlistdepth=%sz[,%s],sphinxpkgoptionsZsphinxsetupz\sphinxsetup{%s}ZextraclassoptionsZclassoptionslatexlatex_engine)Hr@   rA   r[   rB   rM   rN   r   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_paramr=   contextcopyelementsLATEXSECTIONNAMESsectionnamesr   Ztoplevel_sectioningremoveformat_docclassZsettingsr\   configZlatex_docclasstop_sectionlevelZlatex_toplevel_sectioningindexr   loggerwarningr   ZnumfigZnumfig_secnum_depthlenminappendZmath_numfiglanguageZlatex_elementsr{   babelZis_supported_languager   rK   maxbabel_renewcommandrz   r   ZPygmentsBridgeZpygments_styler   highlighterZ	descstacktablesnext_table_colspec	bodystackZfootnote_restrictedZpending_footnotescurfilestacksethandled_abbrs)	rC   rK   r=   rB   r   r   Zminsecnumdepthr   r   rD   r+   r,   rA     s    
















zLaTeXTranslator.__init__)newbodyr>   c                 C   s   | j | j || _d S r?   )r   r   r[   )rC   r   r+   r+   r,   pushbody  s    zLaTeXTranslator.pushbodyrF   c                 C   s   | j }| j | _ |S r?   )r[   r   pop)rC   r[   r+   r+   r,   popbody  s    zLaTeXTranslator.popbody)r   r>   c                 C   s&   t jdtdd || jv r"d| }|S )z*Prepends prefix to sphinx document classesz,LaTeXWriter.format_docclass() is deprecated.rH   rI   sphinx)rM   rN   r   
docclasses)rC   r   r+   r+   r,   r     s    
zLaTeXTranslator.format_docclassc                 C   s,   | j d| j|  d | d| j S )Nr9   )r[   indiceszlatex.tex_t)r   updaterz   r[   generate_indicesrenderrm   r+   r+   r,   rP     s
    
zLaTeXTranslator.astextT)idwithdocanchorr>   c                 C   s0   |r| j d d | }|rdndd| |  S )N:\phantomsectionr9   
\label{%s})r   idescape)rC   r   r   r   r+   r+   r,   hypertarget  s    zLaTeXTranslator.hypertarget)rW   r   r>   c                    s0   d  fdd|d D }|r(d| S |S d S )Nr9   c                 3   s   | ]} j |d dV  qdS )Fr   N)r   )rr   node_idrm   r+   r,   	<genexpr>  r.   z1LaTeXTranslator.hypertarget_to.<locals>.<genexpr>idsr   )rz   )rC   rW   r   labelsr+   rm   r,   hypertarget_to  s    zLaTeXTranslator.hypertarget_tor   r>   c                 C   s   d|  | S )Nz{\hyperref[%s]{r   rC   r   r+   r+   r,   	hyperlink  s    zLaTeXTranslator.hyperlinkc                 C   s   d|  | S )Nz\autopageref*{%s}r   r   r+   r+   r,   hyperpageref  s    zLaTeXTranslator.hyperpageref)sr>   c                 C   s   t || jjS r?   )r   escaper   r   )rC   r   r+   r+   r,   r     s    zLaTeXTranslator.escapec                 C   s(   dt |tddddd S )Nz\detokenize{%s}asciibackslashreplace\r   )r   rR   r!   encodedecodereplacer   r+   r+   r,   r     s    zLaTeXTranslator.idescape)command
definitionr>   c                 C   s:   | j d rd| j  }d}nd}d}d||||f t S )NZmultilingualz\addto\captions%s{rx   r9   z%s\renewcommand{%s}{%s}%s)r   r   Zget_languager{   )rC   r   r   prefixsuffixr+   r+   r,   r     s    
z"LaTeXTranslator.babel_renewcommandc                    s   t ttt t f  td d fdd}g  jj}|rjjj	
 D ]n}|jD ]b}d|j|jf }t|trx||vrxqP||jj\}}|sqP d|j t  ||| qPqFd S )N)content	collapsedr>   c              
      s     dt    dt  t| D ]\}\}}|dkrF  dt    d| t  |D ]j}|d spqb  d|d   |d r  d	|d     d
|d |d f t  qbq$  dt  d S )Nz\begin{sphinxtheindex}z*\let\bigletter\sphinxstyleindexlettergroupr   z\indexspacez\bigletter{%s}   z%\item\relax\sphinxstyleindexentry{%s}   z\sphinxstyleindexextra{%s}z\sphinxstyleindexpageref{%s:%s}rH   z\end{sphinxtheindex})r   r{   	enumerater   r   r   )r   r   iZletterentriesentryretrC   r+   r,   generate  s(    
z2LaTeXTranslator.generate_indices.<locals>.generatez%s-%sz\renewcommand{\indexname}{%s}r9   )r   r
   r   r   r   r   Zlatex_domain_indicesr=   envZdomainsvaluesr   name
isinstancelistr  Zdocnamesr   Z	localnamer{   rz   )rC   r  Zindices_configdomainZindexclsZ	indexnamer   r   r+   r  r,   r     s$    (

z LaTeXTranslator.generate_indices)template_name	variablesr>   c                 C   sT   t | jjd}| jjD ]0}t| jj||}t|r|	||  S q|	||S )Nr   )
r    r   r   Ztemplates_pathr   rz   r=   Zconfdirexistsr   )rC   r  r  ZrendererZtemplate_dirtemplater+   r+   r,   r     s    
zLaTeXTranslator.renderc                 C   s   | j r| j d S dS dS )zGet current table.r   N)r   rm   r+   r+   r,   r   #  s    
zLaTeXTranslator.tablerV   c                 C   st   | j |dd | jdkr&d| _n$| jdkrJ| jtd t  d| _d|v rd| j| d | jd | _d S )Ndocnamer9   r~   r   z	\appendixr   z:doc)	r   r   r\   r   r[   r{   r   r   sectionlevelrj   r+   r+   r,   visit_document+  s    

zLaTeXTranslator.visit_documentc                 C   s   d S r?   r+   rj   r+   r+   r,   depart_document9  s    zLaTeXTranslator.depart_documentc                 C   s   | j |d  d S )Nr  )r   r   rj   r+   r+   r,   visit_start_of_file<  s    z#LaTeXTranslator.visit_start_of_filec                 C   s   | j   d S r?   )r   r   rj   r+   r+   r,   depart_start_of_file?  s    z$LaTeXTranslator.depart_start_of_filec                 C   s$   | j s|  jd7  _| jt d S Nr~   )r   r  r[   r   	BLANKLINErj   r+   r+   r,   visit_sectionB  s    zLaTeXTranslator.visit_sectionc                 C   s   t | jd | jd | _d S r  )r   r  r   rj   r+   r+   r,   depart_sectionG  s    
zLaTeXTranslator.depart_sectionc                 C   s   | j d d S )Nz{\color{red}\bfseries{}r[   r   rj   r+   r+   r,   visit_problematicK  s    z!LaTeXTranslator.visit_problematicc                 C   s   | j d d S Nrx   r  rj   r+   r+   r,   depart_problematicN  s    z"LaTeXTranslator.depart_problematicc                 C   s   d| _ | jtd t  d S )Nr~   z\begin{sphinxShadowBox}r   r[   r   r{   rj   r+   r+   r,   visit_topicQ  s    zLaTeXTranslator.visit_topicc                 C   s   d| _ | jdt  d S )Nr   z\end{sphinxShadowBox}r   rj   r+   r+   r,   depart_topicU  s    zLaTeXTranslator.depart_topicc                 C   s   d S r?   r+   rj   r+   r+   r,   visit_glossary[  s    zLaTeXTranslator.visit_glossaryc                 C   s   d S r?   r+   rj   r+   r+   r,   depart_glossary^  s    zLaTeXTranslator.depart_glossaryc                 C   s&   | j t | j dt  d| _d S )Nz\begin{productionlist}r~   )r[   r   r  r{   r   rj   r+   r+   r,   visit_productionlista  s    z$LaTeXTranslator.visit_productionlistc                 C   s   | j dt  d| _d S )Nz\end{productionlist}r   )r[   r   r  r   rj   r+   r+   r,   depart_productionlistf  s    z%LaTeXTranslator.depart_productionlistc                 C   sN   |d r>|d }| j | d|  | j d| |  n| j d d S )NZ	tokennamezgrammar-token-z\production{%s}{z\productioncont{)r[   r   r   r   )rC   rW   tnr+   r+   r,   visit_productionj  s
    z LaTeXTranslator.visit_productionc                 C   s   | j dt  d S r  r[   r   r{   rj   r+   r+   r,   depart_productionr  s    z!LaTeXTranslator.depart_productionc                 C   s   | j | jd  d S )NZ
transition)r[   r   r   rj   r+   r+   r,   visit_transitionu  s    z LaTeXTranslator.visit_transitionc                 C   s   d S r?   r+   rj   r+   r+   r,   depart_transitionx  s    z!LaTeXTranslator.depart_transitionc                 C   s  |j }t|tjrtjnt|tjr,| jrt|j	dkrbt|j	d tj
sbtjtd|d | jd s| | | jd< d| _tjnd}t|tjrd| dt|  }z | jd	| j| j |f  W n. ty   | jd	| jd
 |f  Y n0 | jdt | |j   nt|tjrX| jd | jdt  nt|tj r| jd | jdt  ntt|tj!r| jd | jdt  nHt|tj"r| #g  n.tjtd|d | jd | jdt  d| _$d S )Nr~   r   z(document title is not a single Text nodelocationtitler9   [%s] z\%s%s{r   rx   z\sphinxstyletopictitle{z\sphinxstylesidebartitle{{zJencountered title node not in section, topic, table, admonition or sidebarz\sphinxstyleothertitle{)%parentr  r   seealsor   SkipNoder(   r   r   childrenr   r   r   r   r   r   rP   anyfindallimagerz   r   splitr[   r   r   r  r   r   r{   r   ZtopicsidebarZ
Admonitionr   r   r   )rC   rW   r3  Zshortr+   r+   r,   visit_title{  sP    


  
zLaTeXTranslator.visit_titlec                 C   s8   d| _ t|jtjr"|  | j_n| j| j	
  d S Nr   )r   r  r3  r   r   r   rc   r[   r   r   r   rj   r+   r+   r,   depart_title  s    zLaTeXTranslator.depart_titlec                 C   s<   t |jtjr,| jd | jdt  n| jd d S )Nz\sphinxstylesidebarsubtitle{rx   r9   )r  r3  r   r;  r[   r   r   r{   rj   r+   r+   r,   visit_subtitle  s    zLaTeXTranslator.visit_subtitlec                 C   s   | j | j  d S r?   r[   r   r   r   rj   r+   r+   r,   depart_subtitle  s    zLaTeXTranslator.depart_subtitlec                 C   sX   | j jdkr*| jt | jdt  n| jt | jdt  | jrTd| j_d S )Nfootnotez&\begin{savenotes}\begin{fulllineitems}z\begin{fulllineitems}T)r   latex_show_urlsr[   r   r  r{   r   r`   rj   r+   r+   r,   
visit_desc  s    zLaTeXTranslator.visit_descc                 C   s:   | j jdkr"| jtd t  n| jtd t  d S )NrB  z"\end{fulllineitems}\end{savenotes}z\end{fulllineitems})r   rC  r[   r   r{   r  rj   r+   r+   r,   depart_desc  s    zLaTeXTranslator.depart_descc                 C   s6   |D ] }t |tjr| jd  q2q| jd d S )Nz\pysiglinewithargsret{z\pysigline{)r  r   Zdesc_parameterlistr[   r   )rC   rW   childr+   r+   r,   _visit_signature_line  s
    z%LaTeXTranslator._visit_signature_linec                 C   s   | j d d S r  r  rj   r+   r+   r,   _depart_signature_line  s    z&LaTeXTranslator._depart_signature_linec                 C   st   |j d dkr*|d r*| |d d }nd}| j| |dsP| | n | jdt  | jdt  d S )	NZobjtypeZdescriber   r   r9   is_multiliner   z\pysigstartmultiline)r3  r   r[   r   r\   rG  r{   )rC   rW   Zhyperr+   r+   r,   visit_desc_signature  s    
z$LaTeXTranslator.visit_desc_signaturec                 C   s6   | ds| | n| jdt  | jd d S )NrI  r   z\pysigstopmultiline)r\   rH  r[   r   r{   rj   r+   r+   r,   depart_desc_signature  s    
z%LaTeXTranslator.depart_desc_signaturec                 C   s   |  | d S r?   )rG  rj   r+   r+   r,   visit_desc_signature_line  s    z)LaTeXTranslator.visit_desc_signature_linec                 C   s   |  | d S r?   )rH  rj   r+   r+   r,   depart_desc_signature_line  s    z*LaTeXTranslator.depart_desc_signature_linec                 C   s   d S r?   r+   rj   r+   r+   r,   visit_desc_content  s    z"LaTeXTranslator.visit_desc_contentc                 C   s   d S r?   r+   rj   r+   r+   r,   depart_desc_content  s    z#LaTeXTranslator.depart_desc_contentc                 C   s   | j d d S )N\sphinxcode{\sphinxupquote{r  rj   r+   r+   r,   visit_desc_inline  s    z!LaTeXTranslator.visit_desc_inlinec                 C   s   | j d d S N}}r  rj   r+   r+   r,   depart_desc_inline   s    z"LaTeXTranslator.depart_desc_inlinec                 C   s   | j d |  jd7  _d S )N\sphinxbfcode{\sphinxupquote{r~   r[   r   r   rj   r+   r+   r,   visit_desc_name  s    zLaTeXTranslator.visit_desc_namec                 C   s   | j d |  jd8  _d S NrS  r~   rV  rj   r+   r+   r,   depart_desc_name
  s    z LaTeXTranslator.depart_desc_namec                 C   s   | j d |  jd7  _d S )NrP  r~   rV  rj   r+   r+   r,   visit_desc_addname  s    z"LaTeXTranslator.visit_desc_addnamec                 C   s   | j d |  jd8  _d S rX  rV  rj   r+   r+   r,   depart_desc_addname  s    z#LaTeXTranslator.depart_desc_addnamec                 C   s   d S r?   r+   rj   r+   r+   r,   visit_desc_type  s    zLaTeXTranslator.visit_desc_typec                 C   s   d S r?   r+   rj   r+   r+   r,   depart_desc_type  s    z LaTeXTranslator.depart_desc_typec                 C   s   | j d d S )Nz{ $\rightarrow$ r  rj   r+   r+   r,   visit_desc_returns  s    z"LaTeXTranslator.visit_desc_returnsc                 C   s   | j d d S r  r  rj   r+   r+   r,   depart_desc_returns  s    z#LaTeXTranslator.depart_desc_returnsc                 C   s   | j d d| _d S )N}{r~   )r[   r   r   rj   r+   r+   r,   visit_desc_parameterlist"  s    z(LaTeXTranslator.visit_desc_parameterlistc                 C   s   | j d d S )Nr`  r  rj   r+   r+   r,   depart_desc_parameterlist'  s    z)LaTeXTranslator.depart_desc_parameterlistc                 C   s4   | j s| jd nd| _ |ds0| jd d S )N, r   noemph\emph{)r   r[   r   hasattrrj   r+   r+   r,   visit_desc_parameter+  s
    
z$LaTeXTranslator.visit_desc_parameterc                 C   s   | ds| jd d S )Nrd  rx   )rf  r[   r   rj   r+   r+   r,   depart_desc_parameter3  s    
z%LaTeXTranslator.depart_desc_parameterc                 C   s   | j d d S )Nz\sphinxoptional{r  rj   r+   r+   r,   visit_desc_optional7  s    z#LaTeXTranslator.visit_desc_optionalc                 C   s   | j d d S r  r  rj   r+   r+   r,   depart_desc_optional:  s    z$LaTeXTranslator.depart_desc_optionalc                 C   s   | j d d S )NrU  r  rj   r+   r+   r,   visit_desc_annotation=  s    z%LaTeXTranslator.visit_desc_annotationc                 C   s   | j d d S rR  r  rj   r+   r+   r,   depart_desc_annotation@  s    z&LaTeXTranslator.depart_desc_annotationc                 C   s8   | j t | j dtd  t  | j dt  d S )Nz\sphinxstrong{%s:}r4  z\nopagebreak)r[   r   r  r   r{   rj   r+   r+   r,   visit_seealsoE  s    zLaTeXTranslator.visit_seealsoc                 C   s   | j t d S r?   )r[   r   r  rj   r+   r+   r,   depart_seealsoJ  s    zLaTeXTranslator.depart_seealsoc                 C   sL   t |dkr&| dtdfv r&tj| jd | jdt  d| _	d S )Nr~   Z	Footnotesz\subsubsection*{rx   )
r   rP   r   r   r5  r[   r   r   r{   r   rj   r+   r+   r,   visit_rubricM  s
     zLaTeXTranslator.visit_rubricc                 C   s   d| _ | j| j  d S r=  )r   r[   r   r   r   rj   r+   r+   r,   depart_rubricT  s    zLaTeXTranslator.depart_rubricc                 C   s   |  j d7  _ ttj|d }d|vr2| jd | jrN| jd|   n$| jdt  | jd|   d|vr| jd|  t  | jdt  d S )	Nr~   r   autoz\sphinxstepexplicit z\begin{footnote}[%s]r   z+\phantomsection\label{\thesphinxscope.%s}%%\sphinxAtStartFootnote)	r   r   r   labelr[   r   r   rP   r{   rC   rW   rs  r+   r+   r,   visit_footnoteX  s    zLaTeXTranslator.visit_footnotec                 C   sB   | j r| jd n| jdt  | jd |  jd8  _d S )Nz\end{footnote}r   r~   )r   r[   r   r{   r   rj   r+   r+   r,   depart_footnoteg  s
    zLaTeXTranslator.depart_footnotec                 C   s
   t jd S r?   r   r5  rj   r+   r+   r,   visit_labelo  s    zLaTeXTranslator.visit_labelc                 C   s   |d | _ tjd S )Nspec)r   r   r5  rj   r+   r+   r,   visit_tabular_col_specr  s    
z&LaTeXTranslator.visit_tabular_col_specc                 C   s   t | jdkrD| j dkr:td| jd |jp0df qnd| j_n*t | jdkrntd| jd |jpfdf | jt	| | j
rd	| j
 t | j_d
|dg v rtjtd|d d | _
d S )Nr~   rl   z2%s:%s: longtable does not support nesting a table.r   r9   TrH   z0%s:%s: deeply nested tables are not implemented.z{%s}rp   rY   zGboth tabularcolumns and :widths: option are given. :widths: is ignored.r-  )r   r   r   rq   r6   r   liner`   r   rU   r   r{   r^   r\   r   infor   rj   r+   r+   r,   visit_tablev  s,    

zLaTeXTranslator.visit_tablec                 C   s`   |  |}| j }| |d t| j|d}| jt | j| | jt | j	
  d S )Nz.tex_t)r   r   )r   r   rq   r   dictr[   r   r  r{   r   r   )rC   rW   r   Z
table_typer   r+   r+   r,   depart_table  s    


zLaTeXTranslator.depart_tablec                 C   sL   | j  jd7  _d|v r*| j j|d  d|v rH| j j| j jd  d S )Nr~   ZcolwidthZstub)r   r]   r_   r   rd   rj   r+   r+   r,   visit_colspec  s
    zLaTeXTranslator.visit_colspecc                 C   s   d S r?   r+   rj   r+   r+   r,   depart_colspec  s    zLaTeXTranslator.depart_colspecc                 C   s   d S r?   r+   rj   r+   r+   r,   visit_tgroup  s    zLaTeXTranslator.visit_tgroupc                 C   s   d S r?   r+   rj   r+   r+   r,   depart_tgroup  s    zLaTeXTranslator.depart_tgroupc                 C   s   |  | jj d S r?   )r   r   rZ   rj   r+   r+   r,   visit_thead  s    zLaTeXTranslator.visit_theadc                 C   s   |    d S r?   r   rj   r+   r+   r,   depart_thead  s    zLaTeXTranslator.depart_theadc                 C   s   |  | jj d S r?   )r   r   r[   rj   r+   r+   r,   visit_tbody  s    zLaTeXTranslator.visit_tbodyc                 C   s   |    d S r?   r  rj   r+   r+   r,   depart_tbody  s    zLaTeXTranslator.depart_tbodyc                 C   s   d| j _| j | j j| j j}|d u r*qq| j  j|j7  _|jrN| jd |jdkrl| jd|j  q| jd|j|jf  qd S )Nr   &r~   \sphinxtablestrut{%d}z,\multicolumn{%d}{|l|}{\sphinxtablestrut{%d}})r   re   r   rf   rs   r[   r   ri   )rC   rW   r   r+   r+   r,   	visit_row  s    

zLaTeXTranslator.visit_rowc                    s    j dt   fddt jjD } fdd|D }t|rR j d nhd}|dg |t|k r|| du r||d  	d} j d	|d
 || f  ||7 }|d
7 }qb j j
d
7  _
d S )Nz\\c                    s   g | ]} j  j j|qS r+   )r   r   rf   )rr   r  rm   r+   r,   rv     r.   z.LaTeXTranslator.depart_row.<locals>.<listcomp>c                    s$   g | ]}|j |j  jj d  kqS )r~   )rf   r}   r   )rr   r   rm   r+   r,   rv     r.   z\hliner   FTz\cline{%d-%d}r~   )r[   r   r{   r   r   r]   allextendr   r   rf   )rC   rW   rh   Z
underlinedr  r   r+   rm   r,   
depart_row  s    
zLaTeXTranslator.depart_rowc                 C   s  | j jdkr| jd | j |ddd |ddd  | j  }d}|jdkr| jj	r| j jdkr| jd|j t
  n| jd|j t
  d	t
 }n| jd
|j t
  dt
 }|jdkr| jd|j|jf t
  d	t
 | }|jdks
|jdkrB| jd|j| j jf t
  dt
 d t
 | }d| _tt|tjdkrdd| j _t|jjtjs|j| j jv rt|dkrt|d tjr| dkrn| jd | jr| g  | j| d S )Nr   r  Zmorerowsr~   Zmorecolsr9   z\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}%rH   Tz\sphinxstyletheadfamily )r   re   r[   r   r   r\   r   rs   r   Zlatex_use_latex_multicolumnr{   r}   ri   r]   r   r   r  r8  r   r)   ra   r  r3  Ztheadrd   rP   r   r   )rC   rW   r   r   r+   r+   r,   visit_entry  sJ    &




".
zLaTeXTranslator.visit_entryc                 C   s   | j r<d| _ |  }|r0|d tkr0|d q| j| | j| j  | j	 }| j j
|j7  _
| j	 }|d u rqqj| j j
|j7  _
| jd |jdkr| jd|j  qj| jd|j|jf  qjd S )Nr   r  r~   r  z+\multicolumn{%d}{l|}{\sphinxtablestrut{%d}})r   r   r{   r   r[   r  r   r   r   r   re   rs   ri   )rC   rW   r[   r   Znextcellr+   r+   r,   depart_entry  s&    



zLaTeXTranslator.depart_entryc                 C   sb   t tj|d }t ttj |}| jt | jddd |D d  | jt tj	d S )Nr   rc  c                 s   s   | ]}|  V  qd S r?   rP   )rr   nr+   r+   r,   r   %  r.   z-LaTeXTranslator.visit_acks.<locals>.<genexpr>.)
r   r   bullet_listr   Z	list_itemr[   r   r  rz   r5  )rC   rW   r  Z
list_itemsr+   r+   r,   
visit_acks  s     zLaTeXTranslator.visit_acksc                 C   s(   | j s| jdt  | jr$d| j_d S )Nz\begin{itemize}Tr   r[   r   r{   r   r`   rj   r+   r+   r,   visit_bullet_list)  s    z!LaTeXTranslator.visit_bullet_listc                 C   s   | j s| jdt  d S )Nz\end{itemize}r   r[   r   r{   rj   r+   r+   r,   depart_bullet_list/  s    z"LaTeXTranslator.depart_bullet_listc                    s   t tddd}t td fdd dt |  }dt |d   }t||}|dd	}|d
d}| jdt	  | jd|||||f t	  d|v r| jd||d d f t	  | j
rd| j
_d S )NrV   c                 S   s4   |  dd}d|v r0d|  ddt|  k r0d}|S )Nenumtyper/   Zalpha   startr   )r\   r   )rW   r  r+   r+   r,   get_enumtype4  s     z;LaTeXTranslator.visit_enumerated_list.<locals>.get_enumtypec                    s4   | d u rdS t | tjr& | jd S  | jS d S r   )r  r   enumerated_listr3  )rW   get_nested_levelr+   r,   r  <  s
    z?LaTeXTranslator.visit_enumerated_list.<locals>.get_nested_levelzenum%sr~   r   r9   r   r  z\begin{enumerate}z*\sphinxsetlistlabels{%s}{%s}{%s}{%s}{%s}%%r  z\setcounter{%s}{%d}T)r   r   rg   r"   lowerENUMERATE_LIST_STYLEr\   r[   r   r{   r   r`   )rC   rW   r  enumZenumnextstyler   r   r+   r  r,   visit_enumerated_list3  s"     z%LaTeXTranslator.visit_enumerated_listc                 C   s   | j dt  d S )Nz\end{enumerate}r)  rj   r+   r+   r,   depart_enumerated_listR  s    z&LaTeXTranslator.depart_enumerated_listc                 C   s   | j d d S )Nz	\item {} r  rj   r+   r+   r,   visit_list_itemU  s    zLaTeXTranslator.visit_list_itemc                 C   s   | j t d S r?   r)  rj   r+   r+   r,   depart_list_itemZ  s    z LaTeXTranslator.depart_list_itemc                 C   s"   | j dt  | jrd| j_d S )Nz\begin{description}Tr[   r   r{   r   r`   rj   r+   r+   r,   visit_definition_list]  s    z%LaTeXTranslator.visit_definition_listc                 C   s   | j dt  d S )Nz\end{description}r)  rj   r+   r+   r,   depart_definition_listb  s    z&LaTeXTranslator.depart_definition_listc                 C   s   d S r?   r+   rj   r+   r+   r,   visit_definition_list_iteme  s    z*LaTeXTranslator.visit_definition_list_itemc                 C   s   d S r?   r+   rj   r+   r+   r,   depart_definition_list_itemh  s    z+LaTeXTranslator.depart_definition_list_itemc                 C   sd   |  j d7  _ d}|dr@d}|d D ]}|| j|dd7 }q(|d7 }| jd | j| d S )	Nr~   r9   r   r   Fr   z}] \leavevmodez\item[{)r   r\   r   r[   r   r   )rC   rW   ctxr   r+   r+   r,   
visit_termk  s    
zLaTeXTranslator.visit_termc                 C   s$   | j | j  |  jd8  _d S r  )r[   r   r   r   r   rj   r+   r+   r,   depart_termv  s    zLaTeXTranslator.depart_termc                 C   s   | j d d S )Nz{[}r  rj   r+   r+   r,   visit_classifierz  s    z LaTeXTranslator.visit_classifierc                 C   s   | j d d S )Nz{]}r  rj   r+   r+   r,   depart_classifier}  s    z!LaTeXTranslator.depart_classifierc                 C   s   d S r?   r+   rj   r+   r+   r,   visit_definition  s    z LaTeXTranslator.visit_definitionc                 C   s   | j t d S r?   r)  rj   r+   r+   r,   depart_definition  s    z!LaTeXTranslator.depart_definitionc                 C   s"   | j dt  | jrd| j_d S )Nz \begin{quote}\begin{description}Tr  rj   r+   r+   r,   visit_field_list  s    z LaTeXTranslator.visit_field_listc                 C   s   | j dt  d S )Nz\end{description}\end{quote}r)  rj   r+   r+   r,   depart_field_list  s    z!LaTeXTranslator.depart_field_listc                 C   s   d S r?   r+   rj   r+   r+   r,   visit_field  s    zLaTeXTranslator.visit_fieldc                 C   s   d S r?   r+   rj   r+   r+   r,   depart_field  s    zLaTeXTranslator.depart_fieldc                 C   s   |j |}|dkr`t|j tjr`t|j |d  tjs`t|j |d  tjs`| jdt  n0|dkr|t|j tj	t
fr|n| jtdt g d S )Nr   r~   	\noindentz\sphinxAtStartPar)r3  r   r  r   Zcompoundr)   r[   r   r{   rB  footnotetextr  )rC   rW   r   r+   r+   r,   visit_paragraph  s    zLaTeXTranslator.visit_paragraphc                 C   s   | j t d S r?   r)  rj   r+   r+   r,   depart_paragraph  s    z LaTeXTranslator.depart_paragraphc                 C   s"   | j td  | jrd| j_d S )N\begin{center}Tr  rj   r+   r+   r,   visit_centered  s    zLaTeXTranslator.visit_centeredc                 C   s   | j td  d S )N\end{center}r)  rj   r+   r+   r,   depart_centered  s    zLaTeXTranslator.depart_centeredc                 C   sj   |  j d7  _ |d }| j dkr0| jdt  | jd| d t  | jdt  | jrfd| j_d S )Nr~   ncolumnsz\setlength{\multicolsep}{0pt}z\begin{multicols}{z}\raggedrightzA\begin{itemize}\setlength{\itemsep}{0pt}\setlength{\parskip}{0pt}Tr  )rC   rW   r  r+   r+   r,   visit_hlist  s    
zLaTeXTranslator.visit_hlistc                 C   s"   |  j d8  _ | jdt  d S )Nr~   z*\end{itemize}\raggedcolumns\end{multicols}r  rj   r+   r+   r,   depart_hlist  s    zLaTeXTranslator.depart_hlistc                 C   s   d S r?   r+   rj   r+   r+   r,   visit_hlistcol  s    zLaTeXTranslator.visit_hlistcolc                 C   s   d S r?   r+   rj   r+   r+   r,   depart_hlistcol  s    zLaTeXTranslator.depart_hlistcolr   r   c                 C   s6   zt ||W S  ty0   ttd| Y d S 0 d S )Nz&dimension unit %s is invalid. Ignored.)r   r   r   r   r   )rC   r   r   r+   r+   r,   latex_image_length  s
    z"LaTeXTranslator.latex_image_lengthc                 C   s   t |jtjS )z2Check whether a node represents an inline element.)r  r3  r   ZTextElementrj   r+   r+   r,   	is_inline  s    zLaTeXTranslator.is_inlinec                 C   sd  g }g }g }t |jtj}|r,| |j}n
| |}d|v r|d|v r\| |d |d }n| |d }|r||d|  d|v rd|v r| |d |d }n| |d }|r|d|  d|v r|s|dt|d d   d|v rRd	d
ddddd}	z8||	||d f d  ||	||d f d  W n tyP   Y n0 | j	rn|d |d |s|s|t
d  |t
 |  |d | jjv r| jj|d  }
n| jrd S |d }
|
ddkrd S | j| d}|r
dd| }t|
\}}| jr>|r>| jd|||f  n| jd|||f  | j| d S )Nrs   r   zwidth=%sr}   z	height=%szscale=%sr   rX   )r9   r9   )z\raisebox{-0.5\height}{rx   )z\raisebox{-\height}{rx   ){\hspace*{\fill}\hspace*{\fill}})r2  r  )r  rx   ))r~   top)r~   Zmiddle)r~   Zbottom)r   center)r   left)r   rightr   r~   z!{\sphinxunactivateextrasandspace rx   r  uriz://r   r9   r0  r   z,\lowercase{\sphinxincludegraphics%s}{{%s}%s}z \sphinxincludegraphics%s{{%s}%s})r  r3  r   	referencer  r  r   r   KeyErrorr   r{   reverser=   Zimagesignore_missing_imagesfindr[   r  rz   r   splitextr   )rC   rW   ZpreZpostZinclude_graphics_optionsZhas_hyperlinkr  whZalign_prepostr  optionsbaseextr+   r+   r,   visit_image  s    




zLaTeXTranslator.visit_imagec                 C   s   d S r?   r+   rj   r+   r+   r,   depart_image*  s    zLaTeXTranslator.depart_imagec                 C   s  | j d }| jrd}| jrd|v rZ| |d }|rz| jd| t  | jdt  n | jdt  | jdt  tdd |D r| jd	 | jd
t  n@|	dddv rfd }d|v r| |d }n2t
|d tjrd|d v r| |d d }| jt | jd|d dkr2dnd|p<df t  | jd | jdt  n| jr| jtd  | jdt  n\| jtd|  t  | jdt  tdd |D r| jd	t  | jdt  d S )NZfigure_alignHrs   z!\begin{sphinxfigure-in-table}[%s]z
\centeringz\begin{sphinxfigure-in-table}c                 s   s   | ]}t |tjV  qd S r?   r  r   rc   rr   rF  r+   r+   r,   r   ;  r.   z/LaTeXTranslator.visit_figure.<locals>.<genexpr>z	\capstartz!\end{sphinxfigure-in-table}\relaxrX   r9   )r  r  r   z\begin{wrapfigure}{%s}{%s}r  rlZ0ptz\end{wrapfigure}r  r  z\begin{figure}[%s]c                 s   s   | ]}t |tjV  qd S r?   r  r  r+   r+   r,   r   P  r.   z\end{figure})r   r   r   r  r[   r   r{   r7  r   r\   r  r   r9  r  r   )rC   rW   rX   lengthr+   r+   r,   visit_figure-  sH    
 zLaTeXTranslator.visit_figurec                 C   s   | j | j  d S r?   r@  rj   r+   r+   r,   depart_figureT  s    zLaTeXTranslator.depart_figurec                 C   sz   |  j d7  _ t|jtr(| jd nN| jrJt|jtjrJ| jd n,| j	rj|jj
dkrj| jd n| jd d S )Nr~   z\sphinxSetupCaptionForVerbatim{z\captionof{figure}{figurez\sphinxfigcaption{z	\caption{)r   r  r3  captioned_literal_blockr[   r   r   r   r  r   tagnamerj   r+   r+   r,   visit_captionW  s    zLaTeXTranslator.visit_captionc                 C   sD   | j d t|jtjr2| |j}| j | |  jd8  _d S )Nrx   r~   )r[   r   r  r3  r   r  r   r   )rC   rW   r   r+   r+   r,   depart_captionb  s
    zLaTeXTranslator.depart_captionc                 C   s   | j td  d S )Nz\begin{sphinxlegend}r)  rj   r+   r+   r,   visit_legendi  s    zLaTeXTranslator.visit_legendc                 C   s   | j dt  d S )Nz\end{sphinxlegend}r)  rj   r+   r+   r,   depart_legendl  s    zLaTeXTranslator.depart_legendc                 C   s"   | j td  |  jd7  _d S )Nz\begin{sphinxadmonition}{note}r~   r[   r   r{   r   rj   r+   r+   r,   visit_admonitiono  s    z LaTeXTranslator.visit_admonitionc                 C   s"   | j dt  |  jd8  _d S Nz\end{sphinxadmonition}r~   r  rj   r+   r+   r,   depart_admonitions  s    z!LaTeXTranslator.depart_admonitionc                 C   s6   t |j }| jtd|j|f   |  jd7  _d S )Nz!\begin{sphinxadmonition}{%s}{%s:}r~   )r   r  r[   r   r{   r   rt  r+   r+   r,   _visit_named_admonitionw  s
    

z'LaTeXTranslator._visit_named_admonitionc                 C   s"   | j dt  |  jd8  _d S r  r  rj   r+   r+   r,   _depart_named_admonition}  s    z(LaTeXTranslator._depart_named_admonitionc                 C   s   d S r?   r+   rj   r+   r+   r,   visit_versionmodified  s    z%LaTeXTranslator.visit_versionmodifiedc                 C   s   d S r?   r+   rj   r+   r+   r,   depart_versionmodified  s    z&LaTeXTranslator.depart_versionmodifiedc                    s   t d d fdd} }t|tjr4|jdd}qttjj	d}t|t
rVd S ||rn||rnd S d v rzd S d v rd S  d	rt }t|tjr d	 |d	 krn| d	   d
 D ]}|| qd S )Nr   c                    st   |  drd S |  drd S  j }|dkrRt j|d  tjrRjt j	 }jj
| |d d S )Nzindex-z	equation-r   r~   r   )
startswithr3  r   r  r   r)   r[   r   r{   r   r   )r   r   r   rW   rC   r+   r,   
add_target  s    

z0LaTeXTranslator.visit_target.<locals>.add_targetT)ZascendZstdrefuriZ	anonymousrefidr   )r   r  r   target	next_noder   r   r=   r  Z
get_domainHYPERLINK_SUPPORT_NODESZget_enumerable_node_typeZget_numfig_titler\   r   r  )rC   rW   r  r  r  Z	prev_noder   r+   r  r,   visit_target  s(    

zLaTeXTranslator.visit_targetc                 C   s   d S r?   r+   rj   r+   r+   r,   depart_target  s    zLaTeXTranslator.depart_targetc                 C   s$   | j td t  | j d d S )Nz\begin{flushright}z---r)  rj   r+   r+   r,   visit_attribution  s    z!LaTeXTranslator.visit_attributionc                 C   s   | j td t  d S )Nz\end{flushright}r)  rj   r+   r+   r,   depart_attribution  s    z"LaTeXTranslator.depart_attributionc                    s  t t dfdd t t ddd}|dds<jt |d	 }|D ]~\}}}}}d
}	|rdd}	z,|dkrzN fddtdd|D \}
}||
|| }}jd|
||||	f  W nF ty    tdd|d }||}jd|||	f  Y n0 n|dkrn fddtdd|D \}
}||
|| }}jd|
||||	|||
||	f
  n"|dkr fddtdd|D \}
}}||
||||  }}}jd|
||||||	||||
|||	|||
||||	f  n|dkr8 fddtdd|D \}
}||
}jd|
||f  nX|dkr fddtdd|D \}
}||
}jd|
||f  ntt	d | W qH ty } ztt | W Y d }~qHd }~0 0 qH|ddsjd! t
jd S )"N)valuer>   c                    sV     | } | dd} | dd} | dd} | dd} | d	d
} | dd} | S )Nz\{z\sphinxleftcurlybrace{}z\}z\sphinxrightcurlybrace{}"z""@z"@!z"!rw   z
\textbar{}r   r   )r  rm   r+   r,   r     s    
z+LaTeXTranslator.visit_index.<locals>.escape)stringr>   c                 S   s$   t | }|r|dS d|  S d S )Nz\\spxentry{\1}\\spxextra{\2}z\spxentry{%s})EXTRA_REr   expand)r  r   r+   r+   r,   r    s    

z*LaTeXTranslator.visit_index.<locals>.styleZinlineTr  r9   z	|spxpagemZsinglec                    s   g | ]} |qS r+   r+   rr   xr   r+   r,   rv     r.   z/LaTeXTranslator.visit_index.<locals>.<listcomp>rH   z\index{%s@%s!%s@%s%s}r~   r   z\index{%s@%s%s}Zpairc                    s   g | ]} |qS r+   r+   r  r	  r+   r,   rv     r.   z*\index{%s@%s!%s@%s%s}\index{%s@%s!%s@%s%s}Ztriplec                    s   g | ]} |qS r+   r+   r  r	  r+   r,   rv     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}Zseec                    s   g | ]} |qS r+   r+   r  r	  r+   r,   rv     r.   z\index{%s@%s|see{%s}}r4  c                    s   g | ]} |qS r+   r+   r  r	  r+   r,   rv   	  r.   z!unknown index entry type %s foundz\ignorespaces )r   r\   r[   r   r{   r   r   r   r   r   r   r5  )rC   rW   r  r  typer  Z_tidZismainZ_keymZp1Zp2ZP1ZP2pPZp3ZP3errr+   )r   rC   r,   visit_index  sd    

 


 

&zLaTeXTranslator.visit_indexc                 C   sZ   |  |s| jt d|dd v r:| j|  |  |sP| jt tjd S )Nr   formatr9   )	r  r[   r   r{   r\   r:  rP   r   r5  rj   r+   r+   r,   	visit_raw  s    

zLaTeXTranslator.visit_rawc                 C   s  | j s6|dD ]$}| j }|  j| j||d7  _q| |sL| jt |dd}|s|drd| jd  d |d  }| j s|s| j	d n|
dr| jd d	 |d
d   }| j| | | jd | jjr| js| j	d| |  n| j	d nh|
dr |d}|dkrJ|d
d  d }n|d
d  dd	}| j| | t|rt|d tjrd|d dg v r| j	d | jd nB| jd | jjr| js| j	d| |  n| j	d nt|d
kr^||d kr^|dr@| jd| |  n| jd| |  tjn"| jd| |  | j	d d S )Nr   r   r  r9   r  r   r   #r   r~   re  z}}} (%s)z}}}z::docr   zstd-termrY   z\sphinxtermref{z\sphinxcrossref{Z	nolinkurlz\sphinxnolinkurl{%s}z\sphinxurl{%s}z\sphinxhref{%s}{rx   )r   r\   r   r[   r   r  r   r{   r   r   r  r   r   Zlatex_show_pagerefsr   r   r  r   r   r  r   r   
encode_urir5  )rC   rW   r   r   r  Z	hashindexr+   r+   r,   visit_reference  sX    





zLaTeXTranslator.visit_referencec                 C   s,   | j | j  | |s(| j t d S r?   )r[   r   r   r   r  r{   rj   r+   r+   r,   depart_referenceU  s    
z LaTeXTranslator.depart_referencec                 C   s   | dr"| jd d |d  }n| dddd  dd}| | dd	d
d	}d|v shd|v r|dddd}t|jd| | d| | d}nt|d| |  }d| ||f }| j| t	j
d S )Nr  r   r   r  r9   r~   r  r/  z%sz\%sz\{name\}z
\{number\}z{name}z{number}z\nameref{%s}\ref{%s})r
  numberz\hyperref[%s]{%s})r\   r   r   r   r   r  r   r[   r   r   r5  )rC   rW   r   r/  r   Zhyperrefr+   r+   r,   visit_number_referenceZ  s    
z&LaTeXTranslator.visit_number_referencec                 C   s   d S r?   r+   rj   r+   r+   r,   visit_download_referencen  s    z(LaTeXTranslator.visit_download_referencec                 C   s   d S r?   r+   rj   r+   r+   r,   depart_download_referenceq  s    z)LaTeXTranslator.depart_download_referencec                 C   s   d S r?   r+   rj   r+   r+   r,   visit_pending_xreft  s    z"LaTeXTranslator.visit_pending_xrefc                 C   s   d S r?   r+   rj   r+   r+   r,   depart_pending_xrefw  s    z#LaTeXTranslator.depart_pending_xrefc                 C   s   | j d d S )Nz\sphinxstyleemphasis{r  rj   r+   r+   r,   visit_emphasisz  s    zLaTeXTranslator.visit_emphasisc                 C   s   | j d d S r  r  rj   r+   r+   r,   depart_emphasis}  s    zLaTeXTranslator.depart_emphasisc                 C   s   | j d d S )Nz+\sphinxstyleliteralemphasis{\sphinxupquote{r  rj   r+   r+   r,   visit_literal_emphasis  s    z&LaTeXTranslator.visit_literal_emphasisc                 C   s   | j d d S rR  r  rj   r+   r+   r,   depart_literal_emphasis  s    z'LaTeXTranslator.depart_literal_emphasisc                 C   s   | j d d S )Nz\sphinxstylestrong{r  rj   r+   r+   r,   visit_strong  s    zLaTeXTranslator.visit_strongc                 C   s   | j d d S r  r  rj   r+   r+   r,   depart_strong  s    zLaTeXTranslator.depart_strongc                 C   s   | j d d S )Nz)\sphinxstyleliteralstrong{\sphinxupquote{r  rj   r+   r+   r,   visit_literal_strong  s    z$LaTeXTranslator.visit_literal_strongc                 C   s   | j d d S rR  r  rj   r+   r+   r,   depart_literal_strong  s    z%LaTeXTranslator.depart_literal_strongc                 C   s`   |  }| jd |drP|| jvrP| jd| |d   | j| n| jd d S )Nz\sphinxstyleabbreviation{Zexplanationz} (%s)rx   )rP   r[   r   rf  r   r   r   add)rC   rW   Zabbrr+   r+   r,   visit_abbreviation  s    z"LaTeXTranslator.visit_abbreviationc                 C   s   | j | j  d S r?   r@  rj   r+   r+   r,   depart_abbreviation  s    z#LaTeXTranslator.depart_abbreviationc                 C   s
   |  |S r?   )r  rj   r+   r+   r,   visit_manpage  s    zLaTeXTranslator.visit_manpagec                 C   s
   |  |S r?   )r   rj   r+   r+   r,   depart_manpage  s    zLaTeXTranslator.depart_manpagec                 C   s   | j d d S )Nz\sphinxtitleref{r  rj   r+   r+   r,   visit_title_reference  s    z%LaTeXTranslator.visit_title_referencec                 C   s   | j d d S r  r  rj   r+   r+   r,   depart_title_reference  s    z&LaTeXTranslator.depart_title_referencec                 C   sn   t ttj |}dd |D }tdd |D td}t|tkrL|d t }| jt	d| 
|  t	  d S )Nc                 s   s   | ]}t tj|d  V  qdS )r   N)r   r   rs  )rr   citationr+   r+   r,   r     r.   z8LaTeXTranslator.visit_thebibliography.<locals>.<genexpr>c                 s   s   | ]}|  V  qd S r?   r  )rr   rs  r+   r+   r,   r     r.   )keyz!\begin{sphinxthebibliography}{%s})r   r   r   r,  r   r   MAX_CITATION_LABEL_LENGTHr[   r   r{   r   )rC   rW   Z	citationsr   Zlongest_labelr+   r+   r,   visit_thebibliography  s    
z%LaTeXTranslator.visit_thebibliographyc                 C   s   | j dt  d S )Nz\end{sphinxthebibliography}r)  rj   r+   r+   r,   depart_thebibliography  s    z&LaTeXTranslator.depart_thebibliographyc                 C   s@   t tj|d }| jd| | |d |d d f  d S )Nr   z\bibitem[%s]{%s:%s}r  r   )r   r   rs  r[   r   r   rP   rt  r+   r+   r,   visit_citation  s    zLaTeXTranslator.visit_citationc                 C   s   d S r?   r+   rj   r+   r+   r,   depart_citation  s    zLaTeXTranslator.depart_citationc                 C   s.   | j rn"| jd|d |d f  tjd S )Nz\sphinxcite{%s:%s}r  Zrefname)r   r[   r   r   r5  rj   r+   r+   r,   visit_citation_reference  s    z(LaTeXTranslator.visit_citation_referencec                 C   s   d S r?   r+   rj   r+   r+   r,   depart_citation_reference  s    z)LaTeXTranslator.depart_citation_referencec                 C   s>   | j r| jd n&d|d v r.| jd n| jd d S )Nz*\sphinxstyleliteralintitle{\sphinxupquote{ZkbdrY   z\sphinxkeyboard{\sphinxupquote{rP  )r   r[   r   rj   r+   r+   r,   visit_literal  s
    zLaTeXTranslator.visit_literalc                 C   s   | j d d S rR  r  rj   r+   r+   r,   depart_literal  s    zLaTeXTranslator.depart_literalc                 C   s
   t jd S r?   rw  rj   r+   r+   r,   visit_footnote_reference  s    z(LaTeXTranslator.visit_footnote_referencec                 C   s   | j d d S )Nz\sphinxfootnotemark[r  rj   r+   r+   r,   visit_footnotemark  s    z"LaTeXTranslator.visit_footnotemarkc                 C   s   | j d d S )N]r  rj   r+   r+   r,   depart_footnotemark  s    z#LaTeXTranslator.depart_footnotemarkc                 C   sT   t tj|d }| jdt  | jd| | f t  | jdt  d S )Nr   r   zC\begin{footnotetext}[%s]\phantomsection\label{\thesphinxscope.%s}%%rr  )r   r   rs  r[   r   r{   rP   rt  r+   r+   r,   visit_footnotetext  s    z"LaTeXTranslator.visit_footnotetextc                 C   s    | j dt  | j d d S )Nr   z \end{footnotetext}\ignorespaces r)  rj   r+   r+   r,   depart_footnotetext  s    z#LaTeXTranslator.depart_footnotetextc                 C   s   d S r?   r+   rj   r+   r+   r,   visit_captioned_literal_block  s    z-LaTeXTranslator.visit_captioned_literal_blockc                 C   s   d S r?   r+   rj   r+   r+   r,   depart_captioned_literal_block  s    z.LaTeXTranslator.depart_captioned_literal_blockc           	      C   s  |j | kr0|  jd7  _| jdt  n| |}t|jt	rV|| |j7 }|rx| j
sx| jtd | d  |dd}|dd}|d	i }|d
d|d
< | jj|i }| jj|j |f|||d|}| j
r| jtd  |dd}n2| jr(d| j_d| j_|dd}n|dd}| d d }| jr^| j
s^|d7 }n|d7 }t|dg dd }|r| jtd|   | jt| t  |r| jdt  tjd S )Nr~   z\begin{sphinxalltt}z\def\sphinxLiteralBlockLabel{rx   r   r:   linenosFhighlight_argsforce)optsr?  r.  z\sphinxSetupCodeBlockInFootnotez\begin{Verbatim}z\begin{sphinxVerbatim}Tz\begin{sphinxVerbatimintable}iz\end{sphinxVerbatimintable}z\end{sphinxVerbatim}Zhl_linesr   z\fvset{hllines={, %s,}}%%z\sphinxresetverbatimhllines)Z	rawsourcerP   r   r[   r   r{   r   r  r3  r  r   r\   r   Zhighlight_optionsr   Zhighlight_blockr   r   r`   rb   rstripr   r   r5  )	rC   rW   r   langr?  r@  rB  ZhlcodeZhllinesr+   r+   r,   visit_literal_block  s\    


z#LaTeXTranslator.visit_literal_blockc                 C   s&   | j td t  |  jd8  _d S )Nz\end{sphinxalltt}r~   )r[   r   r{   r   rj   r+   r+   r,   depart_literal_block%  s    z$LaTeXTranslator.depart_literal_blockc                 C   s   | j d d S )Nz\item[] r  rj   r+   r+   r,   
visit_line+  s    zLaTeXTranslator.visit_linec                 C   s   | j t d S r?   r)  rj   r+   r+   r,   depart_line.  s    zLaTeXTranslator.depart_linec                 C   sV   t |jtjr0| jdt  | jdt  n| jtd t  | jrRd| j_d S )Nz\item[]z'\begin{DUlineblock}{\DUlineblockindent}z\begin{DUlineblock}{0em}T)	r  r3  r   Z
line_blockr[   r   r{   r   r`   rj   r+   r+   r,   visit_line_block1  s    z LaTeXTranslator.visit_line_blockc                 C   s   | j dt  d S )Nz\end{DUlineblock}r)  rj   r+   r+   r,   depart_line_block:  s    z!LaTeXTranslator.depart_line_blockc                 C   sX   d}t |jdkr2|jd }t|tjtjfr2d}|sT| jdt  | j	rTd| j	_
d S )Nr   r~   z\begin{quote}T)r   r6  r  r   r  r  r[   r   r{   r   r`   rC   rW   ZdonerF  r+   r+   r,   visit_block_quote=  s    
z!LaTeXTranslator.visit_block_quotec                 C   sJ   d}t |jdkr2|jd }t|tjtjfr2d}|sF| jdt  d S )Nr   r~   z\end{quote})	r   r6  r  r   r  r  r[   r   r{   rK  r+   r+   r,   depart_block_quoteK  s    
z"LaTeXTranslator.depart_block_quotec                 C   s   | j d r| jd d S )Nr   rc  )r   r[   r   rj   r+   r+   r,   visit_optionV  s    
zLaTeXTranslator.visit_optionc                 C   s   | j d  d7  < d S )Nr   r~   )r   rj   r+   r+   r,   depart_option[  s    zLaTeXTranslator.depart_optionc                 C   s   | j |dd dS )z1The delimiter between an option and its argument.Z	delimiterr1  N)r[   r   r\   rj   r+   r+   r,   visit_option_argument_  s    z%LaTeXTranslator.visit_option_argumentc                 C   s   d S r?   r+   rj   r+   r+   r,   depart_option_argumentc  s    z&LaTeXTranslator.depart_option_argumentc                 C   s   | j d | jd d S )Nz\item [r   )r[   r   r   rj   r+   r+   r,   visit_option_groupf  s    z"LaTeXTranslator.visit_option_groupc                 C   s   | j   | jd d S )Nz] )r   r   r[   r   rj   r+   r+   r,   depart_option_groupk  s    
z#LaTeXTranslator.depart_option_groupc                 C   s"   | j dt  | jrd| j_d S )Nz\begin{optionlist}{3cm}Tr  rj   r+   r+   r,   visit_option_listo  s    z!LaTeXTranslator.visit_option_listc                 C   s   | j dt  d S )Nz\end{optionlist}r)  rj   r+   r+   r,   depart_option_listt  s    z"LaTeXTranslator.depart_option_listc                 C   s   d S r?   r+   rj   r+   r+   r,   visit_option_list_itemw  s    z&LaTeXTranslator.visit_option_list_itemc                 C   s   d S r?   r+   rj   r+   r+   r,   depart_option_list_itemz  s    z'LaTeXTranslator.depart_option_list_itemc                 C   s$   |  }| j| | tjd S r?   )rP   r[   r   r   r   r5  )rC   rW   Zostringr+   r+   r,   visit_option_string}  s    z#LaTeXTranslator.visit_option_stringc                 C   s   | j d d S )Nr1  r  rj   r+   r+   r,   visit_description  s    z!LaTeXTranslator.visit_descriptionc                 C   s   d S r?   r+   rj   r+   r+   r,   depart_description  s    z"LaTeXTranslator.depart_descriptionc                 C   s   | j d d S )Nz	$^{\text{r  rj   r+   r+   r,   visit_superscript  s    z!LaTeXTranslator.visit_superscriptc                 C   s   | j d d S Nz}}$r  rj   r+   r+   r,   depart_superscript  s    z"LaTeXTranslator.depart_superscriptc                 C   s   | j d d S )Nz	$_{\text{r  rj   r+   r+   r,   visit_subscript  s    zLaTeXTranslator.visit_subscriptc                 C   s   | j d d S r\  r  rj   r+   r+   r,   depart_subscript  s    z LaTeXTranslator.depart_subscriptc                 C   s   | dg }|dgfv r2| jd | jd n|dgfv rX| jd | jd n`|dgfv r~| jd | jd n:|r| js| jd	d
|  | jd n| jd d S )NrY   Zmenuselectionz\sphinxmenuselection{rx   Zguilabelz\sphinxguilabel{Zacceleratorz\sphinxaccelerator{z\DUrole{%s}{r   r9   )r\   r[   r   r   r   rz   )rC   rW   rY   r+   r+   r,   visit_inline  s    
zLaTeXTranslator.visit_inlinec                 C   s   | j | j  d S r?   r@  rj   r+   r+   r,   depart_inline  s    zLaTeXTranslator.depart_inlinec                 C   s   d S r?   r+   rj   r+   r+   r,   visit_generated  s    zLaTeXTranslator.visit_generatedc                 C   s   d S r?   r+   rj   r+   r+   r,   depart_generated  s    z LaTeXTranslator.depart_generatedc                 C   s   d S r?   r+   rj   r+   r+   r,   visit_compound  s    zLaTeXTranslator.visit_compoundc                 C   s   d S r?   r+   rj   r+   r+   r,   depart_compound  s    zLaTeXTranslator.depart_compoundc                 C   s*   | dg }|D ]}| jd|  qd S )NrY   z
\begin{sphinxuseclass}{%s}r\   r[   r   )rC   rW   rY   cr+   r+   r,   visit_container  s    zLaTeXTranslator.visit_containerc                 C   s&   | dg }|D ]}| jd qd S )NrY   z
\end{sphinxuseclass}rf  )rC   rW   rY   Z_cr+   r+   r,   depart_container  s    z LaTeXTranslator.depart_containerc                 C   s   d S r?   r+   rj   r+   r+   r,   visit_decoration  s    z LaTeXTranslator.visit_decorationc                 C   s   d S r?   r+   rj   r+   r+   r,   depart_decoration  s    z!LaTeXTranslator.depart_decorationc                 C   s
   t jd S r?   rw  rj   r+   r+   r,   visit_header  s    zLaTeXTranslator.visit_headerc                 C   s
   t jd S r?   rw  rj   r+   r+   r,   visit_footer  s    zLaTeXTranslator.visit_footerc                 C   s
   t jd S r?   rw  rj   r+   r+   r,   visit_docinfo  s    zLaTeXTranslator.visit_docinfor   c                 C   s,   |  |}| jr(|tdt dd}|S )Nz~\\r1  ~)r   r   r   r{   rC   r   r+   r+   r,   r     s    
zLaTeXTranslator.encodec                 C   s"   |  |ddddddS )Nz\textasciitilde{}ro  z\sphinxhyphen{}-z\textquotesingle{}'r  rp  r+   r+   r,   r    s
    zLaTeXTranslator.encode_uric                 C   s   |  | }| j| d S r?   )r   rP   r[   r   )rC   rW   r   r+   r+   r,   
visit_Text  s    zLaTeXTranslator.visit_Textc                 C   s   d S r?   r+   rj   r+   r+   r,   depart_Text  s    zLaTeXTranslator.depart_Textc                 C   s
   t jd S r?   rw  rj   r+   r+   r,   visit_comment  s    zLaTeXTranslator.visit_commentc                 C   s
   t jd S r?   rw  rj   r+   r+   r,   
visit_meta  s    zLaTeXTranslator.visit_metac                 C   s   d S r?   r+   rj   r+   r+   r,   visit_system_message  s    z$LaTeXTranslator.visit_system_messagec                 C   s   | j t d S r?   r)  rj   r+   r+   r,   depart_system_message  s    z%LaTeXTranslator.depart_system_messagec                 C   s:   | j r| jd|   n| jd|   tjd S )Nz\protect\(%s\protect\)z\(%s\))r   r[   r   rP   r   r5  rj   r+   r+   r,   
visit_math  s    zLaTeXTranslator.visit_mathc                 C   s   | dr d|d |d f }nd }| drT|rB| jd|  | j|  n(ddlm} | j|| || jj tj	d S )Nrs  equation:%s:%sr  Znowrapr   r   )wrap_displaymath)
r\   r[   r   rP   Zsphinx.util.mathr{  r   Zmath_number_allr   r5  )rC   rW   rs  r{  r+   r+   r,   visit_math_block  s    

z LaTeXTranslator.visit_math_blockc              
   C   s   d|d |d f }| j j}|rz d| }| j|j|d W q ty } z0tjtd||d | jd|  W Y d }~qd }~0 0 n| jd|  d S )	Nrz  r  r  r  )r  zInvalid math_eqref_format: %rr-  z
\eqref{%s})	r   Zmath_eqref_formatr[   r   r  r  r   r   r   )rC   rW   rs  Zeqref_formatrefexcr+   r+   r,   visit_math_reference  s    (z$LaTeXTranslator.visit_math_referencec                 C   s   d S r?   r+   rj   r+   r+   r,   depart_math_reference  s    z%LaTeXTranslator.depart_math_reference)N)TT)F)r   (  r2   r3   r4   r=   rS   r   r  r   r   rK   rA   r   r   r   r   r   rP   r   r   r   r   r   r   r   r   r   r   r   r   r   rU   r   r  r  r  r  r  r  r  r  r!  r"  Zvisit_sidebarZdepart_sidebarr#  r$  r%  r&  r(  r*  r+  r,  r<  r>  r?  rA  rD  rE  rG  rH  rJ  rK  rL  rM  rN  rO  rQ  rT  rW  rY  rZ  r[  r\  r]  r^  r_  ra  rb  rg  rh  ri  rj  rk  rl  rm  rn  ro  rp  ru  rv  rx  rz  r}  r  r  r  r  r  r  r  r  r  r  r  r  r  r  r  r  r  r  r  r  r  r  r  r  r  r  r  r  r  r  r  r  r  r  Zvisit_field_nameZdepart_field_nameZvisit_field_bodyZdepart_field_bodyr  r  r  r  r  r  r  r  rg   r  r  r  r  r  r  r  r  r  r  r  r  r  r  Zvisit_attentionZdepart_attentionZvisit_cautionZdepart_cautionZvisit_dangerZdepart_dangerZvisit_errorZdepart_errorZ
visit_hintZdepart_hintZvisit_importantZdepart_importantZ
visit_noteZdepart_noteZ	visit_tipZ
depart_tipZvisit_warningZdepart_warningr  r  r  r  r  r  r  r  r  r  r  r  r  r  r  r  r  r  r   r!  r"  r#  r$  r&  r'  r(  r)  r*  r+  r/  r0  r1  r2  r3  r4  r5  r6  r7  r8  r:  r;  r<  r=  r>  rE  rF  Zvisit_doctest_blockZdepart_doctest_blockrG  rH  rI  rJ  rL  rM  rN  rO  rP  rQ  rR  rS  rT  rU  rV  rW  rX  rY  rZ  r[  r]  r^  r_  r`  ra  rb  rc  rd  re  rh  ri  rj  rk  rl  rm  rn  r   r  r   rs  rt  ru  rv  rw  rx  ry  r|  r  r  rT   r+   r+   rD   r,   rO     s  
 
'
0

% 
O'.B	8
3		rO   )r  r  r  )r   )Ur5   r   rM   collectionsr   osr   typingr   r   r   r   r   r	   r
   r   Zdocutilsr   r   Zdocutils.nodesr   r   r   r   r   r   Zsphinx.deprecationr   Zsphinx.domainsr   Zsphinx.domains.stdr   Zsphinx.errorsr   Zsphinx.localer   r   r   Zsphinx.utilr   r   r   Zsphinx.util.docutilsr   Zsphinx.util.nodesr   r   Zsphinx.util.templater    Zsphinx.util.texescaper!   Zdocutils.utils.romanr"   ImportErrorZromanZsphinx.builders.latexr#   Zsphinx.builders.latex.themingr$   Z	getLoggerr2   r   r.  r   r  r{   r  compiler  rB  r1   r6   Writerr8   rU   r   r   r   rg   r   rO   Zsphinx.builders.latex.nodesr  r  r  r+   r+   r+   r,   <module>   s|   (
	
 c#              