B
    öÀ„\šŽ ã            .   @   s¸  d Z ddl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
 ddl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 ddlmZ ddl m!Z!m"Z" ddl#m$Z$ ddl%m&Z&m'Z' yddl(m)Z) W n" e*k
r   ddl+m)Z) Y nX e ,e-¡Z.dZ/dZ0dddddddgZ1edd„ ddd d!d"d#œƒZ2d$d%d&d'd(d(d(d(d(d)d(d*d(d(d+d,d-d(d.d(d/d0d1d(d(d(d(d(d(d(d(d2d(d3d(d4d5d(d6d7d8d(d(d(d(d9œ-Z3d:d;d<œd=d>d(d?d(d@dAdBœdCd>d(d?d(d@dAdBœdDd(dEd(dFdGœdHœZ4e 5dI¡Z6G dJdK„ dKe	j7ƒZ8G dLdM„ dMeƒZ9G dNdO„ dOe
j:ƒZ;G dPdQ„ dQeƒZ<G dRdS„ dSe=ƒZ>G dTdU„ dUe=ƒZ?dVdW„ Z@d_dYdZ„ZAG d[d\„ d\e	jBƒZCdd]lDmEZEmFZF dd^lGmHZHmIZImJZJ dS )`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-2019 by the Sphinx team, see AUTHORS.
    :license: BSD, see LICENSE for details.
é    N)Údefaultdict)Úpath)ÚnodesÚwriters)ÚBabel)Ú
itervaluesÚ	text_type)Úaddnodes)Úhighlighting)ÚRemovedInSphinx30Warning)ÚSphinxError)ÚadmonitionlabelsÚ_Ú__)Ú
split_intoÚlogging)Úformat_date)Úclean_astextÚget_prev_node)ÚLaTeXRenderer)Útex_escape_mapÚtex_replace_map)ÚtoRomanz‚
\ifdefined\shorthandoff
  \ifnum\catcode`\=\string=\active\shorthandoff{=}\fi
  \ifnum\catcode`\"=\active\shorthandoff{"}\fi
\fi
é   ÚpartÚchapterÚsectionZ
subsectionZsubsubsectionÚ	paragraphZsubparagraphc               C   s   dS )Nz\arabic© r   r   r   ú3lib/python3.7/site-packages/sphinx/writers/latex.pyÚ<lambda>;   s    r    z\arabicz\alphz\Alphz\romanz\Roman)ÚarabicZ
loweralphaZ
upperalphaZ
lowerromanZ
upperromanÚpdflatexZletterpaperZ10ptz.75bpÚ z\fvset{fontsize=\small}z\usepackage{geometry}z\usepackage{cmap}z\usepackage[T1]{fontenc}z$\usepackage{amsmath,amssymb,amstext}z\usepackage{babel}z\usepackage{times}z\usepackage[Bjarne]{fncychap}zã% Include hyperref last.
\usepackage{hyperref}
% Fix anchor placement for figures with captions.
\usepackage{hypcap}% it must be loaded after hyperref.
% Set up styles of URL: it should be placed after hyperref.
\urlstyle{same}z\vbox{}z
\makeindexz\sphinxmaketitlez\sphinxtableofcontentsz\printindexz

\bigskip\hrule\bigskip

Zhtbp)-Úlatex_engineZ	papersizeZ	pointsizeZpxunitÚclassoptionsÚextraclassoptionsÚmaxlistdepthÚsphinxpkgoptionsÚsphinxsetupÚfvsetZpassoptionstopackagesÚgeometryÚinputencÚ	utf8extraZcmappkgÚfontencZamsmathÚmultilingualÚbabelÚpolyglossiaÚfontpkgÚfncychapÚhyperrefÚusepackagesÚnumfig_formatÚcontentsnameZpreambleÚtitleÚdateÚreleaseÚauthorÚlogoÚreleasenameZ	makeindexÚshorthandoffZ	maketitleZtableofcontentsZatendofbodyZ
printindexÚ
transitionÚfigure_alignÚtocdepthÚsecnumdepthÚpageautorefnameÚtranslatablestringsz\usepackage[utf8]{inputenc}a+  \ifdefined\DeclareUnicodeCharacter
% support both utf8 and utf8x syntaxes
\edef\sphinxdqmaybe{\ifdefined\DeclareUnicodeCharacterAsOptional\string"\fi}
  \DeclareUnicodeCharacter{\sphinxdqmaybe00A0}{\nobreakspace}
  \DeclareUnicodeCharacter{\sphinxdqmaybe2500}{\sphinxunichar{2500}}
  \DeclareUnicodeCharacter{\sphinxdqmaybe2502}{\sphinxunichar{2502}}
  \DeclareUnicodeCharacter{\sphinxdqmaybe2514}{\sphinxunichar{2514}}
  \DeclareUnicodeCharacter{\sphinxdqmaybe251C}{\sphinxunichar{251C}}
  \DeclareUnicodeCharacter{\sphinxdqmaybe2572}{\textbackslash}
\fi)r,   r-   Úxelatexz\usepackage{polyglossia}z\usepackage{fontspec}zE\catcode`^^^^00a0\active\protected\def^^^^00a0{\leavevmode\nobreak\ }z\fvset{fontsize=auto})r$   r1   r0   r.   r2   r-   r*   ÚlualatexÚplatexz	,dvipdfmxz\usepackage[dvipdfm]{geometry})r$   r0   r%   r3   r+   )r"   rE   rF   rG   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   rH   ¯   s   rH   c               @   s   e Zd ZdZdS )ÚUnsupportedErrorzMarkup is unsupported in LaTeXN)rI   rJ   rK   Úcategoryr   r   r   r   rM   ³   s   rM   c               @   s\   e Zd Z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dZdd„ Zdd„ ZdS )ÚLaTeXWriter)ZsphinxlatexzLaTeX writer optionsr#   zDocument namez	--docnameÚdefaultzDocument classz
--docclassÚmanualZAuthorz--authorNc             C   s   t j | ¡ || _d S )N)r   ÚWriterÚ__init__Úbuilder)ÚselfrT   r   r   r   rS   Ä   s    zLaTeXWriter.__init__c             C   s,   | j  | j| j ¡}| j |¡ | ¡ | _d S )N)rT   Zcreate_translatorÚdocumentÚ	walkaboutÚastextÚoutput)rU   Zvisitorr   r   r   Ú	translateÉ   s    zLaTeXWriter.translate)	rI   rJ   rK   Ú	supportedZsettings_specZsettings_defaultsrY   rS   rZ   r   r   r   r   rO   ·   s   rO   c                   sR   e Zd ZdZd‡ fdd„	Zdd„ Zdd„ Zd	d
„ Z‡ fdd„Z‡ fdd„Z	‡  Z
S )ÚExtBabel)Z	bulgarianZkazakhZ	mongolianZrussianZ	ukrainianFc                s*   || _ || _d| _tt| ƒ |p"d¡ d S )NTr#   )Úlanguage_codeÚuse_polyglossiar[   Úsuperr\   rS   )rU   r]   r^   )Ú	__class__r   r   rS   Õ   s    zExtBabel.__init__c             C   s   t jdtdd tS )Nz*ExtBabel.get_shorthandoff() is deprecated.é   )Ú
stacklevel)ÚwarningsÚwarnr   ÚSHORTHANDOFF)rU   r   r   r   Úget_shorthandoffÜ   s    
zExtBabel.get_shorthandoffc             C   s   | j | jkS )N)ÚlanguageÚcyrillic_languages)rU   r   r   r   Úuses_cyrillicâ   s    zExtBabel.uses_cyrillicc             C   s   | j S )N)r[   )rU   r   r   r   Úis_supported_languageæ   s    zExtBabel.is_supported_languagec                s8   t t| ƒ |¡}|dkr"| jr"dS |s0d| _dS |S d S )NÚngermanÚgermanFZenglish)r_   r\   Úlanguage_namer^   r[   )rU   r]   rg   )r`   r   r   rm   ê   s    zExtBabel.language_namec                sD   | j dkrdS | jdkr<tt| ƒ | j¡}|dkr6dS dS ndS dS )z6Return options for polyglossia's ``\setmainlanguage``.FNrl   rk   zspelling=newzspelling=old)r^   rg   r_   r\   rm   r]   )rU   rg   )r`   r   r   Úget_mainlanguage_options÷   s    

z!ExtBabel.get_mainlanguage_options)F)rI   rJ   rK   rh   rS   rf   ri   rj   rm   rn   Ú__classcell__r   r   )r`   r   r\   Ò   s   r\   c               @   sZ   e Zd ZdZdd„ Zedd„ ƒZedd„ ƒZdd	„ Zd
d„ Z	dd„ Z
dd„ Zddd„ZdS )ÚTablezA table datac             C   sv   g | _ g | _| d¡| _d| _d | _g | _d| _d| _d| _	d | _
g | _d| _d| _| dg ¡| _ttƒ| _d| _d S )NÚalignr   FÚclasses)ÚheaderÚbodyÚgetrq   ÚcolcountÚcolspecÚ	colwidthsÚhas_problematicÚhas_oldproblematicÚhas_verbatimÚcaptionÚstubsÚcolÚrowrr   r   ÚintÚcellsÚcell_id)rU   Únoder   r   r   rS   	  s     
zTable.__init__c             C   s   t jdtdd g S )Nz*table.caption_footnotetexts is deprecated.ra   )rb   )rc   rd   r   )rU   r   r   r   Úcaption_footnotetexts"  s    
zTable.caption_footnotetextsc             C   s   t jdtdd g S )Nz)table.header_footnotetexts is deprecated.ra   )rb   )rc   rd   r   )rU   r   r   r   Úheader_footnotetexts)  s    
zTable.header_footnotetextsc             C   s   | j dkpd| jkS )z5True if and only if table uses longtable environment.é   Ú	longtable)r   rr   )rU   r   r   r   Úis_longtable0  s    zTable.is_longtablec             C   sB   |   ¡ rdS | jrdS | jr dS | js6| jr:d| jkr:dS dS dS )z›Returns the LaTeX environment name for the table.

        The class currently supports:

        * longtable
        * tabular
        * tabulary
        r‡   ZtabularÚtabularyzcolwidths-givenN)rˆ   r{   rw   ry   rx   rr   )rU   r   r   r   Úget_table_type5  s    
zTable.get_table_typec                s¨   | j r| j S | jrHd| jkrHt| jƒ‰ ‡ fdd„| jD ƒ}dd |¡ S | jr^d| j| jf S |  ¡ dkr|dd	| j  d
 S | jr’d| j| jf S dd| j  d
 S dS )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``.
        zcolwidths-givenc                s   g | ]}d |ˆ f ‘qS )z
\X{%d}{%d}r   )Ú.0Úwidth)Útotalr   r   ú
<listcomp>V  s    z%Table.get_colspec.<locals>.<listcomp>z{|%s|}
ú|z{|*{%d}{\X{1}{%d}|}}
r‰   z{|zT|z}
zl|N)	rw   rx   rr   ÚsumÚjoinry   rv   rŠ   rz   )rU   Zcolspecsr   )r   r   Úget_colspecJ  s    
zTable.get_colspecc             C   st   |  j d7  _ x`t|ƒD ]T}xNt|ƒD ]B}| j| j| | j| f dksLt‚| j | j| j| | j| f< q&W qW dS )zsAdds a new cell to a table.

        It will be located at current position: (``self.row``, ``self.col``).
        é   r   N)r‚   Úranger   r   r~   ÚAssertionError)rU   ÚheightrŒ   r~   r   r   r   r   Úadd_cellb  s
    "zTable.add_cellNc             C   sB   y(|dkr| j }|dkr| j}t| ||ƒS  tk
r<   dS X dS )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)r   r~   Ú	TableCellÚ
IndexError)rU   r   r~   r   r   r   Úcelln  s    z
Table.cell)NN)rI   rJ   rK   rL   rS   Úpropertyr„   r…   rˆ   rŠ   r’   r—   rš   r   r   r   r   rp     s   rp   c               @   s0   e Zd ZdZdd„ Zedd„ ƒZedd„ ƒZdS )	r˜   zA cell data of tables.c             C   sœ   |j ||f dkrt‚|| _|j ||f | _|| _|| _x.|j | jd | jf | jkrf|  jd8  _q:W x.|j | j| jd f | jkr–|  jd8  _qjW d S )Nr   r“   )r   r™   Útabler‚   r   r~   )rU   rœ   r   r~   r   r   r   rS   ‚  s    zTableCell.__init__c             C   s4   d}x*| j j| j| j| f | jkr.|d7 }qW |S )zReturns the cell width.r   r“   )rœ   r   r   r~   r‚   )rU   rŒ   r   r   r   rŒ   ’  s     zTableCell.widthc             C   s4   d}x*| j j| j| | jf | jkr.|d7 }qW |S )zReturns the cell height.r   r“   )rœ   r   r   r~   r‚   )rU   r–   r   r   r   r–   ›  s     zTableCell.heightN)rI   rJ   rK   rL   rS   r›   rŒ   r–   r   r   r   r   r˜     s   	r˜   c             C   s   t  dd| ¡S )z#Adjust spacing after abbreviations.z
\.(?=\s|$)z.\@)ÚreÚsub)Útextr   r   r   Úescape_abbr¥  s    r    éd   c             C   sÔ   t  d| ¡}|st‚| }| ¡ dd… \}}|dkrzt|ƒ |dkrNd| }qÐ|dkr`d| }qÐ|d	krÐd
t|ƒd  }nVt|ƒ| d }|dkrœd| }n4|dkr®d| }n"|d	krÄd|d  }nd||f }|S )z4Convert `width_str` with rst length to LaTeX length.z^(\d*\.?\d*)\s*(\S*)$Nra   r¡   )r#   Zpxz%s\sphinxpxdimenZptz%sbpú%z%.3f\linewidthg      Y@z%.5f\sphinxpxdimenz%.5fbpz%.5f\linewidthz%.5f%s)r   ÚmatchÚ
ValueErrorÚgroupsÚfloat)Ú	width_strÚscaler£   ZresZamountZunitZamount_floatr   r   r   Úrstdim_to_latexdim«  s,    



r©   c               @   s
  e Zd ZdZdZdZdd„ Zdd„ Zdd	„ Zd
d„ Z	dd„ Z
dd„ Zdd„ Zdædd„Zdçdd„Zdd„ Zdd„ Zdd„ Zdd„ Zdd „ Zd!d"„ Zd#d$„ Zd%d&„ Zd'd(„ Zd)d*„ Zd+d,„ Zd-d.„ Zd/d0„ Zd1d2„ Zd3d4„ Zd5d6„ Zd7d8„ Zd9d:„ Z d;d<„ Z!e Z"e!Z#d=d>„ Z$d?d@„ Z%dAdB„ Z&dCdD„ Z'dEdF„ Z(dGdH„ Z)dIdJ„ Z*dKdL„ Z+dMdN„ Z,dOdP„ Z-dQdR„ Z.dSdT„ Z/dUdV„ Z0dWdX„ Z1dYdZ„ Z2d[d\„ Z3d]d^„ Z4d_d`„ Z5dadb„ Z6dcdd„ Z7dedf„ Z8dgdh„ Z9didj„ Z:dkdl„ Z;dmdn„ Z<dodp„ Z=dqdr„ Z>dsdt„ Z?dudv„ Z@dwdx„ ZAdydz„ ZBd{d|„ ZCd}d~„ ZDdd€„ ZEdd‚„ ZFdƒd„„ ZGd…d†„ ZHd‡dˆ„ ZId‰dŠ„ ZJd‹dŒ„ ZKddŽ„ ZLdd„ ZMd‘d’„ ZNd“d”„ ZOd•d–„ ZPd—d˜„ ZQd™dš„ ZRd›dœ„ ZSddž„ ZTdŸd „ ZUd¡d¢„ ZVd£d¤„ ZWd¥d¦„ ZXd§d¨„ ZYd©dª„ ZZd«d¬„ Z[d­d®„ Z\d¯d°„ Z]d±d²„ Z^d³d´„ Z_dµd¶„ Z`d·d¸„ Zad¹dº„ Zbd»d¼„ Zcd½d¾„ Zdd¿dÀ„ ZedÁdÂ„ ZfdÃdÄ„ ZgdÅdÆ„ ZhdÇdÈ„ ZidÉdÊ„ ZjdËdÌ„ ZkdÍdÎ„ ZldÏdÐ„ ZmdÑdÒ„ ZndÓdÔ„ ZodÕdÖ„ Zpd×dØ„ ZqdÙdÚ„ ZrdÛdÜ„ ZsdÝdÞ„ ZtekZuelZveoZwepZxdßdà„ Zydádâ„ Zzdãdä„ Z{dådæ„ Z|dçdè„ Z}dédê„ Z~dëdì„ Zdídî„ Z€dèdðdñ„Zdòdó„ Z‚dôdõ„ Zƒdöd÷„ Z„dødù„ Z…dúdû„ Z†düdý„ Z‡dþdÿ„ Zˆd d„ Z‰dd„ ZŠdd„ Z‹dd„ ZŒdd	„ Zd
d„ ZŽedƒZeŽZedƒZ‘eŽZ’edƒZ“eŽZ”edƒZ•eŽZ–edƒZ—eŽZ˜edƒZ™eŽZšedƒZ›eŽZœedƒZeŽZžedƒZŸeŽZ dd„ Z¡dd„ Z¢dd„ Z£dd„ Z¤dd„ Z¥dd „ Z¦déd"d#„Z§d$d%„ Z¨d&d'„ Z©d(d)„ Zªd*d+„ Z«d,d-„ Z¬d.d/„ Z­d0d1„ Z®d2d3„ Z¯d4d5„ Z°d6d7„ Z±d8d9„ Z²d:d;„ Z³d<d=„ Z´d>d?„ Zµd@dA„ Z¶dBdC„ Z·dDdE„ Z¸dFdG„ Z¹dHdI„ ZºdJdK„ Z»dLdM„ Z¼dNdO„ Z½dPdQ„ Z¾dRdS„ Z¿dTdU„ ZÀdVdW„ ZÁdXdY„ ZÂdZd[„ ZÃd\d]„ ZÄd^d_„ ZÅd`da„ ZÆdbdc„ ZÇddde„ ZÈdfdg„ ZÉdhdi„ ZÊdjdk„ ZËdldm„ ZÌdndo„ ZÍdpdq„ ZÎeÍZÏeÎZÐdrds„ ZÑdtdu„ ZÒdvdw„ ZÓdxdy„ ZÔdzd{„ ZÕd|d}„ ZÖd~d„ Z×d€d„ ZØd‚dƒ„ ZÙd„d…„ ZÚd†d‡„ ZÛdˆd‰„ ZÜdŠd‹„ ZÝdŒd„ ZÞdŽd„ Zßdd‘„ Zàd’d“„ Zád”d•„ Zâd–d—„ Zãd˜d™„ Zädšd›„ Zådœd„ ZædždŸ„ Zçd d¡„ Zèd¢d£„ Zéd¤d¥„ Zêd¦d§„ Zëd¨d©„ Zìdªd«„ Zíd¬d­„ Zîd®d¯„ Zïd°d±„ Zðd²d³„ Zñd´dµ„ Zòd¶d·„ Zód¸d¹„ Zôdºd»„ Zõd¼d½„ Zöd¾d¿„ Z÷dÀdÁ„ ZødÂdÃ„ ZùdÄdÅ„ ZúdÆdÇ„ ZûdÈdÉ„ ZüdÊdË„ ZýdÌdÍ„ ZþdÎdÏ„ ZÿdÐdÑ„ Z dÒdÓ„ ZedÔdÕ„ ƒZedÖd×„ ƒZedØdÙ„ ƒZedÚdÛ„ ƒZedÜdÝ„ ƒZdÞdß„ Zdàdá„ Z	edâdã„ ƒZ
dädå„ Zd!S (ê  ÚLaTeXTranslatorra   F)ÚhowtorQ   c       	   	      sR  t j | |¡ || _g | _d| _d| _d| _d| _d| _	d| _
d| _d| _d| _d| _d| _d| _d| _d| _t ¡ | _| j t |jji ¡¡ | jd dkrÌ|jjrÌ|jjd d… dkrÌ| j ddd	œ¡ | j |jj¡ | j |  |jj¡|jj |  !|jj"¡|jj#t$d
ƒ|jj%dœ¡ | jd sF| jd rF| j dt$dƒi¡ t&d d … | _'|jjdkr|jj( dd¡}|d dkr‚n| j' )d¡ n|jj( dd¡}|| jd< d| _*|jj+ry| j' ,|jj+¡| _*W n0 t-k
r    t. /t0dƒ|jj+|f ¡ Y nX |jj1r|jj1| jd< n$t2|jj3p.t$dƒ|jjd| jd< |jj4r |jj5| _5| j5dkrÖt6| j'ƒt6t&ƒk r’| j*dkr’|  j5| j*7  _5n|  j5| j*d 7  _5t7| j5t6t&ƒd ƒ| _5| jd  d| j5 7  < n| jd  d7  < y |jj8r| jd  d7  < W n t9k
r   Y nX |jj:rBdt; <|jj:¡ | jd< |jjrr|jjd krrd!|jjkrrd"| jd!< t=|jj| jd#  ƒ| _>|jjr´| j> ?¡ s´t. /t0d$ƒ|jj¡ | jd# r&| jd%  d&| j> @¡  7  < | jd# | jd'< |jjr˜tA| jd(< | j> B¡ r˜d)|jjkr˜d| jd)< nr| jd* r˜| jd%  d&| j> @¡  7  < | j> C¡ }|rrd+|| j> @¡ f }nd,| j> @¡  }d-| jd* |f | jd'< tD|d.d ƒrÜdRd/d0„‰ ‡ fd1d2„|jED ƒ}| jd.  d3 F|¡7  < | jG}| d4¡rl|d4 | j* d }t6| j'ƒt6t&ƒk r(| j*dkr(|d7 }|t6t&ƒd krTt. /t0d5ƒ¡ t6t&ƒd }d6| | jd4< tH||ƒ}|jj4r”|jj5dkr”tH|| j5d ƒ}|| jGkr®d7| | jd8< tD|jd9d ƒrÔ|  Id:|jjJ¡| jd9< | jd; rü| jd  d<| jd;  7  < | jd rd=| jd  | jd< | jd> r<d?| jd>  | jd>< | jd@ rd| jd%  d&| jd@  7  < |  IdA|  !t$dBƒ¡¡|  IdC|  !t$dDƒ¡¡ |  IdE|  !t$dFƒ¡¡ |  IdG|  !t$dHƒ¡¡ |  IdI|  !t$dJƒ¡¡ | jdK< |  KdL|  !t$dMƒ¡¡| jdN< |  L|¡| jdO< tM NdP|jjO¡| _Pg | _Qg | _Rd | _Sd | _Tg | _UdQ| _Vg | _Wg | _XtYƒ | _Zd S )SNr   r“   r$   rE   ra   Úfrr#   z\usepackage{babel})r1   r0   ZIndex)Zwrapperclassr8   r:   r;   Ú	indexnameZ	use_xindyr=   r:   ZReleaser«   ZarticleÚjr   rQ   ZreportÚdocclassz+unknown %r toplevel_sectioning for class %rr9   z	%b %d, %Y)rg   r(   z,numfigreset=%sz,nonumfigresetz,mathnumfigz\sphinxincludegraphics{%s}\parr<   Zjar3   zk\usepackage[Sonny]{fncychap}
\ChNameVar{\Large\normalfont\sffamily}
\ChTitleVar{\Large\normalfont\sffamily}r0   z%no Babel option known for language %rr%   ú,r/   r>   r2   r1   z\setmainlanguage[%s]{%s}z\setmainlanguage{%s}z%s
%sr5   c             S   s   |rd|| f S d| f S d S )Nz\usepackage[%s]{%s}z\usepackage{%s}r   )ZpackagenameÚoptionsr   r   r   Údeclare_packageh  s    z1LaTeXTranslator.__init__.<locals>.declare_packagec             3   s   | ]}ˆ |Ž V  qd S )Nr   )r‹   Úp)r²   r   r   ú	<genexpr>n  s    z+LaTeXTranslator.__init__.<locals>.<genexpr>Ú
rA   ztoo large :maxdepth:, ignored.z\setcounter{tocdepth}{%d}z\setcounter{secnumdepth}{%d}rB   r7   z\contentsnamer'   z,maxlistdepth=%sz[%s]r)   z\sphinxsetup{%s}r&   z\literalblockcontinuednamezcontinued from previous pagez\literalblockcontinuesnamezcontinues on next pagez\sphinxnonalphabeticalgroupnamezNon-alphabeticalz\sphinxsymbolsnameZSymbolsz\sphinxnumbersnameZNumbersrD   z\pageautorefnameZpagerC   r6   ÚlatexF)N)[r   ÚNodeVisitorrS   rT   rt   Úin_titleÚin_production_listÚin_footnoteÚ
in_captionÚin_termÚneeds_linetrimmingÚin_minipageÚfirst_documentÚthis_is_the_titleÚliteral_whitespaceÚno_contractionsÚin_parsed_literalÚcompact_listÚfirst_paramÚDEFAULT_SETTINGSÚcopyÚelementsÚupdateÚADDITIONAL_SETTINGSru   Úconfigr$   rg   Úlatex_elementsÚformat_docclassZsettingsr¯   r8   Úencoder:   r;   r   Zlatex_use_xindyÚLATEXSECTIONNAMESÚsectionnamesZlatex_docclassÚremoveÚtop_sectionlevelZlatex_toplevel_sectioningÚindexr¤   ÚloggerÚwarningr   Ztodayr   Z	today_fmtZnumfigZnumfig_secnum_depthÚlenÚminZmath_numfigÚAttributeErrorZ
latex_logor   Úbasenamer\   r0   rj   Úget_languagere   ri   rn   Úgetattrr5   r‘   rB   ÚmaxÚbabel_renewcommandr7   Úbabel_defmacroÚgenerate_numfig_formatr
   ZPygmentsBridgeZpygments_styleÚhighlighterÚcontextZ	descstackrœ   Únext_table_colspecÚ	bodystackÚfootnote_restrictedÚpending_footnotesÚcurfilestackÚsetÚhandled_abbrs)	rU   rV   rT   r¯   r±   Zmainlanguager5   ZminsecnumdepthrA   r   )r²   r   rS   Ñ  s*   



















VzLaTeXTranslator.__init__c             C   s   | j  | j¡ || _d S )N)rã   Úappendrt   )rU   Znewbodyr   r   r   Úpushbody»  s    zLaTeXTranslator.pushbodyc             C   s   | j }| j ¡ | _ |S )N)rt   rã   Úpop)rU   rt   r   r   r   ÚpopbodyÀ  s    zLaTeXTranslator.popbodyc             C   s*   t jdtdd | jdkr&|| _g | _d S )Nz.LaTeXWriter.restrict_footnote() is deprecated.ra   )rb   F)rc   rd   r   rä   rå   )rU   rƒ   r   r   r   Úrestrict_footnoteÆ  s
    

z!LaTeXTranslator.restrict_footnotec             C   sL   t jdtdd | j|krHd| _x | jD ]}d|d< | | ¡ q(W g | _d S )Nz0LaTeXWriter.unrestrict_footnote() is deprecated.ra   )rb   FTÚfootnotetext)rc   rd   r   rä   rå   rW   )rU   rƒ   Zfootnoder   r   r   Úunrestrict_footnoteÏ  s    

z#LaTeXTranslator.unrestrict_footnotec             C   s   || j krd| }|S )z4 prepends prefix to sphinx document classes
        Úsphinx)Ú
docclasses)rU   r¯   r   r   r   rÍ   Û  s    
zLaTeXTranslator.format_docclassc             C   s,   | j  d | j¡|  ¡ dœ¡ |  d| j ¡S )Nr#   )rt   Úindiceszlatex.tex_t)rÈ   rÉ   r‘   rt   Úgenerate_indicesÚrender)rU   r   r   r   rX   ã  s    
zLaTeXTranslator.astextTc             C   s0   |r| j d d | }|rdp dd|  |¡  S )Néÿÿÿÿú:z\phantomsectionr#   z
\label{%s})ræ   Úidescape)rU   ÚidZwithdocÚanchorr   r   r   Úhypertargetë  s    
zLaTeXTranslator.hypertargetc                s0   d  ‡ fdd„|d D ƒ¡}|r(d| S |S d S )Nr#   c             3   s   | ]}ˆ j |d dV  qdS )F)rù   N)rú   )r‹   Únode_id)rU   r   r   r´   ô  s    z1LaTeXTranslator.hypertarget_to.<locals>.<genexpr>Úidsz\phantomsection)r‘   )rU   rƒ   rù   Úlabelsr   )rU   r   Úhypertarget_toò  s    zLaTeXTranslator.hypertarget_toc             C   s   d|   |¡ S )Nz{\hyperref[%s]{)r÷   )rU   rø   r   r   r   Ú	hyperlinkú  s    zLaTeXTranslator.hyperlinkc             C   s   d|   |¡ S )Nz\autopageref*{%s})r÷   )rU   rø   r   r   r   Úhyperpagerefþ  s    zLaTeXTranslator.hyperpagerefc             C   s(   dt |ƒ t¡ dd¡ d¡ dd¡ S )Nz\detokenize{%s}ÚasciiÚbackslashreplaceú\r   )r   rZ   r   rÎ   ÚdecodeÚreplace)rU   rø   r   r   r   r÷     s    zLaTeXTranslator.idescapec             C   s6   | j d rd| j ¡  }d}nd}d}d||||f S )Nr/   z\addto\captions%s{Ú}r#   z%s\renewcommand{%s}{%s}%s
)rÈ   r0   rÚ   )rU   ZcommandÚ
definitionÚprefixÚsuffixr   r   r   rÝ     s    
z"LaTeXTranslator.babel_renewcommandc             C   s6   | j d rd| j ¡  }d}nd}d}d||||f S )Nr0   z\addto\extras%s{r  r#   z%s\def%s{%s}%s
)rÈ   r0   rÚ   )rU   Únamer  r  r	  r   r   r   rÞ     s    
zLaTeXTranslator.babel_defmacroc             C   sž  g }| j jjd  dd¡}t|ƒdkrH| dt|d ƒ ¡  t	¡ ¡ nXt
t|d ƒ t	¡ƒ}| |  d|¡¡ | d¡ | dt|d ƒ t	¡ ¡ | d	¡ | j jjd
  dd¡}t|ƒdkrä| dt|d ƒ ¡  t	¡ ¡ nXt
t|d ƒ t	¡ƒ}| |  d|¡¡ | d¡ | dt|d ƒ t	¡ ¡ | d	¡ | j jjd  dd¡}t|ƒdkrbn2t|d ƒ ¡  t	¡}| |  d|¡¡ |d r”d |¡S )NÚfigurez%sr“   z\def\fnum@figure{%s}
r   z\figurenamez\makeatletter
z,\def\fnum@figure{\figurename\thefigure{}%s}
z\makeatother
rœ   z\def\fnum@table{%s}
z
\tablenamez)\def\fnum@table{\tablename\thetable{}%s}
z
code-blockz\literalblocknamer#   )rT   rË   r6   ÚsplitrÖ   ré   r   ÚstriprZ   r   r    rÝ   r‘   )rU   rT   Úretr  r  rœ   Z	codeblockr   r   r   rß     s8    




z&LaTeXTranslator.generate_numfig_formatc                s¬   ‡ ‡fdd„}g ‰ ˆj jj}|r¢x€tˆj jjƒD ]n}xh|jD ]^}d|j|jf }t|t	ƒrd||krdq<||ƒ 
ˆj j¡\}}|s€q<ˆ  d|j ¡ |||ƒ q<W q0W d ˆ ¡S )Nc          
      sÖ   ˆ   d¡ ˆ   d¡ x²t| ƒD ]¦\}\}}|dkr<ˆ   d¡ ˆ   dt|ƒ t¡ ¡ xn|D ]f}|d shqZˆ   dˆ |d ¡ ¡ |d r ˆ   d	ˆ |d ¡ ¡ ˆ   d
|d ˆ |d ¡f ¡ qZW qW ˆ   d¡ d S )Nz\begin{sphinxtheindex}
z+\let\bigletter\sphinxstyleindexlettergroup
r   z\indexspace
z\bigletter{%s}
é   z%\item\relax\sphinxstyleindexentry{%s}é   z\sphinxstyleindexextra{%s}z \sphinxstyleindexpageref{%s:%s}
ra   z\end{sphinxtheindex}
)ré   Ú	enumerater   rZ   r   rÎ   r÷   )ÚcontentÚ	collapsedÚiZletterÚentriesÚentry)r  rU   r   r   ÚgenerateF  s"    



"z2LaTeXTranslator.generate_indices.<locals>.generatez%s-%sz\renewcommand{\indexname}{%s}
r#   )rT   rË   Zlatex_domain_indicesr   ÚenvZdomainsrò   r
  Ú
isinstanceÚlistr  Zdocnamesré   Z	localnamer‘   )rU   r  Zindices_configÚdomainZindexclsr­   r  r  r   )r  rU   r   ró   D  s$    


z LaTeXTranslator.generate_indicesc             C   sL   x<| j jjD ].}t | j j||¡}t |¡rtƒ  ||¡S qW tƒ  ||¡S )N)	rT   rË   Ztemplates_pathr   r‘   ZconfdirÚexistsr   rô   )rU   Ztemplate_nameZ	variablesZtemplate_dirÚtemplater   r   r   rô   o  s    
zLaTeXTranslator.renderc             C   sl   | j  | dd¡¡ | jdkr&d| _n| jdkrB| j d¡ d| _d|kr\| j |  d¡¡ | jd | _d S )NÚdocnamer#   r“   r   z
\appendix
rõ   z:doc)ræ   ré   ru   r¿   rt   rú   rÒ   Úsectionlevel)rU   rƒ   r   r   r   Úvisit_documenty  s    

zLaTeXTranslator.visit_documentc             C   s   d S )Nr   )rU   rƒ   r   r   r   Údepart_documentˆ  s    zLaTeXTranslator.depart_documentc             C   s   | j  |d ¡ d S )Nr  )ræ   ré   )rU   rƒ   r   r   r   Úvisit_start_of_fileŒ  s    z#LaTeXTranslator.visit_start_of_filec                sT   ‡ fdd„‰ i }x>ˆ |ƒD ]2}|j d  ¡  ¡ }t|j d|iŽ}|dg||< qW |S )Nc             3   sN   t | tjƒr| V  n6x4| jD ]*}t |tjƒr.qxˆ |ƒD ]
}|V  q8W qW d S )N)r  r   ÚfootnoteÚchildrenr	   Zstart_of_file)ÚnÚcÚk)Úfootnotes_underr   r   r(  ’  s    z:LaTeXTranslator.collect_footnotes.<locals>.footnotes_underr   ÚnumberF)r$  rX   r  rH   )rU   rƒ   ZfnotesÚfnZnumZnewnoder   )r(  r   Úcollect_footnotes  s    z!LaTeXTranslator.collect_footnotesc             C   s   | j  ¡  d S )N)ræ   rë   )rU   rƒ   r   r   r   Údepart_start_of_file¤  s    z$LaTeXTranslator.depart_start_of_filec             C   s$   | j s|  jd7  _| j d¡ d S )Nr“   z

)rÀ   r  rt   ré   )rU   rƒ   r   r   r   Úvisit_section¨  s    zLaTeXTranslator.visit_sectionc             C   s   t | jd | jd ƒ| _d S )Nr“   )rÜ   r  rÒ   )rU   rƒ   r   r   r   Údepart_section®  s    
zLaTeXTranslator.depart_sectionc             C   s   | j  d¡ d S )Nz{\color{red}\bfseries{})rt   ré   )rU   rƒ   r   r   r   Úvisit_problematic³  s    z!LaTeXTranslator.visit_problematicc             C   s   | j  d¡ d S )Nr  )rt   ré   )rU   rƒ   r   r   r   Údepart_problematic·  s    z"LaTeXTranslator.depart_problematicc             C   s   d| _ | j d¡ d S )Nr“   z
\begin{sphinxShadowBox}
)r¾   rt   ré   )rU   rƒ   r   r   r   Úvisit_topic»  s    zLaTeXTranslator.visit_topicc             C   s   d| _ | j d¡ d S )Nr   z\end{sphinxShadowBox}
)r¾   rt   ré   )rU   rƒ   r   r   r   Údepart_topicÀ  s    zLaTeXTranslator.depart_topicc             C   s   d S )Nr   )rU   rƒ   r   r   r   Úvisit_glossaryÇ  s    zLaTeXTranslator.visit_glossaryc             C   s   d S )Nr   )rU   rƒ   r   r   r   Údepart_glossaryË  s    zLaTeXTranslator.depart_glossaryc             C   s   | j  d¡ d| _d S )Nz

\begin{productionlist}
r“   )rt   ré   r¹   )rU   rƒ   r   r   r   Úvisit_productionlistÏ  s    z$LaTeXTranslator.visit_productionlistc             C   s   | j  d¡ d| _d S )Nz\end{productionlist}

r   )rt   ré   r¹   )rU   rƒ   r   r   r   Údepart_productionlistÔ  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{)rt   ré   rú   rÎ   )rU   rƒ   Ztnr   r   r   Úvisit_productionÙ  s
    z LaTeXTranslator.visit_productionc             C   s   | j  d¡ d S )Nz}
)rt   ré   )rU   rƒ   r   r   r   Údepart_productionâ  s    z!LaTeXTranslator.depart_productionc             C   s   | j  | jd ¡ d S )Nr?   )rt   ré   rÈ   )rU   rƒ   r   r   r   Úvisit_transitionæ  s    z LaTeXTranslator.visit_transitionc             C   s   d S )Nr   )rU   rƒ   r   r   r   Údepart_transitionê  s    z!LaTeXTranslator.depart_transitionc             C   s
  |j }t|tjƒrtj‚nät|tjƒr2| jršt|j	ƒdkrnt|j	d tj
ƒsntjtdƒ| jd |jfd | jd sŒ| ¡  t¡| jd< d| _tj‚n–d}| tj¡rÆdd	 t|ƒ ¡ ¡ t¡ }y | j d
| j| j |f ¡ W n0 tk
r   | j d
| jd |f ¡ Y nX | j d|  |j ¡ ¡ nÎt|tj ƒrZ| j d¡ | j d¡ n¦t|tj!ƒr‚| j d¡ | j d¡ n~t|tj"ƒrª| j d¡ | j d¡ nVt|tj#ƒrÄ|  $g ¡ n<tjtdƒ| jd |jpàdfd | j d¡ | j d¡ d| _%d S )Nr“   r   z(document title is not a single Text noderõ   )Úlocationr8   r#   z[%s]ú z\%s%s{z}
z\sphinxstyletopictitle{z\sphinxstylesidebartitle{Ú{zJencountered title node not in section, topic, table, admonition or sidebarz\sphinxstyleothertitle{)&Úparentr  r	   Úseealsor   ÚSkipNoder   rÀ   rÖ   r$  ZTextrÔ   rÕ   r   ræ   ÚlinerÈ   rX   rZ   r   ÚtraverseZimager‘   r   r  rt   ré   rÐ   r  r™   rá   rþ   ZtopicÚsidebarZ
Admonitionrœ   rê   r¸   )rU   rƒ   r>  Zshortr   r   r   Úvisit_titleî  sL    


  
zLaTeXTranslator.visit_titlec             C   s8   d| _ t|jtjƒr"|  ¡ | j_n| j | j	 
¡ ¡ d S )Nr   )r¸   r  r>  r   rœ   rì   r|   rt   ré   rá   rë   )rU   rƒ   r   r   r   Údepart_title   s    zLaTeXTranslator.depart_titlec             C   s8   t |jtjƒr(| j d¡ | j d¡ n| j d¡ d S )Nz\sphinxstylesidebarsubtitle{z}
r#   )r  r>  r   rC  rt   ré   rá   )rU   rƒ   r   r   r   Úvisit_subtitle(  s    zLaTeXTranslator.visit_subtitlec             C   s   | j  | j ¡ ¡ d S )N)rt   ré   rá   rë   )rU   rƒ   r   r   r   Údepart_subtitle0  s    zLaTeXTranslator.depart_subtitlec             C   s   | j  d¡ | jrd| j_d S )Nz

\begin{fulllineitems}
T)rt   ré   rœ   ry   )rU   rƒ   r   r   r   Ú
visit_desc4  s    zLaTeXTranslator.visit_descc             C   s   | j  d¡ d S )Nz
\end{fulllineitems}

)rt   ré   )rU   rƒ   r   r   r   Údepart_desc:  s    zLaTeXTranslator.depart_descc             C   s8   x2|D ]}t |tjƒr| j d¡ P qW | j d¡ d S )Nz\pysiglinewithargsret{z\pysigline{)r  r	   Zdesc_parameterlistrt   ré   )rU   rƒ   Úchildr   r   r   Ú_visit_signature_line>  s
    
z%LaTeXTranslator._visit_signature_linec             C   s   | j  d¡ d S )Nr  )rt   ré   )rU   rƒ   r   r   r   Ú_depart_signature_lineG  s    z&LaTeXTranslator._depart_signature_linec             C   s`   |j d dkr*|d r*|  |d d ¡}nd}| j |¡ | d¡sP|  |¡ n| j d¡ d S )NZobjtypeZdescriberü   r   r#   Úis_multilinez%
\pysigstartmultiline
)r>  rú   rt   ré   ru   rK  )rU   rƒ   Zhyperr   r   r   Úvisit_desc_signatureK  s    
z$LaTeXTranslator.visit_desc_signaturec             C   s&   |  d¡s|  |¡ n| j d¡ d S )NrM  z%
\pysigstopmultiline)ru   rL  rt   ré   )rU   rƒ   r   r   r   Údepart_desc_signatureW  s    
z%LaTeXTranslator.depart_desc_signaturec             C   s   |   |¡ d S )N)rK  )rU   rƒ   r   r   r   Úvisit_desc_signature_line^  s    z)LaTeXTranslator.visit_desc_signature_linec             C   s   |   |¡ d S )N)rL  )rU   rƒ   r   r   r   Údepart_desc_signature_lineb  s    z*LaTeXTranslator.depart_desc_signature_linec             C   s   | j  d¡ |  jd7  _d S )Nz\sphinxcode{\sphinxupquote{r“   )rt   ré   rÁ   )rU   rƒ   r   r   r   Úvisit_desc_addnamef  s    z"LaTeXTranslator.visit_desc_addnamec             C   s   | j  d¡ |  jd8  _d S )Nz}}r“   )rt   ré   rÁ   )rU   rƒ   r   r   r   Údepart_desc_addnamek  s    z#LaTeXTranslator.depart_desc_addnamec             C   s   d S )Nr   )rU   rƒ   r   r   r   Úvisit_desc_typep  s    zLaTeXTranslator.visit_desc_typec             C   s   d S )Nr   )rU   rƒ   r   r   r   Údepart_desc_typet  s    z LaTeXTranslator.depart_desc_typec             C   s   | j  d¡ d S )Nz{ $\rightarrow$ )rt   ré   )rU   rƒ   r   r   r   Úvisit_desc_returnsx  s    z"LaTeXTranslator.visit_desc_returnsc             C   s   | j  d¡ d S )Nr  )rt   ré   )rU   rƒ   r   r   r   Údepart_desc_returns|  s    z#LaTeXTranslator.depart_desc_returnsc             C   s,   | j  d¡ |  jd7  _|  jd7  _d S )Nz\sphinxbfcode{\sphinxupquote{r“   )rt   ré   rÂ   rÁ   )rU   rƒ   r   r   r   Úvisit_desc_name€  s    zLaTeXTranslator.visit_desc_namec             C   s,   | j  d¡ |  jd8  _|  jd8  _d S )Nz}}r“   )rt   ré   rÁ   rÂ   )rU   rƒ   r   r   r   Údepart_desc_name†  s    z LaTeXTranslator.depart_desc_namec             C   s   | j  d¡ d| _d S )Nz}{r“   )rt   ré   rÅ   )rU   rƒ   r   r   r   Úvisit_desc_parameterlistŒ  s    z(LaTeXTranslator.visit_desc_parameterlistc             C   s   | j  d¡ d S )Nz}{)rt   ré   )rU   rƒ   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 )Nz, r   Únoemphz\emph{)rÅ   rt   ré   Úhasattr)rU   rƒ   r   r   r   Úvisit_desc_parameter—  s
    
z$LaTeXTranslator.visit_desc_parameterc             C   s   |  d¡s| j d¡ d S )Nr\  r  )r]  rt   ré   )rU   rƒ   r   r   r   Údepart_desc_parameter   s    
z%LaTeXTranslator.depart_desc_parameterc             C   s   | j  d¡ d S )Nz\sphinxoptional{)rt   ré   )rU   rƒ   r   r   r   Úvisit_desc_optional¥  s    z#LaTeXTranslator.visit_desc_optionalc             C   s   | j  d¡ d S )Nr  )rt   ré   )rU   rƒ   r   r   r   Údepart_desc_optional©  s    z$LaTeXTranslator.depart_desc_optionalc             C   s   | j  d¡ d S )Nz\sphinxbfcode{\sphinxupquote{)rt   ré   )rU   rƒ   r   r   r   Úvisit_desc_annotation­  s    z%LaTeXTranslator.visit_desc_annotationc             C   s   | j  d¡ d S )Nz}})rt   ré   )rU   rƒ   r   r   r   Údepart_desc_annotation±  s    z&LaTeXTranslator.depart_desc_annotationc             C   s(   |j r$t|j d tjƒs$| j d¡ d S )Nr   ú~)r$  r  r   r   rt   ré   )rU   rƒ   r   r   r   Úvisit_desc_contentµ  s    z"LaTeXTranslator.visit_desc_contentc             C   s   d S )Nr   )rU   rƒ   r   r   r   Údepart_desc_content»  s    z#LaTeXTranslator.depart_desc_contentc             C   s   | j  dtd  ¡ d S )Nz

\sphinxstrong{%s:}

r?  )rt   ré   r   )rU   rƒ   r   r   r   Úvisit_seealso¿  s    zLaTeXTranslator.visit_seealsoc             C   s   | j  d¡ d S )Nz

)rt   ré   )rU   rƒ   r   r   r   Údepart_seealsoÃ  s    zLaTeXTranslator.depart_seealsoc             C   sP   t |jƒdkr.|jd  ¡ dtdƒfkr.tj‚| j d¡ | j d¡ d| _	d S )Nr“   r   Z	Footnotesz\subsubsection*{z}
)
rÖ   r$  rX   r   r   r@  rt   ré   rá   r¸   )rU   rƒ   r   r   r   Úvisit_rubricÇ  s    zLaTeXTranslator.visit_rubricc             C   s   d| _ | j | j ¡ ¡ d S )Nr   )r¸   rt   ré   rá   rë   )rU   rƒ   r   r   r   Údepart_rubricÐ  s    zLaTeXTranslator.depart_rubricc             C   sV   |  j d7  _ | jr.| j d|d  ¡  ¡ n| j d|d  ¡  ¡ | j d¡ d S )Nr“   z\begin{footnote}[%s]r   z%%
\begin{footnote}[%s]z\sphinxAtStartFootnote
)rº   rÃ   rt   ré   rX   )rU   rƒ   r   r   r   Úvisit_footnoteÕ  s
    zLaTeXTranslator.visit_footnotec             C   s2   | j r| j d¡ n| j d¡ |  jd8  _d S )Nz\end{footnote}z%
\end{footnote}r“   )rÃ   rt   ré   rº   )rU   rƒ   r   r   r   Údepart_footnoteÞ  s    zLaTeXTranslator.depart_footnotec             C   s
   t j‚d S )N)r   r@  )rU   rƒ   r   r   r   Úvisit_labelæ  s    zLaTeXTranslator.visit_labelc             C   s   |d | _ tj‚d S )NÚspec)râ   r   r@  )rU   rƒ   r   r   r   Úvisit_tabular_col_specê  s    
z&LaTeXTranslator.visit_tabular_col_specc             C   sh   | j r"td| jd |jpdf ƒ‚t|ƒ| _ | jr^d| j | j _d| dg ¡kr^tj	d|d d | _d S )	Nz-%s:%s: nested tables are not yet implemented.rõ   r#   z{%s}
zcolwidths-givenrr   zGboth tabularcolumns and :widths: option are given. :widths: is ignored.)r;  )
rœ   rM   ræ   rA  rp   râ   rw   ru   rÔ   Úinfo)rU   rƒ   r   r   r   Úvisit_tableï  s    
zLaTeXTranslator.visit_tablec             C   s\   |   |¡}| j ¡ }|  |d t| j|d¡}| j d¡ | j |¡ | j d¡ d | _d S )Nz.tex_t)rœ   rý   z

rµ   )rþ   rœ   rŠ   rô   Údictrt   ré   )rU   rƒ   rý   Z
table_typerœ   r   r   r   Údepart_tableý  s    


zLaTeXTranslator.depart_tablec             C   sL   | j  jd7  _d|kr*| j j |d ¡ d|krH| j j | j jd ¡ d S )Nr“   ZcolwidthZstub)rœ   rv   rx   ré   r}   )rU   rƒ   r   r   r   Úvisit_colspec	  s
    zLaTeXTranslator.visit_colspecc             C   s   d S )Nr   )rU   rƒ   r   r   r   Údepart_colspec  s    zLaTeXTranslator.depart_colspecc             C   s   d S )Nr   )rU   rƒ   r   r   r   Úvisit_tgroup  s    zLaTeXTranslator.visit_tgroupc             C   s   d S )Nr   )rU   rƒ   r   r   r   Údepart_tgroup  s    zLaTeXTranslator.depart_tgroupc             C   s   |   | jj¡ d S )N)rê   rœ   rs   )rU   rƒ   r   r   r   Úvisit_thead  s    zLaTeXTranslator.visit_theadc             C   s   |   ¡  d S )N)rì   )rU   rƒ   r   r   r   Údepart_thead"  s    zLaTeXTranslator.depart_theadc             C   s   |   | jj¡ d S )N)rê   rœ   rt   )rU   rƒ   r   r   r   Úvisit_tbody&  s    zLaTeXTranslator.visit_tbodyc             C   s   |   ¡  d S )N)rì   )rU   rƒ   r   r   r   Údepart_tbody+  s    zLaTeXTranslator.depart_tbodyc             C   sŽ   d| j _x€| j  | j j| j j¡}|d kr,P q
| j  j|j7  _|jrP| j d¡ |jdkrn| j d|j ¡ q
| j d|j|jf ¡ q
W d S )Nr   ú&r“   z\sphinxtablestrut{%d}z,\multicolumn{%d}{|l|}{\sphinxtablestrut{%d}})rœ   r~   rš   r   rŒ   rt   ré   r‚   )rU   rƒ   rš   r   r   r   Ú	visit_row/  s    
zLaTeXTranslator.visit_rowc                sÎ   ˆ j  d¡ ‡ fdd„tˆ jjƒD ƒ}‡ fdd„|D ƒ}t|ƒrNˆ j  d¡ nld}| dg¡ xZ|t|ƒk r¸|| dkr®||d …  d¡}ˆ j  d	|d
 || f ¡ ||7 }|d
7 }q`W ˆ j j	d
7  _	d S )Nz\\
c                s   g | ]}ˆ j  ˆ j j|¡‘qS r   )rœ   rš   r   )r‹   r  )rU   r   r   rŽ   G  s    z.LaTeXTranslator.depart_row.<locals>.<listcomp>c                s$   g | ]}|j |j ˆ jj d  k‘qS )r“   )r   r–   rœ   )r‹   rš   )rU   r   r   rŽ   H  s    z\hliner   FTz\cline{%d-%d}r“   )
rt   ré   r”   rœ   rv   ÚallÚextendrÖ   rÓ   r   )rU   rƒ   r   Z
underlinedr  r®   r   )rU   r   Ú
depart_rowD  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	j
r˜| j jdkr€| j d|j ¡ n| j d|j ¡ d	}n| j d
|j ¡ d}|jdkrØ| j d|j|jf ¡ d	| }|jdksî|jdkr| j d|j| j jf ¡ d| }d| _t| tj¡ƒdkr4d| j _t|jjtjƒsV|j| j jkr’t|ƒdkr†t|d tjƒr†| ¡ dkr†n| j d¡ | jr¤|  g ¡ | j |¡ d S )Nr   r|  Zmorerowsr“   Zmorecolsr#   z\multicolumn{%d}{|l|}{%%
z\multicolumn{%d}{l|}{%%
z}%
z\sphinxstartmulticolumn{%d}%%
z\sphinxstopmulticolumn
z\sphinxmultirow{%d}{%d}{%%
z-\begin{varwidth}[t]{\sphinxcolwidth{%d}{%d}}
z=\par
\vskip-\baselineskip\vbox{\hbox{\strut}}\end{varwidth}%
ra   Tz\sphinxstyletheadfamily )rœ   r~   rt   ré   r—   ru   rš   rŒ   rT   rË   Zlatex_use_latex_multicolumnr–   r‚   rv   r½   rÖ   rB  r   r   rz   r  r>  Ztheadr}   rX   rê   rá   )rU   rƒ   rš   rá   r   r   r   Úvisit_entryV  s>    &



".
zLaTeXTranslator.visit_entryc             C   sâ   | j r@d| _ |  ¡ }x|r2|d dkr2| d¡ qW | j |¡ | j | j ¡ ¡ | j ¡ }| j j	|j
7  _	xn| j ¡ }|d kr†P qp| j j	|j
7  _	| j d¡ |j
dkrÂ| j d|j ¡ qp| j d|j
|jf ¡ qpW d S )Nr   rµ   r|  r“   z\sphinxtablestrut{%d}z+\multicolumn{%d}{l|}{\sphinxtablestrut{%d}})r½   rì   rë   rt   r  ré   rá   rœ   rš   r~   rŒ   r‚   )rU   rƒ   rt   rš   Znextcellr   r   r   Údepart_entry|  s&    


zLaTeXTranslator.depart_entryc             C   sJ   | j  d¡ | j  d dd„ |jd jD ƒ¡d ¡ | j  d¡ tj‚d S )Nz

z, c             s   s   | ]}|  ¡ V  qd S )N)rX   )r‹   r%  r   r   r   r´   £  s   z-LaTeXTranslator.visit_acks.<locals>.<genexpr>r   Ú.)rt   ré   r‘   r$  r   r@  )rU   rƒ   r   r   r   Ú
visit_acksž  s
    zLaTeXTranslator.visit_acksc             C   s$   | j s| j d¡ | jr d| j_d S )Nz\begin{itemize}
T)rÄ   rt   ré   rœ   ry   )rU   rƒ   r   r   r   Úvisit_bullet_list¨  s    z!LaTeXTranslator.visit_bullet_listc             C   s   | j s| j d¡ d S )Nz\end{itemize}
)rÄ   rt   ré   )rU   rƒ   r   r   r   Údepart_bullet_list¯  s    z"LaTeXTranslator.depart_bullet_listc                sð   dd„ }‡ fdd„‰ dt ˆ |ƒƒ ¡  }dt ˆ |ƒd ƒ ¡  }t ||ƒ¡}| dd¡}| d	d
¡}| j d¡ | j d|||f ¡ | j d||||f ¡ | j d|||||f ¡ d|krÞ| j d||d d f ¡ | jrìd| j_d S )Nc             S   s4   |   dd¡}d|kr0d|   dd¡t| ƒ k r0d}|S )NÚenumtyper!   Zalphaé   Ústartr   )ru   rÖ   )rƒ   r‡  r   r   r   Úget_enumtype¶  s     z;LaTeXTranslator.visit_enumerated_list.<locals>.get_enumtypec                s4   | d krdS t | tjƒr&ˆ | jƒd S ˆ | jƒS d S )Nr   r“   )r  r   Úenumerated_listr>  )rƒ   )Úget_nested_levelr   r   rŒ  ¿  s
    z?LaTeXTranslator.visit_enumerated_list.<locals>.get_nested_levelzenum%sr“   r  r#   r	  rƒ  z\begin{enumerate}
z\def\the%s{%s{%s}}
z\def\label%s{%s\the%s %s}
z6\makeatletter\def\p@%s{\p@%s %s\the%s %s}\makeatother
r‰  z\setcounter{%s}{%d}
T)r   ÚlowerÚENUMERATE_LIST_STYLEru   rt   ré   rœ   ry   )rU   rƒ   rŠ  ÚenumZenumnextÚstyler  r	  r   )rŒ  r   Úvisit_enumerated_list´  s"    		z%LaTeXTranslator.visit_enumerated_listc             C   s   | j  d¡ d S )Nz\end{enumerate}
)rt   ré   )rU   rƒ   r   r   r   Údepart_enumerated_listÙ  s    z&LaTeXTranslator.depart_enumerated_listc             C   s   | j  d¡ d S )Nz	\item {} )rt   ré   )rU   rƒ   r   r   r   Úvisit_list_itemÝ  s    zLaTeXTranslator.visit_list_itemc             C   s   | j  d¡ d S )Nrµ   )rt   ré   )rU   rƒ   r   r   r   Údepart_list_itemã  s    z LaTeXTranslator.depart_list_itemc             C   s   | j  d¡ | jrd| j_d S )Nz\begin{description}
T)rt   ré   rœ   ry   )rU   rƒ   r   r   r   Úvisit_definition_listç  s    z%LaTeXTranslator.visit_definition_listc             C   s   | j  d¡ d S )Nz\end{description}
)rt   ré   )rU   rƒ   r   r   r   Údepart_definition_listí  s    z&LaTeXTranslator.depart_definition_listc             C   s   d S )Nr   )rU   rƒ   r   r   r   Úvisit_definition_list_itemñ  s    z*LaTeXTranslator.visit_definition_list_itemc             C   s   d S )Nr   )rU   rƒ   r   r   r   Údepart_definition_list_itemõ  s    z+LaTeXTranslator.depart_definition_list_itemc             C   sh   |  j d7  _ d}| d¡rDd}x"|d D ]}|| j|dd7 }q*W |d7 }| j d¡ | j |¡ d S )	Nr“   r#   rü   z\phantomsectionF)rù   z}] \leavevmodez\item[{)r¼   ru   rú   rt   ré   rá   )rU   rƒ   Zctxrû   r   r   r   Ú
visit_termù  s    
zLaTeXTranslator.visit_termc             C   s$   | j  | j ¡ ¡ |  jd8  _d S )Nr“   )rt   ré   rá   rë   r¼   )rU   rƒ   r   r   r   Údepart_term  s    zLaTeXTranslator.depart_termc             C   s   | j  d¡ d S )Nz{[})rt   ré   )rU   rƒ   r   r   r   Úvisit_classifier
  s    z LaTeXTranslator.visit_classifierc             C   s   | j  d¡ d S )Nz{]})rt   ré   )rU   rƒ   r   r   r   Údepart_classifier  s    z!LaTeXTranslator.depart_classifierc             C   s   d S )Nr   )rU   rƒ   r   r   r   Úvisit_definition  s    z LaTeXTranslator.visit_definitionc             C   s   | j  d¡ d S )Nrµ   )rt   ré   )rU   rƒ   r   r   r   Údepart_definition  s    z!LaTeXTranslator.depart_definitionc             C   s   | j  d¡ | jrd| j_d S )Nz!\begin{quote}\begin{description}
T)rt   ré   rœ   ry   )rU   rƒ   r   r   r   Úvisit_field_list  s    z LaTeXTranslator.visit_field_listc             C   s   | j  d¡ d S )Nz\end{description}\end{quote}
)rt   ré   )rU   rƒ   r   r   r   Údepart_field_list   s    z!LaTeXTranslator.depart_field_listc             C   s   d S )Nr   )rU   rƒ   r   r   r   Úvisit_field$  s    zLaTeXTranslator.visit_fieldc             C   s   d S )Nr   )rU   rƒ   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¡ n(|dkrxt|j tjt	fƒrxn| j d¡ d S )Nr   r“   z
\noindent
rµ   )
r>  rÓ   r  r   Zcompoundr   rt   ré   r#  rî   )rU   rƒ   rÓ   r   r   r   Úvisit_paragraph2  s    zLaTeXTranslator.visit_paragraphc             C   s   | j  d¡ d S )Nrµ   )rt   ré   )rU   rƒ   r   r   r   Údepart_paragraphA  s    z LaTeXTranslator.depart_paragraphc             C   s   | j  d¡ | jrd| j_d S )Nz
\begin{center}T)rt   ré   rœ   ry   )rU   rƒ   r   r   r   Úvisit_centeredE  s    zLaTeXTranslator.visit_centeredc             C   s   | j  d¡ d S )Nz
\end{center})rt   ré   )rU   rƒ   r   r   r   Údepart_centeredK  s    zLaTeXTranslator.depart_centeredc             C   s,   |  j d7  _ | j d¡ | jr(d| j_d S )Nr“   zB\begin{itemize}\setlength{\itemsep}{0pt}\setlength{\parskip}{0pt}
T)rÄ   rt   ré   rœ   ry   )rU   rƒ   r   r   r   Úvisit_hlistO  s    zLaTeXTranslator.visit_hlistc             C   s   |  j d8  _ | j d¡ d S )Nr“   z\end{itemize}
)rÄ   rt   ré   )rU   rƒ   r   r   r   Údepart_hlistY  s    zLaTeXTranslator.depart_hlistc             C   s   d S )Nr   )rU   rƒ   r   r   r   Úvisit_hlistcol^  s    zLaTeXTranslator.visit_hlistcolc             C   s   d S )Nr   )rU   rƒ   r   r   r   Údepart_hlistcolb  s    zLaTeXTranslator.depart_hlistcolr¡   c             C   s4   y
t ||ƒS  tk
r.   t tdƒ|¡ d S X d S )Nz&dimension unit %s is invalid. Ignored.)r©   r¤   rÔ   rÕ   r   )rU   r§   r¨   r   r   r   Úlatex_image_lengthf  s
    
z"LaTeXTranslator.latex_image_lengthc             C   s   t |jtjƒS )z2Check whether a node represents an inline element.)r  r>  r   ZTextElement)rU   rƒ   r   r   r   Ú	is_inlinen  s    zLaTeXTranslator.is_inlinec             C   sh  |j }g }g }g }t|jtjƒ}|r2|  |j¡}n
|  |¡}d|kr‚d|krb|  |d |d ¡}n|  |d ¡}|r‚| d| ¡ d|krÈd|kr¨|  |d |d ¡}	n|  |d ¡}	|	rÈ| d|	 ¡ d|krî|sî| dt|d ƒd  ¡ d|krZd	d
dddddœ}
y8| |
||d f d ¡ | |
||d f d ¡ W n t	k
rX   Y nX | j
rv| d¡ | d¡ |s–|s–| d¡ | d¡ | ¡  |d | jjkrÂ| jj|d  }n| jrÎd S |d }| d¡dkrêd S | j |¡ d}|rdd |¡ }t |¡\}}| jrB|rB| j d|||f ¡ n| j d|||f ¡ | j |¡ d S )NrŒ   r¨   zwidth=%sr–   z	height=%szscale=%sg      Y@rq   )r#   r#   )z\raisebox{-0.5\height}{r  )z\raisebox{-\height}{r  )z{\hspace*{\fill}z\hspace*{\fill}})r=  z\hspace*{\fill}})z{\hspace*{\fill}r  ))r“   Útop)r“   Zmiddle)r“   Zbottom)r   Úcenter)r   Úleft)r   Úrightr   r“   z!{\sphinxunactivateextrasandspace r  z

\noindentrµ   Úuriz://rõ   r#   z[%s]r°   z,\lowercase{\sphinxincludegraphics%s}{{%s}%s}z \sphinxincludegraphics%s{{%s}%s})Ú
attributesr  r>  r   Ú	referencer¬  r«  ré   r¦   ÚKeyErrorrÃ   ÚreverserT   ZimagesÚignore_missing_imagesÚfindrt   r  r‘   r   Úsplitextr¸   )rU   rƒ   ZattrsZpreZpostZinclude_graphics_optionsZhas_hyperlinkr¬  ÚwÚhZalign_prepostr±  r±   ÚbaseZextr   r   r   Úvisit_images  sz    





zLaTeXTranslator.visit_imagec             C   s   d S )Nr   )rU   rƒ   r   r   r   Údepart_imageÅ  s    zLaTeXTranslator.depart_imagec             C   sR  | j rjd|kr2|  |d ¡}|r>| j d| ¡ n| j d¡ tdd„ |D ƒƒr\| j d¡ | j d¡ nä| dd	¡d
krêd }d|kr–|  |d ¡}nd|d kr´|  |d d ¡}| j d|d dkrÌdpÎd|pÔdf ¡ | j d¡ nd| jr| j d¡ | j d¡ nB| j d| jd  ¡ tdd„ |D ƒƒrB| j d¡ | j d¡ d S )NrŒ   z-\begin{sphinxfigure-in-table}[%s]
\centering
z)\begin{sphinxfigure-in-table}
\centering
c             s   s   | ]}t |tjƒV  qd S )N)r  r   r|   )r‹   rJ  r   r   r   r´   Ô  s    z/LaTeXTranslator.visit_figure.<locals>.<genexpr>z	\capstartz"\end{sphinxfigure-in-table}\relax
rq   r#   )r¯  r°  r   z%\begin{wrapfigure}{%s}{%s}
\centeringr°  ÚrÚlZ0ptz\end{wrapfigure}
z
\begin{center}z\end{center}
z
\begin{figure}[%s]
\centering
r@   c             s   s   | ]}t |tjƒV  qd S )N)r  r   r|   )r‹   rJ  r   r   r   r´   æ  s    z
\capstart
z\end{figure}
)	rœ   r«  rt   ré   Úanyrá   ru   r¾   rÈ   )rU   rƒ   Úlengthr   r   r   Úvisit_figureÉ  s6    
 zLaTeXTranslator.visit_figurec             C   s   | j  | j ¡ ¡ d S )N)rt   ré   rá   rë   )rU   rƒ   r   r   r   Údepart_figureê  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}{r  z\sphinxfigcaption{z	\caption{)r»   r  r>  Úcaptioned_literal_blockrt   ré   r¾   r   r  rœ   Ztagname)rU   rƒ   r   r   r   Úvisit_captionî  s    zLaTeXTranslator.visit_captionc             C   sD   | j  d¡ t|jtjƒr2|  |j¡}| j  |¡ |  jd8  _d S )Nr  r“   )rt   ré   r  r>  r   r  rþ   r»   )rU   rƒ   rý   r   r   r   Údepart_captionú  s
    zLaTeXTranslator.depart_captionc             C   s   | j  d¡ d S )Nz
\begin{sphinxlegend})rt   ré   )rU   rƒ   r   r   r   Úvisit_legend  s    zLaTeXTranslator.visit_legendc             C   s   | j  d¡ d S )Nz\end{sphinxlegend}
)rt   ré   )rU   rƒ   r   r   r   Údepart_legend  s    zLaTeXTranslator.depart_legendc             C   s   | j  d¡ d S )Nz
\begin{sphinxadmonition}{note})rt   ré   )rU   rƒ   r   r   r   Úvisit_admonition
  s    z LaTeXTranslator.visit_admonitionc             C   s   | j  d¡ d S )Nz\end{sphinxadmonition}
)rt   ré   )rU   rƒ   r   r   r   Údepart_admonition  s    z!LaTeXTranslator.depart_admonitionc                s   ‡ fdd„}|S )Nc                s   | j  dˆ tˆ  f ¡ d S )Nz"
\begin{sphinxadmonition}{%s}{%s:})rt   ré   r   )rU   rƒ   )r
  r   r   rÉ    s    z@LaTeXTranslator._make_visit_admonition.<locals>.visit_admonitionr   )r
  rÉ  r   )r
  r   Ú_make_visit_admonition  s    z&LaTeXTranslator._make_visit_admonitionc             C   s   | j  d¡ d S )Nz\end{sphinxadmonition}
)rt   ré   )rU   rƒ   r   r   r   Ú_depart_named_admonition  s    z(LaTeXTranslator._depart_named_admonitionZ	attentionZcautionZdangerÚerrorZhintZ	importantZnoteZtiprÕ   c             C   s   d S )Nr   )rU   rƒ   r   r   r   Úvisit_versionmodified1  s    z%LaTeXTranslator.visit_versionmodifiedc             C   s   d S )Nr   )rU   rƒ   r   r   r   Údepart_versionmodified5  s    z&LaTeXTranslator.depart_versionmodifiedc                sÊ   ‡ ‡fdd„}ˆ }xt |tjƒr.|jdd}qW ˆjj d¡}t |tƒrLd S | |¡rd| 	|¡rdd S dˆ krpd S ˆ  
d¡r¬tˆ ƒ}t |tjƒr ˆ d |d kr n|ˆ d ƒ xˆ d D ]}||ƒ q¶W d S )	Nc                st   |   d¡rd S |   d¡rd S ˆ j ˆ ¡}|dkrRtˆ j|d  tjƒrRˆj d¡ ˆj }ˆj ˆj	| |d¡ d S )Nzindex-z	equation-r   r“   rµ   )rù   )
Ú
startswithr>  rÓ   r  r   r   rt   ré   r¸   rú   )rø   rÓ   rù   )rƒ   rU   r   r   Ú
add_target;  s    

z0LaTeXTranslator.visit_target.<locals>.add_targetT)ZascendZstdÚrefuriÚrefidrü   )r  r   ÚtargetÚ	next_noderT   r  Z
get_domainÚHYPERLINK_SUPPORT_NODESZget_enumerable_node_typeZget_numfig_titleru   r   r³  )rU   rƒ   rÑ  rÕ  r  Z	prev_noderø   r   )rƒ   rU   r   Úvisit_target9  s$    

zLaTeXTranslator.visit_targetc             C   s   d S )Nr   )rU   rƒ   r   r   r   Údepart_targetg  s    zLaTeXTranslator.depart_targetc             C   s   | j  d¡ | j  d¡ d S )Nz
\begin{flushright}
z---)rt   ré   )rU   rƒ   r   r   r   Úvisit_attributionk  s    z!LaTeXTranslator.visit_attributionc             C   s   | j  d¡ d S )Nz
\end{flushright}
)rt   ré   )rU   rƒ   r   r   r   Údepart_attributionp  s    z"LaTeXTranslator.depart_attributionNc                sø  ‡fdd„‰ dd„ }|r(t jdtdd | dd	¡s@ˆj d
¡ |d }xˆ|D ]~\}}}}}	d}
|rld}
y.|dkryN‡ fdd„tdd|ƒD ƒ\}}||ƒ||ƒ }}ˆj d|||||
f ¡ W nH tk
r   ˆ tdd|ƒd ƒ}||ƒ}ˆj d|||
f ¡ Y nX n„|dkrx‡ 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rB‡ 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 qP tk
rÎ } zt 	t|ƒ¡ W d d }~X Y qPX qPW | dd	¡sîˆj d"¡ tj‚d S )#Nc                sJ   ˆ   | ¡} |  dd¡} |  dd¡} |  dd¡} |  dd¡} |  d	d
¡} | S )Nz\{z\sphinxleftcurlybrace{}z\}z\sphinxrightcurlybrace{}ú"z""ú@z"@ú!z"!)rÎ   r  )Úvalue)rU   r   r   Úescapev  s    
z+LaTeXTranslator.visit_index.<locals>.escapec             S   s$   t  | ¡}|r| d¡S d|  S d S )Nz\\spxentry{\1}\\spxextra{\2}z\spxentry{%s})ÚEXTRA_REr£   Úexpand)Ústringr£   r   r   r   r    s    

z*LaTeXTranslator.visit_index.<locals>.stylezTLaTeXTranslator.visit_index() optional argument "scre" is deprecated. It is ignored.ra   )rb   ZinlineTrµ   r  r#   z	|spxpagemZsinglec                s   g | ]}ˆ |ƒ‘qS r   r   )r‹   Úx)rß  r   r   rŽ   ”  s    z/LaTeXTranslator.visit_index.<locals>.<listcomp>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   r   rŽ   œ  s    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   r   rŽ   ¡  s    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   r   rŽ   «  s    z\index{%s@%s|see{%s}}r?  c                s   g | ]}ˆ |ƒ‘qS r   r   )r‹   rã  )rß  r   r   rŽ   ¯  s    z!unknown index entry type %s foundz\ignorespaces )rc   rd   r   ru   rt   ré   r   r¤   rÔ   rÕ   r   Ústrr   r@  )rU   rƒ   Zscrer  r  Útyperâ  ÚtidZismainZkey_ÚmZp1Zp2ZP1ZP2r³   ÚPZp3ZP3Úerrr   )rß  rU   r   Úvisit_indext  sb    	

 
 
 

$zLaTeXTranslator.visit_indexc             C   sZ   |   |¡s| j d¡ d| dd¡ ¡ kr:| j | ¡ ¡ |   |¡sP| j d¡ tj‚d S )Nrµ   r¶   Úformatr#   )r¬  rt   ré   ru   r  rX   r   r@  )rU   rƒ   r   r   r   Ú	visit_rawº  s    

zLaTeXTranslator.visit_rawc             C   sŠ  | j s:x2| d¡D ]$}| j }|  j| j||d7  _qW |  |¡sP| j d¡ | dd¡}|s„| d¡r„d| jd  d	 |d  }| j sŽ|sž| j d¡ nè| 	d	¡r| jd d
 |dd …  }| j |  
|¡¡ | j d¡ | jjjr| js| j d|  |¡ ¡ n| j d¡ nh| 	d¡r| d	¡}|dkrP|dd … d }n|dd …  d	d
¡}| j |  
|¡¡ t|ƒrÀt|d dƒrÀd|d  dg ¡krÀ| j d¡ | j d¡ nD| j d¡ | jjjrø| jsø| j d|  |¡ ¡ n| j d¡ n€t|ƒdkrd||d krd| d¡rF| j d|  |¡ ¡ n| j d|  |¡ ¡ tj‚n"| j d|  |¡ ¡ | j d¡ d S )Nrü   )rù   rµ   rÒ  r#   rÓ  r¢   rõ   ú#rö   r“   z\emph{z}}} (%s)z}}}z::docr   r²  zstd-termrr   z\sphinxtermref{z\sphinxcrossref{Z	nolinkurlz\sphinxnolinkurl{%s}z\sphinxurl{%s}z\sphinxhref{%s}{r  )r¸   ru   r»   rt   rú   r¬  ré   ræ   rá   rÐ  rÿ   rT   rË   Zlatex_show_pagerefsr¹   r   r·  r  rÖ   r]  Ú
encode_urir   r@  )rU   rƒ   rø   rù   r±  Z	hashindexr   r   r   Úvisit_referenceÄ  sR    



zLaTeXTranslator.visit_referencec             C   s,   | j  | j ¡ ¡ |  |¡s(| j  d¡ d S )Nrµ   )rt   ré   rá   rë   r¬  )rU   rƒ   r   r   r   Údepart_referenceý  s    
z LaTeXTranslator.depart_referencec             C   sê   |  d¡r"| jd d |d  }n|  dd¡dd …  dd¡}|  dd	¡}t|ƒ t¡ d
d	¡}d|kspd|kr¬| dd¡ dd¡}t|ƒjd|  |¡ d|  |¡ d}nt|ƒd|  |¡  }d|  |¡|f }| j	 
|¡ tj‚d S )NrÓ  rõ   rö   rÒ  r#   r“   rí  r8   z%sz\%sz\{name\}z
\{number\}z{name}z{number}z\nameref{%s}z\ref{%s})r
  r)  z\hyperref[%s]{%s})ru   ræ   r  r   rZ   r   r    rë  r÷   rt   ré   r   r@  )rU   rƒ   rø   r8   rŸ   r4   r   r   r   Úvisit_number_reference  s    
z&LaTeXTranslator.visit_number_referencec             C   s   d S )Nr   )rU   rƒ   r   r   r   Úvisit_download_reference  s    z(LaTeXTranslator.visit_download_referencec             C   s   d S )Nr   )rU   rƒ   r   r   r   Údepart_download_reference  s    z)LaTeXTranslator.depart_download_referencec             C   s   d S )Nr   )rU   rƒ   r   r   r   Úvisit_pending_xref!  s    z"LaTeXTranslator.visit_pending_xrefc             C   s   d S )Nr   )rU   rƒ   r   r   r   Údepart_pending_xref%  s    z#LaTeXTranslator.depart_pending_xrefc             C   s   | j  d¡ d S )Nz\sphinxstyleemphasis{)rt   ré   )rU   rƒ   r   r   r   Úvisit_emphasis)  s    zLaTeXTranslator.visit_emphasisc             C   s   | j  d¡ d S )Nr  )rt   ré   )rU   rƒ   r   r   r   Údepart_emphasis-  s    zLaTeXTranslator.depart_emphasisc             C   s   | j  d¡ |  jd7  _d S )Nz+\sphinxstyleliteralemphasis{\sphinxupquote{r“   )rt   ré   rÂ   )rU   rƒ   r   r   r   Úvisit_literal_emphasis1  s    z&LaTeXTranslator.visit_literal_emphasisc             C   s   | j  d¡ |  jd8  _d S )Nz}}r“   )rt   ré   rÂ   )rU   rƒ   r   r   r   Údepart_literal_emphasis6  s    z'LaTeXTranslator.depart_literal_emphasisc             C   s   | j  d¡ d S )Nz\sphinxstylestrong{)rt   ré   )rU   rƒ   r   r   r   Úvisit_strong;  s    zLaTeXTranslator.visit_strongc             C   s   | j  d¡ d S )Nr  )rt   ré   )rU   rƒ   r   r   r   Údepart_strong?  s    zLaTeXTranslator.depart_strongc             C   s   | j  d¡ |  jd7  _d S )Nz)\sphinxstyleliteralstrong{\sphinxupquote{r“   )rt   ré   rÂ   )rU   rƒ   r   r   r   Úvisit_literal_strongC  s    z$LaTeXTranslator.visit_literal_strongc             C   s   | j  d¡ |  jd8  _d S )Nz}}r“   )rt   ré   rÂ   )rU   rƒ   r   r   r   Údepart_literal_strongH  s    z%LaTeXTranslator.depart_literal_strongc             C   s`   |  ¡ }| j d¡ | d¡rP|| jkrP| j d|  |d ¡ ¡ | j |¡ n| j d¡ d S )Nz\sphinxstyleabbreviation{Zexplanationz} (%s)r  )rX   rt   ré   r]  rè   rá   rÎ   Úadd)rU   rƒ   Zabbrr   r   r   Úvisit_abbreviationM  s    z"LaTeXTranslator.visit_abbreviationc             C   s   | j  | j ¡ ¡ d S )N)rt   ré   rá   rë   )rU   rƒ   r   r   r   Údepart_abbreviationX  s    z#LaTeXTranslator.depart_abbreviationc             C   s
   |   |¡S )N)rø  )rU   rƒ   r   r   r   Úvisit_manpage\  s    zLaTeXTranslator.visit_manpagec             C   s
   |   |¡S )N)rù  )rU   rƒ   r   r   r   Údepart_manpage`  s    zLaTeXTranslator.depart_manpagec             C   s   | j  d¡ d S )Nz\sphinxtitleref{)rt   ré   )rU   rƒ   r   r   r   Úvisit_title_referenced  s    z%LaTeXTranslator.visit_title_referencec             C   s   | j  d¡ d S )Nr  )rt   ré   )rU   rƒ   r   r   r   Údepart_title_referenceh  s    z&LaTeXTranslator.depart_title_referencec             C   sH   t dd„ |D ƒtd}t|ƒtkr.|d t… }| j d|  |¡ ¡ d S )Nc             s   s   | ]}|d    ¡ V  qdS )r   N)rX   )r‹   Zsubnoder   r   r   r´   n  s    z8LaTeXTranslator.visit_thebibliography.<locals>.<genexpr>)Úkeyz#
\begin{sphinxthebibliography}{%s}
)rÜ   rÖ   ÚMAX_CITATION_LABEL_LENGTHrt   ré   rÎ   )rU   rƒ   Zlongest_labelr   r   r   Úvisit_thebibliographyl  s
    z%LaTeXTranslator.visit_thebibliographyc             C   s   | j  d¡ d S )Nz\end{sphinxthebibliography}
)rt   ré   )rU   rƒ   r   r   r   Údepart_thebibliographyv  s    z&LaTeXTranslator.depart_thebibliographyc             C   s8   |d   ¡ }| j d|  |¡|d |d d f ¡ d S )Nr   z\bibitem[%s]{%s:%s}r  rü   )rX   rt   ré   rÎ   )rU   rƒ   Úlabelr   r   r   Úvisit_citationz  s    zLaTeXTranslator.visit_citationc             C   s   d S )Nr   )rU   rƒ   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¸   rt   ré   r   r@  )rU   rƒ   r   r   r   Úvisit_citation_reference„  s    z(LaTeXTranslator.visit_citation_referencec             C   s   d S )Nr   )rU   rƒ   r   r   r   Údepart_citation_referenceŒ  s    z)LaTeXTranslator.depart_citation_referencec             C   s2   |  j d7  _ | jr"| j d¡ n| j d¡ d S )Nr“   z*\sphinxstyleliteralintitle{\sphinxupquote{z\sphinxcode{\sphinxupquote{)rÂ   r¸   rt   ré   )rU   rƒ   r   r   r   Úvisit_literal  s    zLaTeXTranslator.visit_literalc             C   s   |  j d8  _ | j d¡ d S )Nr“   z}})rÂ   rt   ré   )rU   rƒ   r   r   r   Údepart_literal˜  s    zLaTeXTranslator.depart_literalc             C   s
   t j‚d S )N)r   r@  )rU   rƒ   r   r   r   Úvisit_footnote_reference  s    z(LaTeXTranslator.visit_footnote_referencec             C   s   | j  d¡ d S )Nz\sphinxfootnotemark[)rt   ré   )rU   rƒ   r   r   r   Úvisit_footnotemark¡  s    z"LaTeXTranslator.visit_footnotemarkc             C   s   | j  d¡ d S )Nú])rt   ré   )rU   rƒ   r   r   r   Údepart_footnotemark¥  s    z#LaTeXTranslator.depart_footnotemarkc             C   s    |d   ¡ }| j d| ¡ d S )Nr   z2%%
\begin{footnotetext}[%s]\sphinxAtStartFootnote
)rX   rt   ré   )rU   rƒ   r)  r   r   r   Úvisit_footnotetext©  s    z"LaTeXTranslator.visit_footnotetextc             C   s   | j  d¡ d S )Nz"%
\end{footnotetext}\ignorespaces )rt   ré   )rU   rƒ   r   r   r   Údepart_footnotetext¯  s    z#LaTeXTranslator.depart_footnotetextc             C   s   d S )Nr   )rU   rƒ   r   r   r   Úvisit_captioned_literal_block´  s    z-LaTeXTranslator.visit_captioned_literal_blockc             C   s   d S )Nr   )rU   rƒ   r   r   r   Údepart_captioned_literal_block¸  s    z.LaTeXTranslator.depart_captioned_literal_blockc       	      C   sÞ  |j | ¡ kr,|  jd7  _| j d¡ n®|  |¡}t|jtƒrR||  |j¡7 }|rp| j	sp| j d| d ¡ | 
dd¡}| 
dd¡}| 
d	i ¡}| 
d
d¡|d< || jjjkr¾| jjj}ni }| jj|j |f||| jd |jfdœ|—Ž}| dd¡}| j	r| j d¡ | dd¡}n2| jrBd| j_d| j_| dd¡}n| dd¡}| ¡ d d… }| jrx| j	sx|d7 }n|d7 }t| 
dg ¡ƒdd… }|r®| j d| ¡ | j d| d ¡ |rÔ| j d¡ tj‚d S )Nr“   z\begin{sphinxalltt}
z
\def\sphinxLiteralBlockLabel{r  rg   rP   ÚlinenosFÚhighlight_argsZforce_highlightingZforcerõ   )Úoptsr  r;  u   â‚¬z@texteuro[]z 
\sphinxSetupCodeBlockInFootnotez\begin{Verbatim}z\begin{sphinxVerbatim}Tz\begin{sphinxVerbatimintable}iòÿÿÿz\end{sphinxVerbatimintable}z\end{sphinxVerbatim}Zhl_linesz
\fvset{hllines={, %s,}}%%rµ   z\sphinxresetverbatimhllines
)Z	rawsourcerX   rÃ   rt   ré   rþ   r  r>  rÄ  rº   ru   rT   rË   Úhighlight_languageZhighlight_optionsrà   Zhighlight_blockræ   rA  r  rœ   ry   r{   Úrstriprä  r   r@  )	rU   rƒ   rý   Zlangr  r  r  ZhlcodeZhllinesr   r   r   Úvisit_literal_block¼  sR    


z#LaTeXTranslator.visit_literal_blockc             C   s   | j  d¡ |  jd8  _d S )Nz
\end{sphinxalltt}
r“   )rt   ré   rÃ   )rU   rƒ   r   r   r   Údepart_literal_blockö  s    z$LaTeXTranslator.depart_literal_blockc             C   s   | j  d¡ d S )Nz\item[] )rt   ré   )rU   rƒ   r   r   r   Ú
visit_lineý  s    zLaTeXTranslator.visit_linec             C   s   | j  d¡ d S )Nrµ   )rt   ré   )rU   rƒ   r   r   r   Údepart_line	  s    zLaTeXTranslator.depart_linec             C   s:   t |jtjƒr| j d¡ n| j d¡ | jr6d| j_d S )Nz0\item[]
\begin{DUlineblock}{\DUlineblockindent}
z
\begin{DUlineblock}{0em}
T)r  r>  r   Z
line_blockrt   ré   rœ   ry   )rU   rƒ   r   r   r   Úvisit_line_block	  s
    z LaTeXTranslator.visit_line_blockc             C   s   | j  d¡ d S )Nz\end{DUlineblock}
)rt   ré   )rU   rƒ   r   r   r   Údepart_line_block	  s    z!LaTeXTranslator.depart_line_blockc             C   sZ   d}t |jƒdkr8|jd }t|tjƒs4t|tjƒr8d}|sV| j d¡ | jrVd| j_	d S )Nr   r“   z\begin{quote}
T)
rÖ   r$  r  r   Úbullet_listr‹  rt   ré   rœ   ry   )rU   rƒ   ÚdonerJ  r   r   r   Úvisit_block_quote	  s    
z!LaTeXTranslator.visit_block_quotec             C   sL   d}t |jƒdkr8|jd }t|tjƒs4t|tjƒr8d}|sH| j d¡ d S )Nr   r“   z\end{quote}
)rÖ   r$  r  r   r#  r‹  rt   ré   )rU   rƒ   r$  rJ  r   r   r   Údepart_block_quote#	  s    
z"LaTeXTranslator.depart_block_quotec             C   s   | j d r| j d¡ d S )Nrõ   z, )rá   rt   ré   )rU   rƒ   r   r   r   Úvisit_option0	  s    
zLaTeXTranslator.visit_optionc             C   s   | j d  d7  < d S )Nrõ   r“   )rá   )rU   rƒ   r   r   r   Údepart_option6	  s    zLaTeXTranslator.depart_optionc             C   s   | j  | dd¡¡ dS )z2The delimiter betweeen an option and its argument.Z	delimiterr<  N)rt   ré   ru   )rU   rƒ   r   r   r   Úvisit_option_argument;	  s    z%LaTeXTranslator.visit_option_argumentc             C   s   d S )Nr   )rU   rƒ   r   r   r   Údepart_option_argument@	  s    z&LaTeXTranslator.depart_option_argumentc             C   s   | j  d¡ | j d¡ d S )Nz\item [r   )rt   ré   rá   )rU   rƒ   r   r   r   Úvisit_option_groupD	  s    z"LaTeXTranslator.visit_option_groupc             C   s   | j  ¡  | j d¡ d S )Nz] )rá   rë   rt   ré   )rU   rƒ   r   r   r   Údepart_option_groupJ	  s    
z#LaTeXTranslator.depart_option_groupc             C   s   | j  d¡ | jrd| j_d S )Nz\begin{optionlist}{3cm}
T)rt   ré   rœ   ry   )rU   rƒ   r   r   r   Úvisit_option_listO	  s    z!LaTeXTranslator.visit_option_listc             C   s   | j  d¡ d S )Nz\end{optionlist}
)rt   ré   )rU   rƒ   r   r   r   Údepart_option_listU	  s    z"LaTeXTranslator.depart_option_listc             C   s   d S )Nr   )rU   rƒ   r   r   r   Úvisit_option_list_itemY	  s    z&LaTeXTranslator.visit_option_list_itemc             C   s   d S )Nr   )rU   rƒ   r   r   r   Údepart_option_list_item]	  s    z'LaTeXTranslator.depart_option_list_itemc             C   s@   |  ¡ }|  jd7  _| j |  |¡¡ |  jd8  _tj‚d S )Nr“   )rX   rÂ   rt   ré   rÎ   r   r@  )rU   rƒ   Zostringr   r   r   Úvisit_option_stringa	  s
    z#LaTeXTranslator.visit_option_stringc             C   s   | j  d¡ d S )Nr<  )rt   ré   )rU   rƒ   r   r   r   Úvisit_descriptioni	  s    z!LaTeXTranslator.visit_descriptionc             C   s   d S )Nr   )rU   rƒ   r   r   r   Údepart_descriptionm	  s    z"LaTeXTranslator.depart_descriptionc             C   s   | j  d¡ d S )Nz	$^{\text{)rt   ré   )rU   rƒ   r   r   r   Úvisit_superscriptq	  s    z!LaTeXTranslator.visit_superscriptc             C   s   | j  d¡ d S )Nz}}$)rt   ré   )rU   rƒ   r   r   r   Údepart_superscriptu	  s    z"LaTeXTranslator.depart_superscriptc             C   s   | j  d¡ d S )Nz	$_{\text{)rt   ré   )rU   rƒ   r   r   r   Úvisit_subscripty	  s    zLaTeXTranslator.visit_subscriptc             C   s   | j  d¡ d S )Nz}}$)rt   ré   )rU   rƒ   r   r   r   Údepart_subscript}	  s    z LaTeXTranslator.depart_subscriptc             C   s¼   |  dg ¡}|dggkr2| j d¡ | j d¡ n†|dggkrX| j d¡ | j d¡ n`|dggkr~| j d¡ | j d¡ n:|r¬| js¬| j d	d
 |¡ ¡ | j d¡ n| j d¡ d S )Nrr   Zmenuselectionz\sphinxmenuselection{r  Zguilabelz\sphinxguilabel{Zacceleratorz\sphinxaccelerator{z\DUrole{%s}{r°   r#   )ru   rt   ré   rá   r¸   r‘   )rU   rƒ   rr   r   r   r   Úvisit_inline	  s    
zLaTeXTranslator.visit_inlinec             C   s   | j  | j ¡ ¡ d S )N)rt   ré   rá   rë   )rU   rƒ   r   r   r   Údepart_inline“	  s    zLaTeXTranslator.depart_inlinec             C   s   d S )Nr   )rU   rƒ   r   r   r   Úvisit_generated—	  s    zLaTeXTranslator.visit_generatedc             C   s   d S )Nr   )rU   rƒ   r   r   r   Údepart_generated›	  s    z LaTeXTranslator.depart_generatedc             C   s   d S )Nr   )rU   rƒ   r   r   r   Úvisit_compoundŸ	  s    zLaTeXTranslator.visit_compoundc             C   s   d S )Nr   )rU   rƒ   r   r   r   Údepart_compound£	  s    zLaTeXTranslator.depart_compoundc             C   s   d S )Nr   )rU   rƒ   r   r   r   Úvisit_container§	  s    zLaTeXTranslator.visit_containerc             C   s   d S )Nr   )rU   rƒ   r   r   r   Údepart_container«	  s    z LaTeXTranslator.depart_containerc             C   s   d S )Nr   )rU   rƒ   r   r   r   Úvisit_decoration¯	  s    z LaTeXTranslator.visit_decorationc             C   s   d S )Nr   )rU   rƒ   r   r   r   Údepart_decoration³	  s    z!LaTeXTranslator.depart_decorationc             C   s
   t j‚d S )N)r   r@  )rU   rƒ   r   r   r   Úvisit_header¹	  s    zLaTeXTranslator.visit_headerc             C   s
   t j‚d S )N)r   r@  )rU   rƒ   r   r   r   Úvisit_footer½	  s    zLaTeXTranslator.visit_footerc             C   s
   t j‚d S )N)r   r@  )rU   rƒ   r   r   r   Úvisit_docinfoÁ	  s    zLaTeXTranslator.visit_docinfoc             C   sJ   t |ƒ t¡}| jr(| dd¡ dd¡}| jrF| dd¡}| dd¡}|S )	Nrµ   z~\\
r<  rd  z--z-{-}z''z'{'})r   rZ   r   rÁ   r  rÂ   )rU   rŸ   r   r   r   rÎ   Ç	  s    zLaTeXTranslator.encodec             C   s   |   |¡ dd¡S )Nz\textasciitilde{}rd  )rÎ   r  )rU   rŸ   r   r   r   rî  Ó	  s    zLaTeXTranslator.encode_uric             C   s   |   | ¡ ¡}| j |¡ d S )N)rÎ   rX   rt   ré   )rU   rƒ   rŸ   r   r   r   Ú
visit_TextØ	  s    zLaTeXTranslator.visit_Textc             C   s   d S )Nr   )rU   rƒ   r   r   r   Údepart_TextÝ	  s    zLaTeXTranslator.depart_Textc             C   s
   t j‚d S )N)r   r@  )rU   rƒ   r   r   r   Úvisit_commentá	  s    zLaTeXTranslator.visit_commentc             C   s
   t j‚d S )N)r   r@  )rU   rƒ   r   r   r   Ú
visit_metaå	  s    zLaTeXTranslator.visit_metac             C   s   d S )Nr   )rU   rƒ   r   r   r   Úvisit_system_messageê	  s    z$LaTeXTranslator.visit_system_messagec             C   s   | j  d¡ d S )Nrµ   )rt   ré   )rU   rƒ   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¸   rt   ré   rX   r   r@  )rU   rƒ   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jƒ¡ t	j
‚d S )Nr	  zequation:%s:%sr  Znowrapz
\label{%s}r   )Úwrap_displaymath)ru   rt   ré   rX   Zsphinx.util.mathrL  rT   rË   Zmath_number_allr   r@  )rU   rƒ   r	  rL  r   r   r   Úvisit_math_blockú	  s    

z LaTeXTranslator.visit_math_blockc          
   C   s    d|d |d f }| j jj}|rŒy d| }| j |j|d¡ W qœ tk
rˆ } z(tjt	dƒ||d | j d| ¡ W d d }~X Y qœX n| j d| ¡ d S )	Nzequation:%s:%sr  rÔ  z\ref{%s})r)  zInvalid math_eqref_format: %r)r;  z
\eqref{%s})
rT   rË   Zmath_eqref_formatrt   ré   rë  r´  rÔ   rÕ   r   )rU   rƒ   r	  Zeqref_formatÚrefÚexcr   r   r   Úvisit_math_reference
  s    
$z$LaTeXTranslator.visit_math_referencec             C   s   d S )Nr   )rU   rƒ   r   r   r   Údepart_math_reference
  s    z%LaTeXTranslator.depart_math_referencec             C   s   t d|jj ƒ‚d S )NzUnknown node: )ÚNotImplementedErrorr`   rI   )rU   rƒ   r   r   r   Úunknown_visit
  s    zLaTeXTranslator.unknown_visitc             C   s   t jdtdd g S )Nz(LaTeXWriter.footnotestack is deprecated.ra   )rb   )rc   rd   r   )rU   r   r   r   Úfootnotestack$
  s    
zLaTeXTranslator.footnotestackc             C   s   t jdtdd g S )Nz)LaTeXTranslator.bibitems() is deprecated.ra   )rb   )rc   rd   r   )rU   r   r   r   Úbibitems+
  s    
zLaTeXTranslator.bibitemsc             C   s   t jdtdd dS )Nz9LaTeXTranslator.in_container_literal_block is deprecated.ra   )rb   r   )rc   rd   r   )rU   r   r   r   Úin_container_literal_block2
  s    
z*LaTeXTranslator.in_container_literal_blockc             C   s   t jdtdd tƒ S )Nz/LaTeXTranslator.next_section_ids is deprecated.ra   )rb   )rc   rd   r   rç   )rU   r   r   r   Únext_section_ids9
  s    
z LaTeXTranslator.next_section_idsc             C   s   t jdtdd i S )Nz1LaTeXTranslator.next_hyperlink_ids is deprecated.ra   )rb   )rc   rd   r   )rU   r   r   r   Únext_hyperlink_ids@
  s    
z"LaTeXTranslator.next_hyperlink_idsc             C   s   t jdtdd d S )Nz3LaTeXTranslator.push_hyperlink_ids() is deprecated.ra   )rb   )rc   rd   r   )rU   Úfigtyperü   r   r   r   Úpush_hyperlink_idsG
  s    
z"LaTeXTranslator.push_hyperlink_idsc             C   s   t jdtdd tƒ S )Nz2LaTeXTranslator.pop_hyperlink_ids() is deprecated.ra   )rb   )rc   rd   r   rç   )rU   rY  r   r   r   Úpop_hyperlink_idsM
  s    
z!LaTeXTranslator.pop_hyperlink_idsc             C   s"   t jdtdd | jjjtjggS )Nz-LaTeXTranslator.hlsettingstack is deprecated.ra   )rb   )rc   rd   r   rT   rË   r  ÚsysÚmaxsize)rU   r   r   r   ÚhlsettingstackS
  s    
zLaTeXTranslator.hlsettingstackc             C   sH   t jdtdd x2| jjjD ]$}|| jkrtdƒ}t 	|| ¡ qW d S )Nz%check_latex_elements() is deprecated.ra   )rb   z5Unknown configure key: latex_elements[%r] is ignored.)
rc   rd   r   rT   rË   rÌ   rÈ   r   rÔ   rÕ   )rU   r  Úmsgr   r   r   Úcheck_latex_elementsZ
  s    

z$LaTeXTranslator.check_latex_elements)TT)F)r¡   )N(  rI   rJ   rK   rB   r¶  rñ   rS   rê   rì   rí   rï   rÍ   rX   rú   rþ   rÿ   r   r÷   rÝ   rÞ   rß   ró   rô   r   r!  r"  r+  r,  r-  r.  r/  r0  r1  r2  Zvisit_sidebarZdepart_sidebarr3  r4  r5  r6  r7  r8  r9  r:  rD  rE  rF  rG  rH  rI  rK  rL  rN  rO  rP  rQ  rR  rS  rT  rU  rV  rW  rX  rY  rZ  r[  r^  r_  r`  ra  rb  rc  re  rf  rg  rh  ri  rj  rk  rl  rm  ro  rq  rs  rt  ru  rv  rw  rx  ry  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¢  Zvisit_field_nameZdepart_field_nameZvisit_field_bodyZdepart_field_bodyr£  r¤  r¥  r¦  r§  r¨  r©  rª  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  r  r
  r  r  r  r  r  r  r  r  r  r  r  r  r  r  Zvisit_doctest_blockZdepart_doctest_blockr  r   r!  r"  r%  r&  r'  r(  r)  r*  r+  r,  r-  r.  r/  r0  r1  r2  r3  r4  r5  r6  r7  r8  r9  r:  r;  r<  r=  r>  r?  r@  rA  rB  rC  rD  rÎ   rî  rE  rF  rG  rH  rI  rJ  rK  rM  rP  rQ  rS  r›   rT  rU  rV  rW  rX  rZ  r[  r^  r`  r   r   r   r   rª   È  s   k	&+
	2				&"
%
R!








.F
9
:
rª   )ÚURI_SCHEMESÚShowUrlsTransform)rÖ  rÄ  rî   )r¡   )KrL   r   r\  rc   Úcollectionsr   Úosr   Zdocutilsr   r   Zdocutils.writers.latex2er   Zsixr   r   rð   r	   r
   Zsphinx.deprecationr   Zsphinx.errorsr   Zsphinx.localer   r   r   Zsphinx.utilr   r   Zsphinx.util.i18nr   Zsphinx.util.nodesr   r   Zsphinx.util.templater   Zsphinx.util.texescaper   r   Zdocutils.utils.romanr   ÚImportErrorZromanZ	getLoggerrI   rÔ   re   r  rÏ   rŽ  rÆ   rÊ   Úcompilerà  r#  rH   rM   rR   rO   r\   Úobjectrp   r˜   r    r©   r·   rª   Z sphinx.builders.latex.transformsra  rb  Zsphinx.builders.latex.nodesrÖ  rÄ  rî   r   r   r   r   Ú<module>   s   



4y&
                 2