403Webshell
Server IP : 217.160.0.135  /  Your IP : 216.73.217.85
Web Server : Apache
System : Linux www 6.18.52-i1-ampere #1203 SMP Mon Sep 14 18:29:59 CEST 2026 aarch64
User : sws1074145052 ( 1074145052)
PHP Version : 8.3.32
Disable Function : NONE
MySQL : OFF  |  cURL : ON  |  WGET : ON  |  Perl : ON  |  Python : OFF  |  Sudo : OFF  |  Pkexec : OFF
Directory :  /lib/python3/dist-packages/docutils/writers/latex2e/__pycache__/

Upload File :
current_dir [ Writeable ] document_root [ Writeable ]

 

Command :


[ Back ]     

Current File : /lib/python3/dist-packages/docutils/writers/latex2e/__pycache__/__init__.cpython-311.pyc
�

�M�c����dZdZddlZddlZddlZddlmZddlZ	ddlZn#e	$rddl
mcmZYnwxYwddlZddlm
Z
mZmZmZmZddlmZddlmZmZGd�d	ej��ZGd
�d��ZGd�d
e��ZGd�d��Zde_de_de_de_de_de_ de_!de_"de_#de_$de_%de_&de_'d�Z(ej)�*ej+ej)�,e-����d��Z.e/e.d� ��5Z0e0D]uZ1e1�2d!��Z1e1�3d"��s�-e1�4d#��Z5e5s�Ee(e0��Z6e5d$vre6�2��Z6e7ee5e6���v	ddd��n#1swxYwYGd%�d&��Z8Gd'�d(��Z9Gd)�d*��Z:Gd+�d,ej;��Z<dS)-zLaTeX2e document tree Writer.�reStructuredText�N)�url2pathname)�frontend�nodes�	languages�writers�utils)�
writer_aux)�pick_math_environment�unichar2texc��eZdZdZ	dZejej�	e
����ZdZgd�Z
ddgddgd	d
if�ddgd	d
if�ddgddgdddd�f�ddgddejd�f�ddgddejd�f�ddggd �d!dd"�f�d#d$gd%d&d'ejd(�f�d)d*gd&d+ejd,�f�d-d.gd/dd0�f�d1d2gd3dejd�f�d4d5gd6ejd7gd8�f�d9d:gd	eif�d;ezd<ged=d>�f�d?d@gdAdejd�f�dBdCgdDdejd�f�dEdFgd3dejd�f�dGdHgdIdejd�f�dJdKgd3dejd�f�dLdMgdNdejd�f�dOdPgd3dejd�f�dQdRgd	dSif�dTdUgd	d%if�dVdWgd3dejd�f�dXdYgddZd[�f�d\d]gddejd�f�d^d_gdd`d[�f�dadbgdcddd>�f�dedfgd	d%if�dgdhgdejdi�f�djdkgdlgddmeje
dn�f�dodpgd	d%if�dqdrgd	dsif�dtdugd	d%if�dvdwgd	d%if�dxdygd3dejd�f�dzd{gd|dejd�f�d}d~gddejd�f�dd�gd�dejd�f�d�d�gdAdejd�f�RfZd�d�iZd�Zd�Zd�Zed�zZdZ	d��Zd��Zd��Zd��ZdS)��Writer)�latex�latex2ezdefault.texzg% PDF Standard Fonts
\usepackage{mathptmx} % Times
\usepackage[scaled=.90]{helvet}
\usepackage{courier})�booktabs�
borderless�colwidths-auto�nolines�standardzLaTeX-Specific OptionsNz1Specify LaTeX documentclass.  Default: "article".z--documentclass�default�articlezcSpecify document options.  Multiple options can be given, separated by commas.  Default: "a4paper".z--documentoptions�a4paperz\Format for footnote references: one of "superscript" or "brackets".  Default: "superscript".z--footnote-references�superscript�bracketsz<format>�trim_footnote_reference_space)�choicesr�metavar�	overridesz1Use \cite command for citations. (future default)z--use-latex-citations�
store_true)r�action�	validatorzZUse figure floats for citations (might get mixed with real figures). (provisional default)z--figure-citations�use_latex_citations�store_false)�destr r!zyFormat for block quote attributions: one of "dash" (em-dash prefix), "parentheses"/"parens", or "none".  Default: "dash".z
--attribution��dash�parentheses�parens�noner&)rrrz�Specify LaTeX packages/stylesheets. A style is referenced with "\usepackage" if extension is ".sty" or omitted and with "\input" else.  Overrides previous --stylesheet and --stylesheet-path settings.z--stylesheet�z<file[,file,...]>�stylesheet_path)rrrr!z�Comma separated list of LaTeX packages/stylesheets. Relative paths are expanded if a matching file is found in the --stylesheet-dirs. With --link-stylesheet, the path is rewritten relative to the output *.tex file. z--stylesheet-path�
stylesheet)rrr!z7Link to the stylesheet(s) in the output file. (default)z--link-stylesheet�embed_stylesheet)r$r z^Embed the stylesheet(s) in the output file. Stylesheets must be accessible during processing. z--embed-stylesheetFz�Comma-separated list of directories where stylesheets are found. Used by --stylesheet-path when expanding relative path arguments. Default: ".".z--stylesheet-dirsz<dir[,dir,...]>�.)rr!rzlCustomization by LaTeX code in the preamble. Default: select PDF standard fonts (Times, Helvetica, Courier).z--latex-preamblez)Specify the template file. Default: "%s".z
--templatez<file>)rrz%Table of contents by LaTeX. (default)z--use-latex-tocTz5Table of contents by Docutils (without page numbers).z--use-docutils-toc�
use_latex_tocz*Add parts on top of the section hierarchy.z--use-part-sectionz<Attach author and date to the document info table. (default)z--use-docutils-docinfo�use_latex_docinfoz-Attach author and date to the document title.z--use-latex-docinfoz$Typeset abstract as topic. (default)z--topic-abstract�use_latex_abstractz;Use LaTeX abstract environment for the document's abstract.z--use-latex-abstractzSColor of any hyperlinks embedded in text. Default: "blue" (use "false" to disable).z--hyperlink-color�bluez-Additional options to the "hyperref" package.z--hyperref-optionszJEnable compound enumerators for nested enumerated lists (e.g. "1.2.a.ii").z--compound-enumeratorszCDisable compound enumerators for nested enumerated lists. (default)z--no-compound-enumerators�compound_enumerators)r r$zzEnable section ("." subsection ...) prefixes for compound enumerators.  This has no effect without --compound-enumerators.z --section-prefix-for-enumeratorsz<Disable section prefixes for compound enumerators. (default)z#--no-section-prefix-for-enumerators�section_prefix_for_enumeratorszeSet the separator between section number and enumerator for compound enumerated lists.  Default: "-".z--section-enumerator-separator�-z<char>zdWhen possible, use the specified environment for literal-blocks. Default: "" (fall back to "alltt").z--literal-block-envz4Deprecated alias for "--literal-block-env=verbatim".z--use-verbatim-when-possible)r r!z�Table style. "standard" with horizontal and vertical lines, "booktabs" (LaTeX booktabs style) only horizontal lines above and below the table and below the header, or "borderless". Default: "standard"z
--table-styler�append)rrr r!rzLaTeX graphicx package option. Possible values are "dvipdfmx", "dvips", "dvisvgm", "luatex", "pdftex", and "xetex".Default: "".z--graphicx-optionz�LaTeX font encoding. Possible values are "", "T1" (default), "OT1", "LGR,T1" or any other combination of options to the `fontenc` package. z--font-encoding�T1z�Per default the latex-writer puts the reference title into hyperreferences. Specify "ref*" or "pageref*" to get the section number or the page number.z--reference-labelzVSpecify style and database for bibtex, for example "--use-bibtex=mystyle,mydb1,mydb2".z--use-bibtexzJUse legacy functions with class value list for \DUtitle and \DUadmonition.z--legacy-class-functionszjUse \DUrole and "DUclass" wrappers for class values. Place admonition content in an environment. (default)z--new-class-functions�legacy_class_functionszLUse legacy algorithm to determine table column widths. (provisional default)z--legacy-column-widthszDUse new algorithm to determine table column widths. (future default)z--new-column-widths�legacy_column_widthszsFootnotes with numbers/symbols by Docutils. (default) (The alternative, --latex-footnotes, is not implemented yet.)z--docutils-footnotes�
sectnum_depthrzlatex2e writer)rz
latex writers)�head_prefix�requirements�latex_preambler,�	fallbacks�pdfsetup�	titledata)�title�subtitle�body_pre_docinfo�docinfo�
dedication�abstract�bodyc�\�tj�|��t|_dS�N)rr�__init__�LaTeXTranslator�translator_class��selfs �C/usr/lib/python3/dist-packages/docutils/writers/latex2e/__init__.pyrJzWriter.__init__�s&�������%�%�%� /�����c�\�tj�|��tjgzSrI)rr�get_transformsr
�AdmonitionsrMs rOrRzWriter.get_transformss*���~�,�,�T�2�2��)�6��	rPc	���|�|j��}|j�|��|jD]!}t	||t||�����"|jjj}	t|d���5}|�	��}ddd��n#1swxYwYnr#t$retj�
|j|��}t|d���5}|�	��}ddd��n#1swxYwYYnwxYw|���t!j|���|j��|_dS)N�utf-8��encoding)rL�document�	walkabout�visitor_attributes�setattr�getattr�settings�template�open�read�IOError�os�path�join�default_template_path�assemble_parts�string�Template�
substitute�parts�output)rN�visitor�part�templatepath�fpr^s      rO�	translatezWriter.translate	s����'�'��
�6�6���
����(�(�(��+�	8�	8�D��D�$���� 6� 6�7�7�7�7��}�-�6��	%��l�W�5�5�5�
%���7�7�9�9��
%�
%�
%�
%�
%�
%�
%�
%�
%�
%�
%����
%�
%�
%�
%����	%�	%�	%��7�<�<��(B�(4�6�6�L��l�W�5�5�5�
%���7�7�9�9��
%�
%�
%�
%�
%�
%�
%�
%�
%�
%�
%����
%�
%�
%�
%���	%����	
�������o�h�/�/�:�:�4�:�F�F����s[�0B.�B"�B.�"B&�&B.�)B&�*B.�.AD�.D�D�D	�D�D	�D�Dc�.�tj�|��|jD]m}t	||��}||jvr5|r|�d��d�|��|j|<�Pd�|��|j|<�ndS)z9Assemble the `self.parts` dictionary of output fragments.r*�
N)	rrrfrZr\�
head_partsr6rdrj)rNrm�liness   rOrfzWriter.assemble_partss�����%�%�d�+�+�+��+�	2�	2�D��D�$�'�'�E��t��&�&��%��L�L��$�$�$�#'�9�9�U�#3�#3��
�4� � �$&�7�7�5�>�>��
�4� � �	2�	2rP)�__name__�
__module__�__qualname__�	supported�default_template�docutils�_datadirrbrc�abspath�__file__re�default_preamble�table_style_valuesr�validate_boolean�validate_comma_separated_list�
settings_spec�settings_defaults�config_section�config_section_dependenciesrsrZrkrJrRrprf�rPrOrr sN������$�I�'�$��-�H�-�b�g�o�o�h�.G�.G�H�H��0��1�1�1��
	!��{	�
=��
��i�
"�
$�{	�6��
��i�
"�
$�{	�1�"�
#�$�j�1�m� �7�9�9�
:�{	�?�"�
#��l� �1�3�3�
4�{	�"G��
 �(�M� �1�3�3�
4�#{	�,J��
�?�?�?���5�5�
6�-{	�6M��
��%8�)� �>�@�@�
A�7{	�FF��
�)�� �>�@�@�
A�G{	�TD��
�%��
?�
?�
A�U{	�Z?��
 ��|� �1�3�3�
4�[{	�d��
�'� �>��e���	
�e{	�rL��
��&�
'�
)�s{	�z6�8H�
H��.�&�8�
<�
<�
>�{{	�@2��
��l� �1�3�3�
4�A{	�HB��
 �"�m� �1�3�3�
4�I{	�P7��
 ��|� �1�3�3�
4�Q{	�XI�#�
$�&�-� �1�3�3�
4�Y{	�`:� �
!��|� �1�3�3�
4�a{	�h1��
�'�=� �1�3�3�
4�i{	�pH�!�
"��|� �1�3�3�
4�q{	�x6��
�)�V�!4�
6�y{	�~:��
 �9�b�/�
3�{	�B�#�
$��|� �1�3�3�
4�C{	�L�&�
'�"�,B�
C�
C�
E�M{	�TM�-�
.��l� �1�3�3�
4�U{	�^I�0�
1�"�,L�
M�
M�
O�_{	�d:�+�
,��h�
/�
/�
1�e{	�l0� �
!��b�/�
�m{	�tA�)�
*�!� �1�3�3�
4�u{	�| ��
�!�l� �� �>�(�	*�*�	
+�}{	�P��
��b�/�
�Q{	�\H��
��d�
�	
�]{	�f'��
��b�/�	
�g{	�p0��
��b�/�
�q{	�x*�%�
&��!� �1�3�3�
4�y{	�DB�"�
#�+�"� �1�3�3�
4�E{	�P"�#�
$��!� �1�3�3�
4�Q{	�\� �
!�)�"� �1�3�3�
4�]{	�jJ�!�
"��!� �1�3�3�
4�k{	�{	�
�M�B)�!�,��%�N�">��F�J�#�'I�I���F�.�0�0�0�
���G�G�G�(2�2�2�2�2rPrc��eZdZdZidd�dd�dd�dd	�d
d�dd
�dd�dd�dd�dd�dd�dd�dd�dd�dd�d d!�d"d#�id$d%�d&d'�d(d)�d*d+�d,d-�d.d/�d0d1�d2d3�d4d5�d6d7�d8d9�d:d;�d<d=�d>d?�d@dA�dBdC�dDdE��idFdG�dHdI�dJdK�dLdM�dNdO�dPdQ�dRdS�dTdU�dVdW�dXdY�dZd[�d\d]�d^d_�d`da�dbdc�ddd_�dedf��idgdh�didj�dkdl�dmdn�dodp�dqdr�dsdt�dudv�dwdx�dydz�d{dr�d|dt�d}d~�dd��d�d��d�d���Zd��e���D��Zd�Zd�d�d��Zd�d��Zd��Z	d��Z
d��Zd�S)��BabelzLanguage specifics for LaTeX.�af�	afrikaans�ar�arabic�bg�	bulgarian�br�breton�ca�catalan�cs�czech�cy�welsh�da�danish�de�ngermanzde-1901�germanzde-AT�	naustrianz
de-AT-1901�austrian�dsb�lowersorbian�el�greekz
el-polyton�polutonikogreek�en�englishzen-AU�
australianzen-CA�canadianzen-GB�britishzen-NZ�
newzealandzen-US�american�eo�	esperanto�es�spanish�et�estonian�eu�basque�fi�finnish�fr�frenchzfr-CA�canadien�ga�irishz
grc-ibycus�ibycus�gl�galician�he�hebrew�hr�croatian�hsb�uppersorbian�hu�magyar�ia�interlingua�id�bahasai�is�	icelandic�it�italian�ja�japanese�kk�kazakh�la�latin�lt�
lithuanian�lv�latvian�mn�	mongolian�ms�bahasam�nb�norsk�nl�dutch�nn�nynorsk�no�pl�polish�pt�portugeszpt-BR�brazil�ro�romanian�ru�russian�se�saminzsh-Cyrl�serbianczsh-Latn�serbian�sk�slovak�sl�slovene�sq�albanian�srzsr-Latn�sv�swedish�tr�turkish�uk�	ukrainian�vi�vietnamc�>�i|]\}}|���|��Sr�)�lower)�.0�k�vs   rO�
<dictcomp>zBabel.<dictcomp>�s&��F�F�F�t�q�!�a�g�g�i�i��F�F�FrPz,Language "%s" not supported by LaTeX (babel)z.<>)r�r�Nc�V�||_|�|��|_i|_dSrI)�reporter�
language_name�language�otherlanguages)rN�
language_coders   rOrJzBabel.__init__�s,�� ��
��*�*�=�9�9��
� ����rPc���t�j�����}|j�jpd��dd�|��zg�_g}d��fd�|D����D]}||vr|�|���|r0�j�dd�|��z��d|vr�j�d��d	|vr�j�gd
���d|vr�j�gd���|d
dkr6d�j���vr�xjddd�jzgz
c_d��j��S)z7Return the babel call with correct options and settingsr�z\usepackage[%s]{babel}�,r*c3�N�K�|]}�j�|d��V�� dS)r*N)�active_chars�get)r��lngrNs  �rO�	<genexpr>z!Babel.__call__.<locals>.<genexpr>�s6�����M�M�C��*�.�.�s�B�7�7�M�M�M�M�M�MrPz#\AtBeginDocument{\shorthandoff{%s}}r�z)\deactivatetilden % restore ~ in Galicianr�)�
\makeatletterz+  \addto\extrasestonian{\bbl@deactivate{~}}�\makeatotherr�)rz)  \addto\extrasbasque{\bbl@deactivate{~}}r���r�zE% Prevent side-effects if French hyphenation patterns are not loaded:z\frenchbsetup{StandardLayout}z4\AtBeginDocument{\selectlanguage{%s}\noextrasfrench}rr)�sortedr�keysr6rrd�setup�extend)rNr�
shorthands�cs`   rO�__call__zBabel.__call__�s�����4�.�3�3�5�5�6�6�	��	����3�)�4�4�4�/�#�(�(�9�2E�2E�E�F��
��
����M�M�M�M�9�M�M�M�M�M�	%�	%�A��
�"�"��!�!�!�$�$�$���	5��J���D� "���
� 3� 3�4�
5�
5�
5���"�"��J���J�K�K�K���"�"��J���0�0�0�
1�
1�
1��y� � ��J���0�0�0�
1�
1�
1�
�b�M�Y�&�&��D�/�4�4�6�6�6�6��J�J�6�;�/�15��?�@�
@�J�J�
�y�y���$�$�$rPc���tj|��D]!}	|j|cS#t$rY�wxYw|j�"|j�|j|z��dS)z,Return TeX language name for `language_code`Nr*)r	�normalize_language_tag�language_codes�KeyErrorr�warning�warn_msg)rNr�tags   rOrzBabel.language_name�s���/�
�>�>�	�	�C�
��*�3�/�/�/�/���
�
�
���
�����=�$��M�!�!�$�-�-�"?�@�@�@��rs�'�
4�4c��|jSrI)rrMs rO�get_languagezBabel.get_language�s
���}�rPrI)rurvrw�__doc__r�itemsrrrJrrr"r�rPrOr�r�+sz������'�'�K
���K
�	
��K
�
	
��K
�	
��
K
�	
�	�K
�	
��K
�	
��K
�	
��K
�	
�	�K
�	��K
�	��K
�	�
�K
� 	��!K
�"	
��#K
�$	�)�%K
�&	
�	�'K
�(	��)K
�K
�*	�
�+K
�,	�	�-K
�.	��/K
�0	�
�1K
�2	
��3K
�4	
�	�5K
�6	
�
�7K
�8	
��9K
�<	
�	�=K
�>	
��?K
�@	�
�AK
�B	
��CK
�F	��GK
�H	
�
�IK
�J	
��KK
�L	
�
�MK
�N	��OK
�K
�K
�P	
��QK
�R	
�
�SK
�T	
�	�UK
�V	
��WK
�X	
�	�YK
�Z	
�
�[K
�\	
��]K
�^	
��_K
�`	
��aK
�b	
�	�cK
�d	
��eK
�f	
�	�gK
�h	
��iK
�j	
��kK
�l	
�	�mK
�n	
��oK
�p	
��qK
�K
�K
�r	
�
�sK
�t	��uK
�v	
�
�wK
�x	
�	�yK
�z	
��{K
�|	�
�}K
�~	�	�K
�@	
��AK
�B	
�	�CK
�D	
�
�EK
�F	
�
�GK
�H	�	�IK
�J	
�	�KK
�N	
�	�OK
�P	
��QK
�R	
�	�SK
�K
�N�ZG�F�~�/C�/C�/E�/E�F�F�F�N�=�H�*(-�',�
�
�L�!�!�!�!�
%�%�%�B	�	�	�����rPr�c��eZdZdZd�Zd�ZdS)�SortableDictz�Dictionary with additional sorting methods

    Tip: use key starting with with '_' for sorting before small letters
         and with '~' for sorting after small letters.
    c�D�t|�����S)zReturn sorted list of keys)rrrMs rO�
sortedkeyszSortableDict.sortedkeys�s���d�i�i�k�k�"�"�"rPc�D���fd�����D��S)z$Return list of values sorted by keysc� ��g|]
}�|��Sr�r�)r��keyrNs  �rO�
<listcomp>z-SortableDict.sortedvalues.<locals>.<listcomp>�s���7�7�7�c��S�	�7�7�7rP)r(rMs`rO�sortedvalueszSortableDict.sortedvalues�s'���7�7�7�7�T�_�_�%6�%6�7�7�7�7rPN)rurvrwr#r(r-r�rPrOr&r&�s<��������
#�#�#�8�8�8�8�8rPr&c��eZdZdZdS)�PreambleCmdsz'Building blocks for the latex preamble.N)rurvrwr#r�rPrOr/r/�s������1�1�1�1rPr/z\usepackage{color}zl\usepackage{float} % extended float configuration
\floatplacement{figure}{H} % place figures here definitelyz�%% hyperlinks:
\ifthenelse{\isundefined{\hypersetup}}{
  \usepackage[%s]{hyperref}
  \usepackage{bookmark}
  \urlstyle{same} %% normal text font (alternatives: tt, rm, sf)
}{}z/%% local table of contents
\usepackage{minitoc}zz\usepackage{longtable,ltcaption,array}
\setlength{\extrarowheight}{2pt}
\newlength{\DUtablewidth} % internal use in tableszI\newcommand{\DUcolumnwidth}[1]{\dimexpr#1\DUtablewidth-2\tabcolsep\relax}z*\usepackage{textcomp} % text symbol macroszQ
% abstract title
\providecommand*{\DUtitleabstract}[1]{\centerline{\textbf{#1}}}a
% admonition (specially marked topic)
\providecommand{\DUadmonition}[2][class-arg]{%
  % try \DUadmonition#1{#2}:
  \ifcsname DUadmonition#1\endcsname%
    \csname DUadmonition#1\endcsname{#2}%
  \else
    \begin{center}
      \fbox{\parbox{0.9\linewidth}{#2}}
    \end{center}
  \fi
}zU
% error admonition title
\providecommand*{\DUtitleerror}[1]{\DUtitle{\color{red}#1}}a
% title for topics, admonitions, unsupported section levels, and sidebar
\providecommand*{\DUtitle}[2][class-arg]{%
  % call \DUtitle#1{#2} if it exists:
  \ifcsname DUtitle#1\endcsname%
    \csname DUtitle#1\endcsname{#2}%
  \else
    \smallskip\noindent\textbf{#2}\smallskip%
  \fi
}z�
\providecommand*{\DUCLASScontents}{%
  \renewenvironment{itemize}%
    {\begin{list}{}{\setlength{\partopsep}{0pt}
                    \setlength{\parsep}{0pt}}
                   }%
    {\end{list}}%
}za
% character width in monospaced font
\newlength{\ttemwidth}
\settowidth{\ttemwidth}{\ttfamily M}c���t|��g}|D]-}|���sn|�|���.d�|�����S)Nr*)�next�stripr6rd�rstrip)ro�block�lines   rO�_read_blockr6Msd��
�"�X�X�J�E������z�z�|�|�	��E�
���T�����
�7�7�5�>�>� � �"�"�"rP�docutils.styrUrVz% 
z::�:)�color�float�table�textcompc���eZdZdZed��ded��ded��diZed��d	ed
��ded��d
ed��ded��ded��ded��ded��ded��ded��dddiZidd�d d!�d"d�d#d!�d$d%�d&d'�d(d%�d)d*�d+d,�d-d.�d/d0�d1d2�d3d4�d5d6�d7d8�d9d:�d;d<�d=d>d?d@dA��ZidBd�dCdD�dEdF�dGdH�dIdJ�dKdL�dMdN�dOdP�dQdR�dSdT�dUdV�dWdX�dYdZ�d[d\�d]d^�d_d`�dadb�dcdddedfdg��Zidhdi�djdk�dldm�dndo�dpdq�drds�dtdu�dvdw�dxdy�dzd{�d|d}�d~d�d�d��d�d��d�d��d�d��d�d��id�d��d�d��d�d��d�d��d�d��d�d��d�d��d�d��d�d��d�d��d�d��d�d��d�d��d�d��d�d��d�d��d�d���id�d��d�d��d�d��d�d��d�d��d�d��d�d��d�d��d�d��d�d��d�d��d�d��d�d“d�dēd�dƓd�dȓd�dʓ�id�d̓d�dΓd�dГd�df�d�dӓd�dՓd�dדd�dٓd�dۓd�dݓd�dߓd�d�d�d�d�d�d�d�d�d�d�d��d�d�d�d�d�d��Z	d�d�d�d�d��Z
d�S)��CharMapsz8LaTeX representations for active and Unicode characters.�\z\textbackslash{}�{z\{�}z\}�#�\#�$z\$�%�\%�&z\&�~z\textasciitilde{}�_�\_�^z\textasciicircum{}�"z\textquotedbl{}�[z{[}�]z{]}�z\-i z\enskipi z\quadi i i z\,i z\hspace{0pt}i/ i z\hbox{-}i+!z\AAi�!z\ensuremath{\Leftrightarrow}i`"z\ensuremath{\neq}ia"z\ensuremath{\equiv}id"z\ensuremath{\le}ie"z\ensuremath{\ge}i`&z\ensuremath{\spadesuit}ic&z\ensuremath{\clubsuit}i��ffr��fl�ffi�ffl)i�i�i�i���z\guillemotleft{}�z\guillemotright{}i z\textcompwordmark{}i z
\textendash{}i z
\textemdash{}i z\textquoteleft{}i z\textquoteright{}i z\quotesinglbase{}i z\textquotedblleft{}i z\textquotedblright{}i z\quotedblbase{}i0 z\textperthousand{}i1 z\textpertenthousand{}i9 z\guilsinglleft{}i: z\guilsinglright{}i#$z\textvisiblespace{}z\dag{}z\ddag{}z\dots{}z\texttrademark{})i  i! i& �"!�z\textcent{}�z\textcurrency{}�z
\textyen{}�z\textbrokenbar{}�z\textsection{}�z\textasciidieresis{}�z\textcopyright{}�z\textordfeminine{}�z\textlnot{}�z\textregistered{}�z\textasciimacron{}�z
\textdegree{}�z	\textpm{}�z\texttwosuperior{}�z\textthreesuperior{}�z\textasciiacute{}�z	\textmu{}�z\textparagraph{}�z\textonesuperior{}�z\textordmasculine{}�z\textonequarter{}�z\textonehalf{}�z\textthreequarters{}��z\texttimes{}�z
\textdiv{}i�z
\textflorin{}i�i�z\textacutedbl{}i z
\textbardbl{}i" z
\textbullet{}i2 i3 i5 z\textasciigrave{}i6 z\textgravedbl{}i; z\textreferencemark{}i= z\textinterrobang{}iD z\textfractionsolidus{}iE z
\textlquill{}iF z
\textrquill{}iR z\textdiscount{}i� z\textcolonmonetary{}i� z\textfrenchfranc{}i� z\textlira{}i� z\textnaira{}i� z
\textwon{}i� z\textdong{}i� z\texteuro{}i� z\textpeso{}i� z\textguarani{}i!z\textcelsius{}i!z
\textnumero{}i!z\textcircledP{}i!z
\textrecipe{}i !z\textservicemark{}rWi&!z
\textohm{}i'!z
\textmho{}i.!z\textestimated{}i�!z\textleftarrow{}i�!z\textuparrow{}i�!z\textrightarrow{}i�!z\textdownarrow{}i"z\textminus{}i"z\textasteriskcentered{}i"z\textsurd{}i"$z\textblank{}i�%z\textopenbullet{}i�%z\textbigcircle{}z\textmusicalnote{}z\textmarried{}z\textdivorced{}z
\textlangle{}z
\textrangle{})ij&i�&i�&i�'i�'z
\ding{170}z
\ding{169}z	\ding{51}z	\ding{55})ie&if&i'i'N)rurvrwr#�ord�alltt�special�unsupported_unicode�utf8_supported_unicoder<�pifontr�rPrOr>r>ls/������B�B�	��D�	�	�&���C���%���C���%�
�E�	��C���%���C���%���C���%���C���%���C���&���C���%���C���'���C���$�	��C���%���C���%�	��)�G�.�	�
��	��	�
	�
��	��
�	���	���	���	���	���	�0��	�%��	�'�� 	�$�!�"	�$�#�&	�+�'�(	�*�)�*	��+�,����3����8�����#��	�$��	�&�	�
	� ��	� �
�	�#��	�$��	�$��	�&��	�'��	�"��	�%��	�(��	�#�� 	�$�!�"	�&�#�$���#�+����0L���L�	�"�L�	�
�	L�
	�#�L�	�!�
L�	�'�L�	�#�L�	�%�L�	��L�	�$�L�	�%�L�	� �L�	��L�	�%�L� 	�'�!L�"	�$�#L�$	��%L�L�&	�#�'L�(	�%�)L�*	�&�+L�,	�$�-L�.	�!�/L�0	�'�1L�2	��3L�4	�
�5L�8	� �9L�:	�$�;L�<	�"�=L�>	� �?L�@	� �AL�B	�$�CL�D	�"�EL�F	�$�GL�H	�"�IL�L�L�J	�'�KL�L	�%�ML�N	�)�OL�P	� �QL�R	� �SL�T	�"�UL�V	�'�WL�X	�%�YL�Z	��[L�\	��]L�^	�
�_L�`	��aL�b	��cL�d	��eL�f	�!�gL�h	�!�iL�j	� �kL�L�L�l	�"�mL�n	� �oL�p	�%�qL�r	�#�sL�t	�
�uL�v	�
�wL�x	�#�yL�z	�#�{L�|	�!�}L�~	�$�L�@	�#�AL�B	��CL�D	�*�EL�F	��GL�H	��IL�J	�$�KL�L	�#�ML�L�N&�!�"� � �WL�L�L�H�^����	��F�F�FrPr>c�&�eZdZdZdd�Zd�Zd�ZdS)�
DocumentClassz"Details of a LaTeX document class.Fc���||_||_gd�|_|jdvr|j�dd��|jr|j�dd��dSdS)N)�section�
subsection�
subsubsection�	paragraph�subparagraph)�book�memoir�report�scrbook�scrreprtr�chapterrm)�document_class�
_with_part�sections�insert)rNr��	with_parts   rOrJzDocumentClass.__init__s���,���#���6�6�6��
���#:�:�:��M� � ��I�.�.�.��?�	,��M� � ��F�+�+�+�+�+�	,�	,rPc�V�|t|j��kr|j|dz
SdS)z�Return the LaTeX section name for section `level`.

        The name depends on the specific document class.
        Level is 1,2,3..., as level 0 is the title.
        ��DUtitle)�lenr�)rN�levels  rOrzzDocumentClass.section)s/���C��
�&�&�&�&��=��q��)�)��yrPc��t|t|j����}d|jvr|dz}|jddkr|dz}|S)a
        Return LaTeX equivalent of Docutils section level `depth`.

        Given the value of the ``:depth:`` option of the "contents" or
        "sectnum" directive, return the corresponding value for the
        LaTeX ``tocdepth`` or ``secnumdepth`` counters.
        r�r�rrm)�minr�r�)rN�depths  rO�latex_section_depthz!DocumentClass.latex_section_depth4sS���E�3�t�}�-�-�.�.����
�%�%��Q�J�E��=���v�%�%��Q�J�E��rPN)F)rurvrwr#rJrzr�r�rPrOrxrxsL������,�,�	,�	,�	,�	,�	�	�	�
�
�
�
�
rPrxc��eZdZdZd�Zd�Zd�Zd�Zd�Zd�Z	d�Z
d	�Zd
�Zdd�Z
d
�Zd�Zd�Zd�Zd�Zd�Zd�Zd�Zd�Zd�Zd�Zd�Zd�Zd�Zd�Zd�ZdS)�TableaHManage a table while traversing.

    Table style might be

    :standard:   horizontal and vertical lines
    :booktabs:   only horizontal lines (requires "booktabs" LaTeX package)
    :borderless: no borders around table cells
    :nolines:    alias for borderless

    :colwidths-auto:  column widths determined by LaTeX
    c��||_||_d|_|���g|_g|_d|_dS)NFr)�_translator�_latex_typer9�close�
_colwidths�_rowspan�	_in_thead)rN�
translator�
latex_types   rOrJzTable.__init__Ps@��%���%���$)��!��
�
���������
�����rPc�L�d|_g|_g|_i|_d|_dS)NTF)�_open�
_col_specs�caption�_attrs�_in_headrMs rOr_z
Table.openZs)����
������������
�
�
rPc�Z�d|_d|_g|_i|_g|_d|_dS�NF)r�r�r�r��stubs�colwidths_autorMs rOr�zTable.closeas3����
������������
�#����rPc��|jSrI)r�rMs rO�is_openz
Table.is_openis
���z�rPc��|j|_d|vr|�d|d��d�dg|jz|dzD��}|d|_d|dvs	d|jvo
d|dvod|v|_dS)	N�alignc�B�g|]}|dv�|�dd����S))rrrrrr��replace�r��clss  rOr,z)Table.set_table_style.<locals>.<listcomp>rsD��P�P�P���N�N�N�	�;�;�y�,�7�7�O�N�NrPr�classesrr�colwidths-given�width)r9�set�table_style�bordersr�)rN�noder]r�s    rO�set_table_stylezTable.set_table_stylels���$,�$A��!��d�?�?��H�H�W�d�7�m�,�,�,�P�P� *�|�!)�!5� 6�!%�i�� 1�P�P�P��
�r�{��� 0�D��O� C�!L�#3�x�7K�#K� 7�#4�D��O�#K� 7�$+�$�#6�	
���rPc�8�|jdkr	|jsdS|jS)N�	longtable�
longtable*)r�r�rMs rO�get_latex_typezTable.get_latex_type}s%����{�*�*�4�<�*��<���rPc��||j|<dSrI�r�)rN�attr�values   rOr�z	Table.set�s��!���D���rPc�2�||jvr
|j|SdSrIr�)rNr�s  rOr
z	Table.get�s!���4�;����;�t�$�$��trPc� �|jdkrdSdS)Nr�|r*)r�rMs rO�get_vertical_barzTable.get_vertical_bar�s���<�:�%�%��3��rrP�
\linewidthc��ddddd�}|�|�d����}|���}|r|dvr
d|�d	�d
|�d�g}n	d
|�d|��g}|js\|jdkr8|js1|�d
d|t
|j��dzfz��n|�d
d|z��d�|��S)Nz[l]z[c]z[r]r*)�left�center�rightNr��r�r�z\noindent\makebox[\linewidth]z{%�\begin{rArrz?\setlength{\DUtablewidth}{\dimexpr%s-%i\arrayrulewidth\relax}%%r�z\setlength{\DUtablewidth}{%s}%%rr)	r
r�r�r�r9r�r�r�rd)rNr��	align_mapr�r��openings      rO�get_openingzTable.get_opening�s)��"�$�#����	��
�
�d�h�h�w�/�/�0�0���(�(�*�*�
��	>�Z�'B�B�B�B�@E���G�G�(2�
�
�4�6�G�G��+5�*�*�e�e�<�=�G��"�	O��|�z�)�)�$�2K�)����r�$I�"'��T�_�)=�)=�a�)?�!@�$A�B�B�B�B����r�#E��#M�N�N�N��y�y��!�!�!rPc�D�g}|jdkr|�d��|�d|���z��|�d��r+|���dvr|�d��d�|��S)Nrz\bottomrule�\end{%s}r�r�rArr)r�r6r�r
rd)rN�closings  rO�get_closingzTable.get_closing�s������<�:�%�%��N�N�>�*�*�*�	���{�T�%8�%8�%:�%:�:�;�;�;��H�H�W���	 ��#�#�%�%�-H�H�H��N�N�3�����y�y��!�!�!rPc��|j�|��|j�|j�d����dS)N�stub)r�r6r��
attributesr
�rNr�s  rO�
visit_colspeczTable.visit_colspec�sD������t�$�$�$��
���$�/�-�-�f�5�5�6�6�6�6�6rPc��������|���}dgt|j��z|_|jr g|_dgt|j��z}n�|jr[d�d�td�|jD�������kr���zz���fd�|jD��|_d�|jD��}n�d�d	|jjd
vrd�nd���fd�|jD��|_t|j����dksd
|jjj	vr�fd�|jD��|_d�|jD��}||�
|��z|zS)z3Return column specification for longtable.
        r�l�Pg�(\���?c3�,K�|]}|ddzV��dS)�colwidthr�Nr��r�r�s  rOrz%Table.get_colspecs.<locals>.<genexpr>�s,����M�M�T�d�:�.�q�0�M�M�M�M�M�MrPc�8��g|]}�|ddzz�zdz��S)r�r�g{�G�zt?r�)r�r��factorr�s  ��rOr,z&Table.get_colspecs.<locals>.<listcomp>�sK���D�D�D�+/�!'�$�z�*:�1�*<� =�e� C�!&� '�D�D�DrPc��g|]}d|z��S)zp{%.3f\DUtablewidth}r��r�r�s  rOr,z&Table.get_colspecs.<locals>.<listcomp>�s-��?�?�?�"*�6��@�?�?�?rP�(r�r�r�c�,��g|]}|d�z�z��S)r�r�)r�r��	allowance�norm_lengths  ��rOr,z&Table.get_colspecs.<locals>.<listcomp>�s8���<�<�<�#'�!%�Z� 0�� :�K�G�<�<�<rPr�c���g|]}|�z��Sr�r�)r�r��total_widths  �rOr,z&Table.get_colspecs.<locals>.<listcomp>�s4���#D�#D�#D�'/�$,�K�#7�#D�#D�#DrPc��g|]}d|z��S)�p{\DUcolumnwidth{%.3f}}r�r�s  rOr,z&Table.get_colspecs.<locals>.<listcomp>�s-��?�?�?�"*�9�8�C�?�?�?rP)r�r�r�r�r�r�r9�sum�parentr�rd)	rNr��bar�latex_colspecsr�r�r�r�r�s	    @@@@@rO�get_colspecszTable.get_colspecs�s���������#�#�%�%����c�$�/�2�2�2��
���%	?� �D�O�!�U�S���%9�%9�9�N�N�
�
&�"	?��E��F��M�M�T�_�M�M�M�M�M�K��U�"�"��%�+�-�-��D�D�D�D�D�37�?�D�D�D�D�O�?�?�.2�o�?�?�?�N�N��K�!���(:�9�(E�E�E��	�	��	�<�<�<�<�<�+/�?�<�<�<�D�O��d�o�.�.�K��Q���'�T�[�-?�-J�"J�"J�#D�#D�#D�#D�37�?�#D�#D�#D���?�?�.2�o�?�?�?�N��S�X�X�n�-�-�-��3�3rPc��	|jrd|j|jzSd|j|jzS#t$rYdSwxYw)z4Return columnwidth for current cell (not multicell).z%.2f\DUtablewidthz\DUcolumnwidth{%.2f}�*)r9r��_cell_in_row�
IndexErrorrMs rO�get_column_widthzTable.get_column_width�s_��	��(�
O�+�D�O�D�<M�,N�N�N�*�4�?�4�;L�+M�M�M���	�	�	��3�3�	���s�3�3�
A�Ac����	t��fd�t|��D����}�jrd|zSd|zS#t$rYdSwxYw)z)Return sum of columnwidths for multicell.c3�8�K�|]}�j�|zV��dSrI)r�)r��corN�starts  ��rOrz.Table.get_multicolumn_width.<locals>.<genexpr>�sB�����!8�!8�%'�"&�����!<�!8�!8�!8�!8�!8�!8rPzp{%.2f\DUtablewidth}r�r�)r��ranger9r�)rNr��len_�multicol_widths``  rO�get_multicolumn_widthzTable.get_multicolumn_width�s�����	� �!8�!8�!8�!8�!8�+0��;�;�!8�!8�!8�8�8�N��(�
@�.��?�?�-��>�>���	�	�	��3�3�	���s�4>�>�
A�Ac��|jsdSd�|j��}d|j���krd|zSd|zS)Nr*r�z\caption{%s}\\
z!\caption[]{%s (... continued)}\\
)r�rdr��thead_depth)rNr�s  rO�get_captionzTable.get_caption�sT���|�	��2��'�'�$�,�'�'���� �,�,�.�.�.�.�)�G�3�3�7�'�A�ArPc�V�|jdkrd|j���kSdS)Nr�r�r)r�r�r�rMs rO�need_recursezTable.need_recurses/����{�*�*���(�4�4�6�6�6�6��qrPc�^�|xjdz
c_|jdkrdgS|jdkrdgSgS)Nr�r�\hline
rz	\toprule
)r�r�rMs rO�visit_theadzTable.visit_theadsA�����!�����<�:�%�%��=� �
�\�Z�
'�
'�!�?�"��	rPc�,�g}|jdkr|�d��|jdkr�d|j���kr|�d��n�t|j��}|�d��td�|jD����}|dks
|d	kr;|js4|�d
||�	d|��fzdzd
z��|�d��|xj
dzc_
|S)Nrz	\midrule
r�r�z\endfirsthead
z	\endhead
c3�,K�|]}|ddzV��dS)r��Nr�r�s  rOrz%Table.depart_thead.<locals>.<genexpr>s,����L�L�D�T�*�-�a�/�L�L�L�L�L�LrP��z\multicolumn{%d}{%s}rz,{\raggedleft\ldots continued on next page}\\rrz\endfoot
\endlastfoot
)r�r6r�r�r�r�r�r�r�r�r�)rN�a�n_c�twidths    rO�depart_theadzTable.depart_thead
s1�����<�:�%�%�
�H�H�]�#�#�#���{�*�*��D�$�0�0�2�2�2�2����+�,�,�,�,��$�/�*�*������'�'�'��L�L�D�O�L�L�L�L�L���B�;�;�6�B�;�;�t�7J�;��H�H�4� #�T�%?�%?��3�%G�%G�H�I�N�O� $�$�%�%�%����5�6�6�6����!�����rPc��d|_dS�Nr�r�rMs rO�	visit_rowzTable.visit_row%s������rPc�P��dg}d�_tt�j����D](}�j|dkr�j|xxdzcc<�)�jdkrňfd�tt�j����D��}t|��t�j��kr|�d��n]d}|���		|���}n#t$rYnwxYw|d	||fzz
}�1|�|��|S)
N� \\
rr�rc�<��g|]}�j|dk�|dz��S)rr�)r�)r��irNs  �rOr,z$Table.depart_row.<locals>.<listcomp>0s8���2�2�2���=��+�q�0�0��!��0�0�0rPrr*Tz\cline{%d-%d}
)	r�r�r�r�r�r6�reverse�popr�)rN�resr�rowspans�cline�c_starts`     rO�
depart_rowzTable.depart_row(s_����k�� ����s�4�=�)�)�*�*�	&�	&�A��}�Q��!�#�#��
�a� � � �A�%� � � ���<�:�%�%�2�2�2�2�U�3�t�}�+=�+=�%>�%>�2�2�2�H��8�}�}��D�M� 2� 2�2�2��
�
�;�'�'�'�'���� � �"�"�"�E��"*�,�,�.�.����%�����������/�7�G�2D�D�D�E�E��
�
�5�!�!�!��
s�!C6�6
D�Dc�>�	||j|<dS#t$rYdSwxYwrI�r�r�)rN�cellr�s   rO�set_rowspanzTable.set_rowspanAs;��	�"'�D�M�$������	�	�	��D�D�	���s�
�
�c�@�	|j|S#t$rYdSwxYwrr)rNrs  rO�get_rowspanzTable.get_rowspanGs6��	��=��&�&���	�	�	��1�1�	���s��
�c��|jSrIrrMs rO�get_entry_numberzTable.get_entry_numberM���� � rPc�&�|xjdz
c_dS�Nr�rrMs rO�visit_entryzTable.visit_entryPs�����Q�����rPc�d�t|j��|jkr|j|jSdSr�)r�r�r�rMs rO�is_stub_columnzTable.is_stub_columnSs-���t�z�?�?�d�/�/�/��:�d�/�0�0��urPN)r�)rurvrwr#rJr_r�r�r�r�r�r
r�r�r�r�r�r�r�r�rrrrrrr!r#r'r)r�rPrOr�r�Ds�������
�
�������$�$�$����8�8�8�" � � �"�"�"����
���"�"�"�"�*
"�
"�
"�7�7�7�
+4�+4�+4�Z���	�	�	�B�B�B����
������0������2������!�!�!��������rPr�c�J��eZdZdZdZdZdZdZdZdZ	dZ
dZdZdZ
dZdZef�fd�	Zd�Zd�Zd�Zd	�Zejd
��fd�Zd�Zd
�Z		d�d�Zd�Zd�d�Zd�Zd�Zd�Z d�Z!d�Z"d�Z#d�Z$d�Z%d�Z&d�Z'd�Z(d�Z)d�Z*d �Z+d!�Z,d"�Z-d#�Z.d$�Z/d%�Z0d&�Z1d'�Z2d(�Z3d)�Z4d*�Z5d+�Z6d,�Z7d-�Z8d.�Z9d/�Z:d0�Z;d1�Z<d2�Z=d3�Z>d4�Z?d5�Z@d6�ZAd7�ZBd8�ZCd9�ZDd:�ZEd;�ZFd<�ZGd=�ZHd>�ZId?�ZJd@�ZKdA�ZLdB�ZMdC�ZNdD�ZOdE�ZPdF�ZQdG�ZRdH�ZSdI�ZTdJ�ZUdK�ZVdL�ZWdM�ZXdN�ZYdO�ZZdP�Z[dQ�Z\dR�Z]dS�Z^dT�Z_dU�Z`dV�ZadW�ZbdX�ZcdY�ZddZ�Zed[�Zfd\�Zgd]�Zhd^�Zid_�Zjd`�Zkda�Zldb�Zmdc�Zndd�Zode�Zpdf�Zqdg�Zrdh�Zsdi�Ztdj�Zudk�Zvdl�Zwdm�Zxdn�Zydo�Zzdp�Z{dq�Z|dr�Z}ds�Z~dt�Zdu�Z�dv�Z�dw�Z�d�dx�Z�dy�Z�dz�Z�d{�Z�d|�Z�d}�Z�d~�Z�d�Z�d��Z�d��Z�d��Z�d��Z�d��Z�d��Z�d��Z�d��Z�d��Z�d��Z�d��Z�d��Z�d�d��Z�d��Z�d��Z�d��Z�d��Z�d��Z�d��Z�d��Z�d��Z�d��Z�d��Z�d��Z�d��Z�d��Z�d��Z�d��Z�d��Z�d��Z�d��Z�d��Z�d��Z�d��Z�d��Z�d��Z�d��Z�d��Z�d��Z�d��Z�d��Z�d��Z�d��Z�d��Z�d��Z�d��Z�d��Z�d�d�d�d�d��Z�d��Z�d��Z�d��Z�d��Z�d��Z�d��Z�d��Z�d��Z�d��Z�d��Z�d��Z�d��Z�d��Z�d��Z�d„Z�dÄZ�dĄZ�dńZ�dƄZ�dDŽZ�dȄZ�dɄZ�dZ�dʄZ�d˄Z�d̄Z�d̈́Z�d΄Z�dτZ�dЄZ�dфZ�d҄Z�dӄZ�dԄZ�dՄZ�dքZވxZ�S)�rKz�
    Generate code for 8-bit LaTeX from a Docutils document tree.

    See the docstring of docutils.writers._html_base.HTMLTranslator for
    notes on and examples of safe subclassing.
    Fr5rc����t���|���jjj�_�jjj�_|jx�_}|j�#d|_tjdtd���|j�#d|_tjdtd���|j�tjdtd�����
|j���_|j�_|j�_|j�_|j�_|j�_|j�_t-|dd	���_|j�_|j�d
d���_d	�_d	�_|jr*t;jd|j��\}�_�_}n|jrd
�_�jjr&�jj�dd���_ nd�_ tCj"|j#|j���_$||j#|j���_%�j$j&d�_'�jj(g}�j%j)dvr|�*�j%j)��d�+tYd|�����_(t[|j.|j/���_0�jj1d	krd�_2nd�jj1z�_2|j3�_3d�j(�d�jj.�d�g�_4tk���_6d�j6d<|j7g�_7tk���_8g�_9g�_:g�_;g�_<g�_=g�_>g�_?g�_@g�_Ag�_B	g�_Cg�_Dg�_Eg�_Fg�_Gg�_H|j#dkr"�jH�*d|j#z��dg�_Ig�_Jd�_Kg�_Lg�_Mt��d���_O�jA�_Pg�_Q�jdkrd�jz�j6d<�jRsi�jrd�jz�j6d <�j�d��D]5}|�S��}|d!krd"�j6d#<�'|d$vr
d%�j6d&<�6|j.�Td'��d(krF�j(�Td)��d(ks�j(�Td*��d(kr
d+�j6d,<t�jV|��}d-|v�_W�jWr*d.�|D��}�jjXrd�_Wn
d/�j8d0<�fd1�|D���_Y�jd2vrd	�_Znd3�j�d4�j���_Z|jZr�xjZd|jZzz
c_Z|j[rd5t�_]dS|j^}|�'d6�j0�_|��zt�_]t�|d7��r4|jadkr+d8�j0jbd|jadz
fz�j6d7<dSdSdS)9NFzXThe default for the setting "use_latex_citations" will change to "True" in Docutils 1.0.���
stacklevelTz[The default for the setting "legacy_column_widths" will change to "False" in Docutils 1.0.)zzThe configuration setting "use_verbatim_when_possible" will be removed in Docutils 2.0. Use "literal_block_env: verbatim".�
font_encodingr*rIrJz	(\w+)(.*)�verbatimr
r�r)r�r*z\usepackage{graphicx}z\usepackage[%s]{graphicx}z\documentclass[�]{rAz\usepackage{ifthen}�__staticr�z  pdflang={%s},r��asciiz\usepackage[%s]{inputenc}�	_inputencz\usepackage[%s]{fontenc}�_fontenc�OT1z+\DeclareTextSymbol{\textquotedbl}{OT1}{`\"}�_textquotedblOT1)r7�T2A�T2B�T2C�T4�T5z,\DeclareTextSymbolDefault{\textquotedbl}{T1}�
_textquotedbl�scrr�DIV�BCORz\usepackage{typearea}�typearearzc��g|]
}|dk�|��S)rzr�)r��sheets  rOr,z,LaTeXTranslator.__init__.<locals>.<listcomp>9s,��7�7�7��"'�:�"5�"5� %�"5�"5�"5rPz!\usepackage{docutils}[2020/08/28]r7c�:��g|]}��|����Sr�)�stylesheet_call)r�rcrNs  �rOr,z,LaTeXTranslator.__init__.<locals>.<listcomp>Cs7���8�8�8�#� �/�/��5�5�8�8�8rP)�0�false�Falser*zcolorlinks=true,linkcolor=z
,urlcolor=z\setcounter{secnumdepth}{0}z\setcounter{secnumdepth}{%d}�
sectnum_startz\setcounter{%s}{%d})c�superrJrXrr�warn�errorr]r"�warnings�
FutureWarningr9�use_verbatim_when_possible�to_latex_encoding�output_encoding�latex_encodingr/r0�reference_label�_reference_label�hyperlink_colorr3r\r/r4�section_enumerator_separatorr��literal_block_env�literal_block_options�re�split�
use_bibtex�bibtexrr"r�language_module�babel�author_separators�author_separator�documentoptionsrr6rd�filterrx�
documentclass�use_part_section�d_class�graphicx_option�graphicx_package�docutils_footnotesr;r&r<r=r>r?rArBr@rCrDrErFrG�context�title_labels�subtitle_labels�author_stack�date�	pdfauthor�pdfinfo�_section_number�_enumeration_counters�_max_enumeration_counters�	_bibitems�table_stackr��active_table�out�	out_stack�is_xetexr2�findr	�get_stylesheet_list�fallback_stylesheetr8r,�hyperref_options�
sectnum_xformr/�secnumdepthr:r��hasattrrIr�)
rNrX�babel_classr]r)�	d_options�enc�stylesheet_listr~�	__class__s
`        �rOrJzLaTeXTranslator.__init__�sv����
������"�"�"��M�*�2��	��]�+�1��
�$,�#4�4��
���'�/�+0�H�(��M�C�'�A�
7�
7�
7�
7��(�0�,0�H�)��M�E�'�A�
7�
7�
7�
7��.�:��M�5��!�	
-�
-�
-�
-�#�4�4�X�5M�N�N���%�3���!)�!;���#+�#?�� � (� 8���'�7���$,�$A��!�$�X���C�C����3�	
�+�
�1�9�9�#�u�E�E�	
�)�"$���%'��"��%�	0��X�l�H�,F�G�G�
�T�
�
#�
�
'�
�T�
�
0�	0�%/�D�"��=�#�	��-�2�8�8��a�@�@�D�K�K��D�K� )�5�h�6L�6>�6G� I� I��� �[��!7��9J�K�K��
� $� 4� F�q� I����]�2�3�	��:��o�5�5����T�Z�0�1�1�1�"�x�x��t�Y�(?�(?�@�@���$�X�%;�%-�%>�@�@����=�(�B�.�.�$<�D�!�!�%A�%)�]�%B�&C�D�!�#+�"=����"�1�1�1�!�]�8�8�8�:�;���)�N�N���(>���*�%�'�6�7���%�������
���
���
���� "�����������
���	����	H����!��������	��������!�T�)�)��L��� 1�(�2H� H�I�I�I�
!"�s���&(��"�*+��&�������!�$��4�4����9��������'�)�)�.J�04�0C�/D�D��k�*��}�	I��!�
E�1L�15�1C�2D��!�*�-��)�/�/��4�4�
I�
I���i�i�k�k���%�<�<�F��%�&8�9�9�� G�G�G�G��%�o�6��
�"�'�'��.�.�"�4�4��%�*�*�5�1�1�R�7�7��(�-�-�f�5�5��;�;�,D�D��j�)�
 �3�H�=�=��#-��#@�� ��#�		:�7�7�/�7�7�7�O��}�3�
:�+0��(�(�9���~�.�8�8�8�8�'6�8�8�8�����#>�>�>�$&�D�!�!�&H�26�2F�&H�&H�15�1E�&H�&H�D�!��$�	E��!�!�S�8�+D�%D�D�!�!��!�	I�'E�L�$�$�$�"�0�K��&�3��l�6�6�{�C�C�D��(���/�2�2�
I��*�a�/�/�*�d�l�.C�A�.F�.6�.D�Q�.F�.H�H��!�/�2�2�2�
I�
I�/�/rPc�z�tj�|��\}}|dv}|jjr�|r|dz}	t
j�|d������}|jj	�
|��nT#t$rG}d|��}|jj
�|��d|�dd��zcYd	}~Sd	}~wwxYw|rd�d
|dg��}d|�d|��S|r|}d
}nd}|jjrt%j|jj|��}||zS)z8Return code to reference or embed stylesheet file `path`)�.styr*r�rU)�source_pathrWzCannot embed stylesheet:
 z% rr�
% Nrrz% embedded stylesheet: z\usepackage{%s}z
\input{%s})rbrc�splitextr]r-rz�io�	FileInputr`�record_dependencies�add�OSErrorrXrrLr�rdr+r	�
relative_path�_destination)	rNrc�base�ext�
is_package�content�err�msg�cmds	         rOrEzLaTeXTranslator.stylesheet_callus����g�&�&�t�,�,���s��L�(�
��=�)�	F��
%��f�}��
<�"�+�/�/�D�9@�0�B�B�BF�$�&�&���
�1�5�5�d�;�;�;�;���
8�
8�
8�9�C�9�9���
�&�,�,�S�1�1�1��c�k�k�$��7�7�7�7�7�7�7�7�7�����
8�����
7��)�)�%5�%,�%4�%6�7�7���8<�t�t�W�W�E�E��	 ��D�$�C�C��C��=�(�	I��&�t�}�'A�4�H�H�D��T�z�s�3B�
C�<C�C�Cc���ddddddddd	d
ddd
dd�}|���}||vr||S|�dd���dd��}|�d��dS)z�Translate docutils encoding name into LaTeX's.

        Default method is remove "-" and "_" chars from docutils_encoding.
        �latin1�latin2�latin3�latin4�iso88595�latin5�latin9�maccyr�cp1251�koi8-r�koi8-u�cp1250�cp1252r3)z
iso-8859-1z
iso-8859-2z
iso-8859-3z
iso-8859-4z
iso-8859-5z
iso-8859-9ziso-8859-15�mac_cyrilliczwindows-1251r�r�zwindows-1250zwindows-1252zus-asciirIr*r5r8r)r�r�rZ)rN�docutils_encodingr�rWs    rOrPz!LaTeXTranslator.to_latex_encoding�s���
%�$�$�$�&�$�%�&�&� � �&�&�!����8%�*�*�,�,���r�>�>��h�<���#�#�C��,�,�4�4�S�"�=�=���~�~�c�"�"�1�%�%rPc�&�|jj|SrI)r]�labels)rN�
docutil_labels  rO�language_labelzLaTeXTranslator.language_label�s���#�*�=�9�9rPc��|jr|Stj���}|js|�tj��|jr|js|td��=|jdvrx|j	sq|j
r4d|td��<|j|jd<d|td��<n6d|td��<d	|td
��<d|td��<|j
r1d
|td��<d
|jjz|td��<|j	�s5|j�d��s]|�tj��|�tj��|�tj��|�tj��|D]�}t|��}|tjvr|jst.j|jd<�;|tjvrd|jd<�T|jdkr=|tjvr/d|tj|fz|jdt1|��z<��|�|��}|j	s5d}|j
r|dz
}|dzD]!}|�||z|dz|z��}�"|jrk|�d��}t;|dd���D])\}}	|	���s||xxd
z
cc<�*d�|��}|j
r|j
s|�dd��}|S) aUReturn text with 'problematic' characters escaped.

        * Escape the special printing characters ``# $ % & ~ _ ^ \ { }``,
          square brackets ``[ ]``, double quotes and (in OT1) ``< | >``.
        * Translate non-supported Unicode characters.
        * Separate ``-`` (and more in literal text) to prevent input ligatures.
        rI)r6r*z
\underline{~}�graphicxz\reflectbox{/}r?z
\textbar{}r�z\textless{}�<z\textgreater{}�>rH� �	�utf8r<z\usepackage{pifont}rvz"\DeclareUnicodeCharacter{%04X}{%s}r4r5z,`'"<>rz{}rrNr�\\
z  z ~) r0r>rr�copy�updaters�inside_citation_reference_labelrqr/rx�literalrgr<�insert_non_breaking_blanksr]�	tab_widthrR�
startswithrtrur<rvr{r/�strrpr��insert_newlinerZ�	enumerate�lstriprd)
rN�textr;�ch�cp�separate_chars�charrtrr5s
          rO�encodezLaTeXTranslator.encode�sd���=�	��K���#�#�%�%���z�	+��L�L��)�*�*�*��/�	!��
�	!��c�#�h�h�����,�,�T�]�,��|�
4�#3��c�#�h�h��15�0E��!�*�-�#4��c�$�i�i� � �#0��c�#�h�h��"0��c�#�h�h��"3��c�#�h�h���*�	=�!�E�#�c�(�(�O� #�T�]�%<�<�E�#�d�)�)���}�	B��&�1�1�&�9�9�
0����X�9�:�:�:����X�<�=�=�=����X�.�/�/�/��L�L���)�)�)��
B�
B����W�W����*�*�*�4�3K�*�4@�4I�D�%�j�1�1��8�?�*�*�2H�D�%�h�/�/��)�V�3�3��� <�<�<�=��x�;�B�?�@�A��%�k�#�b�'�'�&9�:���~�~�e�$�$���}�		E� �N��|�
,��)�+��&��*�
E�
E���|�|�D�4�K����t�1C�D�D�����	.��J�J�t�$�$�E�%�U�3�B�3�Z�0�0�
$�
$���4��{�{�}�}�$��!�H�H�H��O�H�H�H�� �&�&�u�-�-�D��<�	,�� ?�	,��<�<��d�+�+�D��rPz[

	]c�T�|�|�d|����S)z1Cleanse, encode, and return attribute value text.r�)r��sub)rNr��
whitespaces   rO�attvalzLaTeXTranslator.attvals$���{�{�:�>�>�#�t�4�4�5�5�5rPc�@�t|jtj��S)z@Check whether a node represents an inline or block-level element)�
isinstancer�r�TextElementr�s  rO�	is_inlinezLaTeXTranslator.is_inline&s���$�+�u�'8�9�9�9rPc��|j�d�d�|dD������dS)z)Append hypertargets for all ids of `node`�%
c3� K�|]	}d|zV��
dS)z"\raisebox{1em}{\hypertarget{%s}{}}Nr�)r�r�s  rOrz6LaTeXTranslator.append_hypertargets.<locals>.<genexpr>.s?����#=�#=�*,�$J�#%�$&�#=�#=�#=�#=�#=�#=rP�idsN)rvr6rdr�s  rO�append_hypertargetsz#LaTeXTranslator.append_hypertargets*sV��	
�����
�
�#=�#=�04�U��#=�#=�#=�=�=�	>�	>�	>�	>�	>rPTc���|rdnd��fd�|dD��}|r|r|�dd��|r|r|�d��|S)aReturn list of label definitions for all ids of `node`

        If `set_anchor` is True, an anchor is set with \phantomsection.
        If `protect` is True, the \label cmd is made robust.
        If `newline` is True, a newline is added if there are labels.
        z\protectr*c� ��g|]
}�d|zz��S)z
\label{%s}r�)r�r��prefixs  �rOr,z1LaTeXTranslator.ids_to_labels.<locals>.<listcomp>:s#���D�D�D�"�&�=�2�-�-�D�D�DrPr�rz\phantomsectionrr)r�r6)rNr��
set_anchor�protect�newliner�r�s      @rO�
ids_to_labelszLaTeXTranslator.ids_to_labels1sz���!(�/���R��D�D�D�D��U��D�D�D���	1�&�	1��M�M�!�/�0�0�0��	 �v�	 ��M�M�$�����
rPc��d�|dD��}|r6|d�dd��|d<d�|dD��|d<dSdS)	z8Convert ``align-*`` class arguments into alignment args.c�<�g|]}|�d���|��S��align-�r�r�s  rOr,z:LaTeXTranslator.set_align_from_classes.<locals>.<listcomp>Ds)��L�L�L��3�>�>�(�3K�3K�L��L�L�LrPr�rr�r*r�c�<�g|]}|�d���|��Sr�r�r�s  rOr,z:LaTeXTranslator.set_align_from_classes.<locals>.<listcomp>Gs?��@�@�@�s�&)�n�n�X�&>�&>�@�s�@�@�@rPNr�)rNr�r�s   rO�set_align_from_classesz&LaTeXTranslator.set_align_from_classesAs|��M�L��Y��L�L�L���	@�!�"�I�-�-�h��;�;�D��M�@�@�d�9�o�@�@�@�D��O�O�O�	@�	@rPNc��|�d|��}|dkr|j�d��dS|dkr|j�d��dS|dkr|j�d��dSdS)Nr�r�z
\raggedright
r�z\centering
r�z\raggedleft
)r
rvr6)rNr�rr�s    rO�insert_align_declarationz(LaTeXTranslator.insert_align_declarationJs�������'�*�*���F�?�?��H�O�O�-�.�.�.�.�.�
�h�
�
��H�O�O�O�,�,�,�,�,�
�g�
�
��H�O�O�,�-�-�-�-�-��
rPc�$�t|jtj��s|j�d��|dD]�}|�d��rQ|j�|dd���}|r,d|jj	|<|j�d|z���ht|tj
��r|tjdgzvr��|j
stj|jd	<|j�d
|z����dS)z6Open a group and insert declarations for class values.rrr��	language-�	NTz\begin{selectlanguage}{%s}
r��DUclassz\begin{DUclass}{%s}
)r�r�r�compoundrvr6r�r^rrr;rrr{r/�duclassr>�rNr�r�rs    rO�duclass_openzLaTeXTranslator.duclass_openSs���$�+�u�~�6�6�	"��H�O�O�D�!�!�!��	�?�	@�	@�C��~�~�k�*�*�
@��:�3�3�C����G�<�<���P�:>�D�J�-�h�7��H�O�O�$C�h�$N�O�O�O���T�5�;�/�/�
@��V�6�:K�9L�L�L�L���/�E�0<�0D�D�N�9�-����� 8�3� >�?�?�?�?�	@�	@rPc��t|d��D]�}|�d��r?|j�|dd���}|r|j�d���Vt
|tj��r|tj
dgzvr��|jstj
|jd<|j�d����dS)	z$Close a group of class declarations.r�r�r�Nz\end{selectlanguage}
r�r��\end{DUclass}
)�reversedr�r^rrvr6r�rr;rrr{r/r�r>r�s    rO�
duclass_closezLaTeXTranslator.duclass_closees����D��O�,�,�	4�	4�C��~�~�k�*�*�

4��:�3�3�C����G�<�<���?��H�O�O�$=�>�>�>���T�5�;�/�/�
4��V�6�:K�9L�L�L�L���/�E�0<�0D�D�N�9�-����� 2�3�3�3�3�	4�	4rPc�R�|j�|j��||_dSrI)rwr6rv)rN�new_outs  rO�push_output_collectorz%LaTeXTranslator.push_output_collectorts%������d�h�'�'�'�����rPc�B�|j���|_dSrI)rwrrvrMs rO�pop_output_collectorz$LaTeXTranslator.pop_output_collectorxs���>�%�%�'�'����rPc�x�|D]5}t|tjtjtjf��sn�6dSt|tjtjf��r|�|��St|tj��rdSt|tj	tj
f��sdSdS)aD
        Return LaTeX code required between term or field name and content.

        In a LaTeX "description" environment (used for definition
        lists and non-docinfo field lists), a ``\leavevmode``
        between an item's label and content ensures the correct
        placement of certain block constructs.
        r*z\leavevmode
�\leavevmode)r�r�	Invisible�footnote�citation�	containerr��term_postfix�imager}�
math_block)rNr��childs   rOr�zLaTeXTranslator.term_postfix{s����	�	�E��e�e�o�u�~�&+�n�&6�7�7�
���
��2��e�e�o�u�~�>�?�?�	,��$�$�U�+�+�+��e�U�[�)�)�	$�#�#��%�%�/�5�3C�!D�E�E�	"�!�>��rrPc��|j�|�|�������dSrI)rvr6r��astextr�s  rO�
visit_TextzLaTeXTranslator.visit_Text�s0���������D�K�K�M�M�2�2�3�3�3�3�3rPc��dSrIr�r�s  rO�depart_TextzLaTeXTranslator.depart_Text�����rPc�h�|d�dd��|�|��dS)Nr�r�abbreviation�r��visit_inliner�s  rO�visit_abbreviationz"LaTeXTranslator.visit_abbreviation�s6���Y����q�.�1�1�1����$�����rPc�0�|�|��dSrI��
depart_inliner�s  rO�depart_abbreviationz#LaTeXTranslator.depart_abbreviation�������4� � � � � rPc�h�|d�dd��|�|��dS)Nr�r�acronymrr�s  rO�
visit_acronymzLaTeXTranslator.visit_acronym�s6���Y����q�)�,�,�,����$�����rPc�0�|�|��dSrIr	r�s  rO�depart_acronymzLaTeXTranslator.depart_acronym�rrPc�2�|�|d��dS)N�address��visit_docinfo_itemr�s  rO�
visit_addresszLaTeXTranslator.visit_address��������i�0�0�0�0�0rPc�0�|�|��dSrI��depart_docinfo_itemr�s  rO�depart_addresszLaTeXTranslator.depart_address����� � ��&�&�&�&�&rPc��d�|dD��|d<|jjrjtj|jd<d|dvrtj|jd<|j�dd�|d��z��dS|j	stj
|jd<d|dvr|j	stj|jd<|�|��|j�d��dS)Nc��g|]
}|dk�|��S)�
admonitionr�r�s  rOr,z4LaTeXTranslator.visit_admonition.<locals>.<listcomp>�s,��3�3�3�3�!�\�1�1��1�1�1rPr�rrLz
\DUadmonition[%s]{r
z\begin{DUadmonition})
r]r8r/�admonition_legacyr>�error_legacyrvr6rdr{rrLr�r�s  rO�visit_admonitionz LaTeXTranslator.visit_admonition�s��3�3�$�y�/�3�3�3��Y���=�/�	�+7�+I�D�N�<�(��$�y�/�)�)�*6�*C���w�'��H�O�O�3�C�H�H�T�)�_�4M�4M�M�N�N�N��F��'�	C�+7�+B�D�N�<�(��d�9�o�%�%�d�.F�%�&2�&8�D�N�7�#����$��������/�0�0�0�0�0rPc��|jjr|j�d��dS|j�d��|�|��dS)N�}
z\end{DUadmonition}
)r]r8rvr6r�r�s  rO�depart_admonitionz!LaTeXTranslator.depart_admonition�sW���=�/�	��H�O�O�E�"�"�"��F�����/�0�0�0����4� � � � � rPc��|j�|�|�������|�|d��dS)N�author)rnr6r�r�rr�s  rO�visit_authorzLaTeXTranslator.visit_author�sH������d�k�k�$�+�+�-�-�8�8�9�9�9�����h�/�/�/�/�/rPc�0�|�|��dSrIrr�s  rO�
depart_authorzLaTeXTranslator.depart_author�rrPc��dSrIr�r�s  rO�
visit_authorszLaTeXTranslator.visit_authors�����rPc��dSrIr�r�s  rO�depart_authorszLaTeXTranslator.depart_authors�rrPc�d�|�|��|j�d��dS)Nz
\begin{quote}�r�rvr6r�s  rO�visit_block_quotez!LaTeXTranslator.visit_block_quote�s1�����$��������(�)�)�)�)�)rPc�d�|j�d��|�|��dS)Nz\end{quote}
�rvr6r�r�s  rO�depart_block_quotez"LaTeXTranslator.depart_block_quote�s1������(�)�)�)����4� � � � � rPc�d�|�|��|j�d��dS)Nz\begin{itemize}r1r�s  rO�visit_bullet_listz!LaTeXTranslator.visit_bullet_list�s1�����$��������*�+�+�+�+�+rPc�d�|j�d��|�|��dS)Nz\end{itemize}
r4r�s  rO�depart_bullet_listz"LaTeXTranslator.depart_bullet_list�s1������*�+�+�+����4� � � � � rPc�d�|j�d��|�|��dS)N�\textsuperscript{�rvr6rr�s  rO�visit_superscriptz!LaTeXTranslator.visit_superscript�s1������,�-�-�-����$�����rPc�d�|�|��|j�d��dS�NrA�r
rvr6r�s  rO�depart_superscriptz"LaTeXTranslator.depart_superscript��0�����4� � � ����������rPc�d�|j�d��|�|��dS)Nz\textsubscript{r<r�s  rO�visit_subscriptzLaTeXTranslator.visit_subscript�s1������*�+�+�+����$�����rPc�d�|�|��|j�d��dSr?r@r�s  rO�depart_subscriptz LaTeXTranslator.depart_subscript�rBrPc�:�|j�d��dS)Nz

\caption{�rvr6r�s  rO�
visit_captionzLaTeXTranslator.visit_caption�s�������'�'�'�'�'rPc�:�|j�d��dS�Nr$rHr�s  rO�depart_captionzLaTeXTranslator.depart_caption�������������rPc��|jstj|jd<|j�d��|�|��dS)N�titlereferencez\DUroletitlereference{)r{r/rOr>rvr6rr�s  rO�visit_title_referencez%LaTeXTranslator.visit_title_reference�sM���'�	K�/;�/J�D�N�+�,�����1�2�2�2����$�����rPc�d�|�|��|j�d��dSr?r@r�s  rO�depart_title_referencez&LaTeXTranslator.depart_title_referencerBrPc��|jr|�g��dS|j�d��|�|��dS)Nz\begin{figure}[b])r"r�rvr6r�r�s  rO�visit_citationzLaTeXTranslator.visit_citationsX���#�	+��&�&�r�*�*�*�*�*�
�H�O�O�0�1�1�1��$�$�T�*�*�*�*�*rPc�
�|jra|jd}d�|jdd���}|j�||g��|���dS|j�d��dS)Nrr*r��
\end{figure}
)r"rvrdrsr6r�)rNr��labelr�s    rO�depart_citationzLaTeXTranslator.depart_citation
s����#�	/��H�Q�K�E��7�7�4�8�A�B�B�<�(�(�D��N�!�!�5�$�-�0�0�0��%�%�'�'�'�'�'��H�O�O�-�.�.�.�.�.rPc�>�|jrM|js#|j�d��d|_dS|jddvs
Jd���|jd=dSd}d|vr	|d}nd|vr|jj|d}|j�d	|z��dS)
Nz\cite{r�r�r�rrz2unexpected non-whitespace while in reference labelr*�refid�refname�\hyperlink{%s}{[)r"r�rvr6rX�nameids)rNr��hrefs   rO�visit_citation_referencez(LaTeXTranslator.visit_citation_references����#�	8��7�
!�����	�*�*�*�78��4�4�4��x��|�{�2�2�2�L�3�2�2��H�R�L�L�L��D��$����G�}����d�"�"��}�,�T�)�_�=���H�O�O�/�$�6�7�7�7�7�7rPc���|jr�d}|�dd���}t|tj��rI|���dvr3|�dd���}t|tj��rd}|r|j�d��dS|j�d��d|_	dS|j�d��dS)NFT��descend�siblingsrZr
rA�]})
r"�	next_noder�r�Textr��citation_referencervr6r�)rNr��followup_citation�sibling�sibling2s     rO�depart_citation_referencez)LaTeXTranslator.depart_citation_reference(s����#�	"� %���n�n�U�T�n�B�B�G��7�E�J�/�/�
-��N�N�$�$��3�3�"�,�,�U�T�,�J�J���h��(@�A�A�-�(,�%� �
=������$�$�$�$�$������$�$�$�7<��4�4�4��H�O�O�D�!�!�!�!�!rPc�:�|j�d��dS)Nz	(\textbf{rHr�s  rO�visit_classifierz LaTeXTranslator.visit_classifier;s�������%�%�%�%�%rPc�:�|j�d��dS)Nz})rHr�s  rO�depart_classifierz!LaTeXTranslator.depart_classifier>������������rPc�:�|j�|��dSrI)rur�r�s  rOr�zLaTeXTranslator.visit_colspecAs����'�'��-�-�-�-�-rPc��dSrIr�r�s  rO�depart_colspeczLaTeXTranslator.depart_colspecDrrPc��t|jtj��s|j�d��|j�d|����dd��z��tj�)Nrrz%% %s
r�)	r�r�rr�rvr6r�r��SkipNoder�s  rO�
visit_commentzLaTeXTranslator.visit_commentGse���$�+�u�~�6�6�	"��H�O�O�D�!�!�!�����	�D�K�K�M�M�$9�$9�$��$G�$G�G�H�H�H��n�rPc��dSrIr�r�s  rO�depart_commentzLaTeXTranslator.depart_commentNrrPc���t|jtj��r|j�d��|d�dd��|�|��dS)Nrrr�rr�)r�r�rr�rvr6r�r�r�s  rO�visit_compoundzLaTeXTranslator.visit_compoundQs`���d�k�5�>�2�2�	"��H�O�O�D�!�!�!��Y����q�*�-�-�-����$�����rPc�0�|�|��dSrI�r�r�s  rO�depart_compoundzLaTeXTranslator.depart_compoundWrrPc�2�|�|d��dS)N�contactrr�s  rO�
visit_contactzLaTeXTranslator.visit_contactZrrPc�0�|�|��dSrIrr�s  rO�depart_contactzLaTeXTranslator.depart_contact]rrPc�0�|�|��dSrI)r�r�s  rO�visit_containerzLaTeXTranslator.visit_container`s�����$�����rPc�0�|�|��dSrIr}r�s  rO�depart_containerz LaTeXTranslator.depart_containercrrPc�2�|�|d��dS)N�	copyrightrr�s  rO�visit_copyrightzLaTeXTranslator.visit_copyrightfs������k�2�2�2�2�2rPc�0�|�|��dSrIrr�s  rO�depart_copyrightz LaTeXTranslator.depart_copyrightirrPc�2�|�|d��dS)Nrmrr�s  rO�
visit_datezLaTeXTranslator.visit_datels������f�-�-�-�-�-rPc�0�|�|��dSrIrr�s  rO�depart_datezLaTeXTranslator.depart_dateorrPc��dSrIr�r�s  rO�visit_decorationz LaTeXTranslator.visit_decorationrr-rPc��dSrIr�r�s  rO�depart_decorationz!LaTeXTranslator.depart_decorationvrrPc��dSrIr�r�s  rO�visit_definitionz LaTeXTranslator.visit_definitionyrrPc�:�|j�d��dS�NrrrHr�s  rO�depart_definitionz!LaTeXTranslator.depart_definition|rqrPc�d�|�|��|j�d��dS)Nz\begin{description}
r1r�s  rO�visit_definition_listz%LaTeXTranslator.visit_definition_lists1�����$��������0�1�1�1�1�1rPc�d�|j�d��|�|��dS)Nz\end{description}
r4r�s  rO�depart_definition_listz&LaTeXTranslator.depart_definition_list��1������.�/�/�/����4� � � � � rPc��dSrIr�r�s  rO�visit_definition_list_itemz*LaTeXTranslator.visit_definition_list_item�rrPc��dSrIr�r�s  rO�depart_definition_list_itemz+LaTeXTranslator.depart_definition_list_item�rrPc�:�|j�d��dS)Nr�rHr�s  rO�visit_descriptionz!LaTeXTranslator.visit_description�s�����������rPc��dSrIr�r�s  rO�depart_descriptionz"LaTeXTranslator.depart_description�rrPc�:�|�|j��dSrI)r�rDr�s  rO�
visit_docinfozLaTeXTranslator.visit_docinfo�s���"�"�4�<�0�0�0�0�0rPc��|���|jrpd|jd<|js(tj|jd<tj|jd<|j�dd��|j�d��dSdS)Nz\usepackage{tabularx}�tabularx�_providelengthrDrz@
% Docinfo
\begin{center}
\begin{tabularx}{\DUdocinfowidth}{lX}
z\end{tabularx}
\end{center}
)	r�rDr<r{r/�
providelengthr>r�r6r�s  rO�depart_docinfozLaTeXTranslator.depart_docinfo�s����!�!�#�#�#��<�	3�,D�D��j�)��+�
A�3?�3M���/�0�,8�,@���y�)��L����$L�
M�
M�
M�
�L���!2�
3�
3�
3�
3�
3�	3�	3rPc�F�|j�r|dvr�|dks|js|j�g��|dkr6d|_|�|�����}d|_n'|�|�����}|jd�|��tj�|dkrK|j	�|�|�������tj�|j
�d|�|��z��|dkr=d|_|j
�d	��|j�d
��dS|j�d��dS)N)r'�organizationr�rr'rTFrrmz\textbf{%s}: &
	z{\raggedright
z } \\
r)
r0rlr6r�r�r�r�rrvrmrvr�ri)rNr��namer�s    rOrz"LaTeXTranslator.visit_docinfo_item�s|���!�	%��G�G�G��8�#�#�4�+<�#��%�,�,�R�0�0�0��9�$�$�*.�D�'��;�;�t�{�{�}�}�5�5�D�*/�D�'�'��;�;�t�{�{�}�}�5�5�D��!�"�%�,�,�T�2�2�2��n�$������	� � ����T�[�[�]�]�!;�!;�<�<�<��n�$�����-��0C�0C�D�0I�0I�I�J�J�J��9���"&�D���H�O�O�.�/�/�/��L����,�,�,�,�,��L���	�*�*�*�*�*rPc�v�|j�|j�����d|_dSr�)rvr6rirr�r�s  rOrz#LaTeXTranslator.depart_docinfo_item�s2��������(�(�*�*�+�+�+�#����rPc�0�|�|��dSrI)�visit_literal_blockr�s  rO�visit_doctest_blockz#LaTeXTranslator.visit_doctest_block�rrPc�0�|�|��dSrI)�depart_literal_blockr�s  rO�depart_doctest_blockz$LaTeXTranslator.depart_doctest_block�s���!�!�$�'�'�'�'�'rPc���|js/t|��rXt|dtj��r:|jjdk}|xj|�|d|���z
c_dSdSdS)Nrr�F�r�r�)	r0r�r�rrAr]rcrjr��rNr�r�s   rO�visit_documentzLaTeXTranslator.visit_document�s����"�	E�c�$�i�i�	E��4��7�E�K�0�0�	E��}�2�h�>�G�����!3�!3�D�U�<C�"4�"E�"E�
E�����	E�	E�	E�	ErPc
�b�|jjs|jjdvr|���|jd<|j���|_|j���|_|j�tj	|j
z��|jr<|j�
|j��}|j�d|z��|jr|xjdg|jzdgzz
c_|js|j�r,|js|j�rd�
|j��g}|jr
||jz
}|jr*|ddd�
|j��zg|jzz
}|j�d	d
�
|��z��d�|jD��}|j�dd
�
|��z��|j�dd�
|j��z��|j�d��|j�r8t3|j��dk�r|js�d}|jD]0}t3|��t3|d��kr|d}�1|j�d|z��|jD]N}|d�dd��}|j�d|d�d|�d|d�d����O|j�d��nP|j�d|jdz��|j�d|jdz��d|jvr#|js|j�d��dSdSdS)N)r*r�r^z  pdfauthor={%s}z\hypersetup{rAr*�\\z\DUdocumentsubtitle{%s}z
\title{%s}�%
  c�8�g|]}d�|����S)r�)rd)r��author_entrys  rOr,z3LaTeXTranslator.depart_document.<locals>.<listcomp>�s4��>�>�>�'� �}�}�\�2�2�>�>�>rPz\author{%s}z \and
z	\date{%s}�, z\maketitle
rz
\begin{thebibliography}{%s}
rJrIz	\bibitem[r1�}{r�r$z\end{thebibliography}
z
\bibliographystyle{%s}
z\bibliography{%s}
�minitocz'
\faketableofcontents % for local ToCs
)r^rrr<r-r>r?r6r/�linkingr|rnr`rdrorAr0rlrmrjrBrkr@rCr"r�rsr\rvr��
has_latex_toc)rNr��authorsrA�widest_label�bi�cite_keys       rO�depart_documentzLaTeXTranslator.depart_document�s���
�J�%�	6��z�"�/�9�9�)-�����D��g�&� �-�:�:�<�<�����4�4�6�6����
���\�1�D�4I�I�J�J�J��>�	>��+�0�0���@�@�G��L��� 2�W� <�=�=�=��<�	F��M�M�o�.���=���E�E�M�M��:�	:��!�	:�'+�'8�	:�<@�I�	:��W�W�T�Z�(�(�)�E��z�
+���*�*���}�
3��%�4�r�w�w�t�}�7M�7M�M��"�2�3�3��
�N�!�!�-�'�,�,�u�2E�2E�"E�F�F�F�>�>�+/�+<�>�>�>�G��N�!�!�.�",�/�/�'�":�":�#;�
<�
<�
<�
�N�!�!�,����4�9�1E�1E�"E�F�F�F��!�(�(��9�9�9��#�	I��D�N�(;�(;�a�(?�(?��;�
I�!���.�-�-�B��<�(�(�3�r�!�u�:�:�5�5�')�!�u������� B� ,�!-�.�.�.��.�>�>�B�!�!�u�}�}�U�C�8�8�H��H�O�O�O�%'��U�U�U�H�H�H�b��e�e�e�%=�>�>�>�>����� :�;�;�;�;����� =� $��A��!/�0�0�0����� 6���Q�� G�H�H�H���)�)�)�$�2D�)��H�O�O�H�I�I�I�I�I�*�)�)�)rPc�d�|j�d��|�|��dS)Nz\emph{r<r�s  rO�visit_emphasiszLaTeXTranslator.visit_emphasiss0������	�"�"�"����$�����rPc�d�|�|��|j�d��dSr?r@r�s  rO�depart_emphasiszLaTeXTranslator.depart_emphasisrBrPc�4�|j�|j�����rf|j�d��|j���|j�|j������ddSdS)N� & )rur!r#rvr6r'rMs rO�(insert_additional_table_colum_delimitersz8LaTeXTranslator.insert_additional_table_colum_delimiterss�����+�+� $� 1� B� B� D� D�F�F�	,��H�O�O�E�"�"�"���)�)�+�+�+���+�+� $� 1� B� B� D� D�F�F�	,�	,�	,�	,�	,rPc	���|j���dkr|���n|j�d��d|vrd|vrtd���d|vr�d|jd<|ddz}|j�|j���|��|j�d	||j���fz��|j	�d
��n�d|vr�|j���dkr|j�
��}nd}|ddz}|j�d|||j�|j���|��|j�
��fz��|j	�d
��n|j	�d��t|��rrt|jjtj��s|j���r5|j�d
��|j	�d
��n|j	�d��|jjsN|jd�d��r.|���r|j�d��|j���dS)Nrr��morerows�morecolszWCells that span multiple rows *and* columns currently not supported by the LaTeX writerz\usepackage{multirow}�multirowr�z\multirow{%d}{%s}{rAr*z\multicolumn{%d}{%s%s%s}{�\textbf{rr@rE)rur#r�rvr6�NotImplementedErrorr<rr�rir�r�r�r�r�r�theadr)r��endswithr�r')rNr��mrows�bar1�mcolss     rOr'zLaTeXTranslator.visit_entry%s����-�-�/�/�1�4�4��9�9�;�;�;�;��H�O�O�E�"�"�"�����*��"4�"4�%�'<�=�=�
=�����,D�D��j�)���$�q�(�E���)�)� �-�>�>�@�@�%�
I�
I�
I��H�O�O�1�"�D�$5�$F�$F�$H�$H�I�J�
K�
K�
K��L����$�$�$�$�
�4�
�
�� �1�1�3�3�q�8�8��(�9�9�;�;�������$�q�(�E��H�O�O�8�"�!�!�.�D�D�!%�!2�!C�!C�!E�!E�u�N�N�!�.�?�?�A�A�	C�C�
D�
D�
D�
�L����$�$�$�$��L����#�#�#��t�9�9�	$�*�T�[�%7���E�E�	$�!�.�=�=�?�?�	$��H�O�O�K�(�(�(��L����$�$�$�$��L����#�#�#��!�0�	!�����%�%�c�*�*�	!����
�
�	!�
�H�O�O�C� � � ���%�%�'�'�'�'�'rPc���|j�|j�����|j�|j�����|���dSrI)rvr6rirr�r�s  rO�depart_entryzLaTeXTranslator.depart_entry_s^��������(�(�*�*�+�+�+�������(�(�*�*�+�+�+��5�5�7�7�7�7�7rPc�8�|j���dSrI)rurr�s  rOrzLaTeXTranslator.visit_rowes����#�#�%�%�%�%�%rPc�h�|j�|j�����dSrI)rvrrurr�s  rOrzLaTeXTranslator.depart_rowhs+�������)�4�4�6�6�7�7�7�7�7rPc�P�ddddddd�}gd�}d}|jre|jrG|jr@|js9d	�d
�|jd|j�D����|jz}|jr||jdz
}||�dd��z
}||�d
d��}|�dd	��}t|j��dz}dtj
|�����z}|�d|�d|�d|��}	|j�|	��|�
|��|dkrN|j�d��|||f||dz
kr!|j�d|�d|	�d���nad|z|j|<|j�d��|j�d|	z��|j�d|z��d|vr*|j�d||ddz
fz��dSdS)Nr*r��alph�Alph�roman�Roman)r*r��
loweralpha�
upperalpha�
lowerroman�
upperroman))r*r�r.)�(r��))r*r�r.)r*r�r.r.c3�4K�|]}t|��V��dSrI)r�)r��ns  rOrz8LaTeXTranslator.visit_enumerated_list.<locals>.<genexpr>s8����"$�"$�Q�#�a�&�&�"$�"$�"$�"$�"$�"$rPrr��enumtype�suffixr��enumr?r@rA�z\begin{enumerate}z
\renewcommand{\labelr�z\newcounter{%s}z\begin{list}z{%s}z{\usecounter{%s}}r�z
\setcounter{%s}{%d})r3r4�
section_levelrqrdrprVr
r�r��toRomanr�r6r�rvr>)
rNr��types�default_labelsr�r�r��
enum_level�counter_namerWs
          rO�visit_enumerated_listz%LaTeXTranslator.visit_enumerated_listks����#�%�%�&�&�(�(��0�0�0�����$�	9��3�
H��8J�
H��2�
H����"$�"$�"&�"6�7J��8J�7J�"K�"$�"$�"$�$�$�&*�&G�H���)�
9��$�4�R�8�8���$�(�(�8�R�(�(�(������*�h�7�7�8�����(�C�(�(����3�4�4�Q�6�
���
�j� 9� 9� ?� ?� A� A�A��"(�&�&�(�(�(�L�L�L�&�&�I���"�)�)�%�0�0�0����$������?�?��H�O�O�0�1�1�1���&�)�^�J�q�L�-I�I�I������!-���u�u�u�!6�7�7�7��,>��+L�D�N�<�(��H�O�O�O�,�,�,��H�O�O�F�U�N�+�+�+��H�O�O�0�<�?�@�@�@��d�?�?��H�O�O�4�)�4��=��?�;�<�
=�
=�
=�
=�
=��?rPc��t|j��dkr|j�d��n|j�d��|�|��|j���dS)Nr�z\end{enumerate}
z\end{list}
)r�rqrvr6r�rr�s  rO�depart_enumerated_listz&LaTeXTranslator.depart_enumerated_list�ss���t�)�*�*�a�/�/��H�O�O�0�1�1�1�1��H�O�O�O�,�,�,����4� � � ��"�&�&�(�(�(�(�(rPc��dSrIr�r�s  rO�visit_fieldzLaTeXTranslator.visit_field�r-rPc��dSrIr�r�s  rO�depart_fieldzLaTeXTranslator.depart_field�rrPc��t|jjtj��s/|j�|�|����dSdSrI)r�r�rrDrvr6r�r�s  rO�visit_field_bodyz LaTeXTranslator.visit_field_body�sM���$�+�,�e�m�<�<�	5��H�O�O�D�-�-�d�3�3�4�4�4�4�4�	5�	5rPc�Z�|j|jur|j�d��dSdS)Nr��rvrDr6r�s  rO�depart_field_bodyz!LaTeXTranslator.depart_field_body�s3���8�t�|�#�#��H�O�O�J�'�'�'�'�'�$�#rPc��|�|��|j|jur7|jstj|jd<|j�d��dSdS)N�	fieldlistz\begin{DUfieldlist})r�rvrDr{r/rr>r6r�s  rO�visit_field_listz LaTeXTranslator.visit_field_list�sc�����$�����8�4�<�'�'��+�
E�.:�.D���{�+��H�O�O�2�3�3�3�3�3�(�'rPc��|j|jur|j�d��|�|��dS)Nz\end{DUfieldlist}
)rvrDr6r�r�s  rO�depart_field_listz!LaTeXTranslator.depart_field_list�s@���8�4�<�'�'��H�O�O�2�3�3�3����4� � � � � rPc��|j|jur|j�d��dS|j�d��dS)Nr�z
\item[{rr�s  rO�visit_field_namez LaTeXTranslator.visit_field_name�sG���8�t�|�#�#��H�O�O�K�(�(�(�(�(�
�H�O�O�L�)�)�)�)�)rPc��|j|jur|j�d��dS|j�d��dS)Nz}: &z:}]rr�s  rO�depart_field_namez!LaTeXTranslator.depart_field_name�sE���8�t�|�#�#��H�O�O�F�#�#�#�#�#��H�O�O�E�"�"�"�"�"rPc�T�tj|jd<|�|��|j�dd��}|dkr|j�d|z��n|j�d��|xj|�|d���z
c_dS)Nr:r�r�z\begin{figure} %% align = "%s"
z\begin{figure}
T�r�)	r/r:r<r�r�r
rvr6r�)rNr��	alignments   rO�visit_figurezLaTeXTranslator.visit_figure�s���%1�%7���'�"����$�����O�'�'���:�:�	��� � �
�H�O�O�?�)�K�L�L�L�L��H�O�O�/�0�0�0����D�&�&�t�T�&�:�:�:����rPc�d�|j�d��|�|��dS)NrVr4r�s  rO�
depart_figurezLaTeXTranslator.depart_figure�s1������)�*�*�*����4� � � � � rPc�d�|�g��|j�d��dS)Nz\newcommand{\DUfooter}{�r�rvr6r�s  rO�visit_footerzLaTeXTranslator.visit_footer��1���"�"�2�&�&�&�����2�3�3�3�3�3rPc��|j�d��d�|j��|jd<|���dS)NrAr*z~footer�rvr6rdr<r�r�s  rO�
depart_footerzLaTeXTranslator.depart_footer��I����������')�w�w�t�x�'8�'8���)�$��!�!�#�#�#�#�#rPc
��	|dd}n#t$r|dd}YnwxYw|j�r|jstj|jd<|d���}|jjdkrd|z}|j	�
d|dd�d|�d|�|���d���|d|d	kr#|xj	|�|��z
c_	t|��d
kr>t|d
tj��r |j	�
d��dSdSdSdS)N�backrefsrr��	footnotesr�[%s]z%
\DUfootnotetext{r��namesr�rE)r�rhr{r/rr>r�r]�footnote_referencesrvr6r�r�r�r�rr})rNr��backref�nums    rO�visit_footnotezLaTeXTranslator.visit_footnote�se��	%��:�&�q�)�G�G���	%�	%�	%��5�k�!�n�G�G�G�	%�����"�	%��+�
E�.:�.D���{�+��q�'�.�.�"�"�C��}�0�J�>�>��s�l���H�O�O�O�!�%�[��^�^�^�W�W�W�d�k�k�#�6F�6F�6F�6F�H�
I�
I�
I��E�{�d�7�m�+�+����D�.�.�t�4�4�4����4�y�y�1�}�}��D��G�U�_�!E�!E�}������$�$�$�$�$�	%�	%��}�}�}s��,�,c�:�|j�d��dSrKrHr�s  rO�depart_footnotezLaTeXTranslator.depart_footnote�rMrPc���d}d|vr	|d}nd|vr|jj|d}|jj}|dkrN|�|��|j�d|z��|j�d��dS|jstj
|jd<|j�d|d	d
�d|�d���|j�d��dS)
Nr*r[r\rr]rerz\DUfootnotemark{r�rr�rA)rXr^r]r r�rvr6rir{r/rr>)rNr�r_�formats    rO�visit_footnote_referencez(LaTeXTranslator.visit_footnote_reference	s�����d�?�?���=�D�D�
�$�
�
��=�(��i��9�D���2���Z����$�$�T�*�*�*��H�O�O�/�$�6�7�7�7��L����%�%�%�%�%��+�
E�.:�.D���{�+��H�O�O�O�!�%�[��^�^�^�T�T�T�3�
4�
4�
4��L����$�$�$�$�$rPc�h�|j�|j�����dSrI�rvr6rirr�s  rO�depart_footnote_referencez)LaTeXTranslator.depart_footnote_reference	s*��������(�(�*�*�+�+�+�+�+rPc���t|jtj��rtj�t|jtj��sJ�|js|j�|��dSdSrI)	r�r�rr�rvr�r"rvr6)rNr��bracketrs    rO�label_delimzLaTeXTranslator.label_delim	si���d�k�5�>�2�2�	)��.� ��d�k�5�>�:�:�:�:�:��+�
)������(�(�(�(�(�
)�
)rPc�4�|�|dd��dS)z9footnote or citation label: in brackets or as superscriptrMr;N�r.r�s  rO�visit_labelzLaTeXTranslator.visit_label'	s!������s�$8�9�9�9�9�9rPc�4�|�|dd��dS)NrNrAr0r�s  rO�depart_labelzLaTeXTranslator.depart_label+	s ������s�C�(�(�(�(�(rPc��dSrIr�r�s  rO�visit_generatedzLaTeXTranslator.visit_generated/	rrPc��dSrIr�r�s  rO�depart_generatedz LaTeXTranslator.depart_generated2	rrPc�d�|�g��|j�d��dS)Nz\newcommand{\DUheader}{rr�s  rO�visit_headerzLaTeXTranslator.visit_header5	rrPc��|j�d��d�|j��|jd<|���dS)NrAr*z~headerrr�s  rO�
depart_headerzLaTeXTranslator.depart_header9	rrPc�l�|�tjdtd���tjd|��}|s|S|���dd�\}}|dvrd|z}nS|dkrd	t
|��d
zz}n7|jr0|dkr*|jstj
|jd<d
|jd<d|z}|S)z=Convert `length_str` with rst length to LaTeX length
        Nz|The optional argument `pxunit` of LaTeXTranslator.to_latex_length() is ignored and will be removed in Docutils 0.21 or laterrr-z(\d*\.?\d*)\s*(\S*))r*r�z%sbprEz%.3f\linewidth�Y@�pxr�z$
\DUprovidelength{\pdfpxdimen}{1bp}
z
%s\pdfpxdimen)rMrK�DeprecationWarningrY�match�groupsr:rxr{r/r�r>)rN�
length_str�pxunitr@r��units      rO�to_latex_lengthzLaTeXTranslator.to_latex_length>	s������M�@�#�q�	
2�
2�
2�
2�
��/��<�<���	����l�l�n�n�R�a�R�(���t��:����%��J�J�
�S�[�[�*�e�E�l�l�5�.@�A�J�J�
�]�	2�t�t�|�|��+�
N�3?�3M���/�0�#M�D�N�4� �)�E�1�J��rPc�4�|j|jd<|j}t|d���dd��}d|vr9t|jtj��rd|d<|�	|��g}g}g}ddd	d
ddd
�}d|vrV	||d}|�
|d��|�
|d��n#t$rYnwxYwd|vr1|�
d|�|d��z��d|vr!|�
d|ddzz��d|vr1|�
d|�|d��z��|�
|��s@t|jtjtjf��s|�
d��|�
|��s4t|jtj��s|�
d��|���|j�|��d}	|rdd�|��z}	|j�
d|	�d|�d���|j�|��dS)Nr��urir?�/r�r��r*r*)z\raisebox{-0.5\height}{rA)z\raisebox{-\height}{rA)z!\noindent\makebox[\linewidth][c]{rA)z
\noindent{z\hfill})z\noindent{\hfillrA)�bottom�middle�topr�r�r�rr��heightz	height=%s�scalezscale=%fr=r�zwidth=%srrr*rr
z\includegraphicsr@rA)rgr<r�rr�r�r�r�figurer�r6rrEr�r�rrvrrd)
rNr��attrs�	imagepath�pre�post�include_graphics_options�align_codes�
align_code�optionss
          rO�visit_imagezLaTeXTranslator.visit_image[	s���(,�(=���*�%���� ��u��.�.�6�6�t�S�A�A�	��%����$�+�u�|�4�4�
*�!)��g���'�'��-�-�-�����#%� ��7�4�A�1�0�	�	���e���
�(��w��8�
��
�
�:�a�=�)�)�)����J�q�M�*�*�*�*���
�
�
���
�����u���$�+�+��d�2�2�5��?�C�C�C�
E�
E�
E��e���$�+�+��e�G�n�u�4�5�
7�
7�
7��e���$�+�+��T�1�1�%��.�A�A�A�
C�
C�
C����t�$�$�	��d�k�E�L�%�.�+I�J�J�	��J�J�t�������t�$�$�	��d�k�5�<�8�8�	��K�K��������
�
�
�����������#�	D�����)A� B� B�C�G������W�W�W�i�i�i�H�I�I�I����������s�AC�
C#�"C#c�P�|xj|�|d���z
c_dS)NTr)rvr�r�s  rO�depart_imagezLaTeXTranslator.depart_image�	s)�����D�&�&�t�T�&�:�:�:����rPc�X�|dD]�}|�d��rQ|j�|dd���}|r,d|jj|<|j�d|z���h|jstj|j	d<|j�d|z����dS)Nr�r�r�Tz\foreignlanguage{%s}{�inlinez\DUrole{%s}{)
r�r^rrrvr6r{r/r\r>r�s    rOrzLaTeXTranslator.visit_inline�	s����	�?�		7�		7�C��~�~�k�*�*�
7��:�3�3�C����G�<�<���I�:>�D�J�-�h�7��H�O�O�$<�x�$G�H�H�H���/�C�/;�/B�D�N�8�,������#� 5�6�6�6�6�		7�		7rPc�f�|j�dt|d��z��dS)NrAr�)rvr6r�r�s  rOr
zLaTeXTranslator.depart_inline�	s-�������c�$�y�/�2�2�2�3�3�3�3�3rPc�p�|jstj|jd<|j�d��dS)N�legendz\begin{DUlegend})r{r/r_r>rvr6r�s  rO�visit_legendzLaTeXTranslator.visit_legend�	s7���'�	;�'3�':�D�N�8�$�����+�,�,�,�,�,rPc�:�|j�d��dS)Nz\end{DUlegend}
rHr�s  rO�
depart_legendzLaTeXTranslator.depart_legend�	s������+�,�,�,�,�,rPc�:�|j�d��dS)Nz\item[] rHr�s  rO�
visit_linezLaTeXTranslator.visit_line�	��������$�$�$�$�$rPc�:�|j�d��dSr�rHr�s  rO�depart_linezLaTeXTranslator.depart_line�	rqrPc��|js(tj|jd<tj|jd<|�|��t
|jtj	��r|j
�d��dS|�|��|j
�d��|�
|��dS)Nr��	lineblockz0\item[]
\begin{DUlineblock}{\DUlineblockindent}
z\begin{DUlineblock}{0em}
)r{r/r�r>rir�r�r�r�
line_blockrvr6r�r�r�s  rO�visit_line_blockz LaTeXTranslator.visit_line_block�	s����'�	A�/;�/I�D�N�+�,�*6�*@�D�N�;�'��#�#�D�)�)�)��d�k�5�#3�4�4�	0��H�O�O�J�
K�
K�
K�
K�
K�
���d�#�#�#��H�O�O�9�:�:�:��)�)�$�/�/�/�/�/rPc�d�|j�d��|�|��dS)Nz\end{DUlineblock}
r4r�s  rO�depart_line_blockz!LaTeXTranslator.depart_line_block�	r�rPc�:�|j�d��dS)Nz
\item rHr�s  rO�visit_list_itemzLaTeXTranslator.visit_list_item�	rerPc��dSrIr�r�s  rO�depart_list_itemz LaTeXTranslator.depart_list_item�	rrPc��d|_d|dvr?|jjdkr/tj|jd<|jstj|jd<|j	�
d��|�|��dS)NT�coder�r)r9z\texttt{)r�r]�syntax_highlightr/r9r<r{�highlight_rulesr>rvr6rr�s  rO�
visit_literalzLaTeXTranslator.visit_literal�	s�������d�9�o�%�%��
�.�&�8�8�)5�);�D��g�&��+�
F�)5�)E���v�&������$�$�$����$�����rPc�r�d|_|�|��|j�d��dS)NFrA)r�r
rvr6r�s  rO�depart_literalzLaTeXTranslator.depart_literal�	s7��������4� � � ����������rPc�h�t|��dkot|dtj��S)z,Check whether a node can be typeset verbatimr�r)r�r�rrgr�s  rO�is_plaintextzLaTeXTranslator.is_plaintext�	s'���D�	�	�Q��C�J�t�A�w��
�$C�$C�CrPc	�t�ddddd�}|j}|�|��}|j���}|o|jj}t
jt
jf}|jj	r|t
j
t
jfz
}|ot|j
|��}|dko|}	|�|��|xj|�|d���z
c_|sId|d	vr?|jjd
kr/t$j|jd<|jst$j|jd<|r�|r�|s�t$j|jd<|j�d
t5d�|����d��D����z��|j�d��nS|s7|	s5|j�d��|j�d��n|j�d��|r�|r�|r|	r�	|||jd<n#t<$rYnwxYwd|_|r|	r|j�d��|j�d|�d|j �d���|j�d|z��dS|rI|sGd|_!d|jd<|j�d��|j�d��dSd|_"d|_#d|_$|j�d��|j�d��dS)zjRender a literal block.

        Corresponding rST elements: literal block, parsed-literal, code.
        z6\usepackage{listings}
\lstset{xleftmargin=\leftmargin}z\usepackage{moreverb}z\usepackage{fancyvrb})�
lstlisting�listing�Verbatim�verbatimtabr|Trrsr�r)r9�ttemz\begin{minipage}{%d\ttemwidth}
c3�4K�|]}t|��V��dSrI)r�)r�r5s  rOrz6LaTeXTranslator.visit_literal_block.<locals>.<genexpr>
s(����E�E�4�S��Y�Y�E�E�E�E�E�ErPrrz
\end{minipage}
z\begin{quote}
z
\end{quote}
�
literal_blockz\lstset{xleftmargin=0pt}
r�rAz	
\end{%s}z\usepackage{alltt}rrz\begin{alltt}
z
\end{alltt}z\ttfamily\raggedright
r*N)%rWrzrur�r�rr��sidebarr]r8r�system_messager�r�r�rvr�rtr/r9r<r{rur>r�r6�maxr�rZrirr0rXrrr�r�r�)
rNr��packages�literal_env�
_plaintext�	_in_table�_autowidth_table�
_no_env_nodes�_use_env�
_use_listingss
          rOr�z#LaTeXTranslator.visit_literal_block�	s���
$G�7� 8�#;�	=�=���,���&�&�t�,�,�
��%�-�-�/�/�	�%�I��):�)I������7�
��=�/�	F��e�.��0D�E�E�M��L�j���m�&L�&L�"L��$��4�B�(�
�	
���$�������D�&�&�t�T�&�:�:�:����	F��$�y�/�)�)��
�.�&�8�8�)5�);�D��g�&��+�
F�)5�)E���v�&��
	&��
	&�*:�
	&�&2�%6�D�N�6�"��H�O�O�4��E�E�4�;�;�=�=�+>�+>�t�+D�+D�E�E�E�E�E�G�
H�
H�
H�
�L��� 5�6�6�6�6��	&�=�	&��H�O�O�.�/�/�/��L��� 2�3�3�3�3��L����%�%�%��	$�8�	$�-=�	$�,9�	$�
�5=�k�5J��!�/�2�2���
�
�
���
���� �D�M��
?�]�
?����� =�>�>�>��H�O�O�O�(�[�[�$�*D�*D�*D�F�
G�
G�
G��L���
�� ;�<�<�<�<�<�
�
	$�.�
	$��D�J�)>�D��g�&��H�O�O�.�/�/�/��L��� 0�1�1�1�1�1��D�L�"&�D��.2�D�+�
�H�O�O�7�8�8�8��L����#�#�#�#�#s�H*�*
H7�6H7c�:�d|_d|_d|_d|_d|_|j�|j�����|j�|j�����|�	|��dSr�)
r�r�r�r0rrrvr6rirr�r�s  rOr�z$LaTeXTranslator.depart_literal_block=
s���*/��'�#��������
���
�������(�(�*�*�+�+�+�������(�(�*�*�+�+�+����4� � � � � rPc�T�|j�d��}|j�d��}|r|sdS|dvr#|j�d|�d|�d���dS|dkr|j�d|z��dS|j�d	|�d|�d
���dS)Nr�r�)r'�creator�keywords�subjectrAz  pdfz={z},�producerz  addtopdfproducer={%s},z  pdfinfo={z}},)r�r
ror6)rNr�r�r�s    rO�
visit_metazLaTeXTranslator.visit_metaG
s�����"�"�6�*�*���/�%�%�i�0�0���	�7�	��F��H�H�H��L�������w�w�w� ?�@�@�@�@�@�
�Z�
�
��L��� :�7� B�C�C�C�C�C�
�L�������g�g�g� F�G�G�G�G�GrPc��dSrIr�r�s  rO�depart_metazLaTeXTranslator.depart_metaV
rrPrDc���|�|��d|jd<|����tj��}|dkr|jrddg}n<ddg}n7|�|dd���}d	|zd
d�|��d|zg}|�	d
|��|j
�|��|�|��tj�)z	math rolez\usepackage{amsmath}�amsmathrDz\(z\)FT�r�r�z%%
\begin{%s}
rrr*r�r�)rr<r�rpr�
uni2tex_tablerrr�rdr�rvrr
rrv)rNr��math_env�	math_code�wrapperr�s      rO�
visit_mathzLaTeXTranslator.visit_mathY
s������$����'>���)�$��K�K�M�M�+�+�K�,E�F�F�	��s�?�?��z�
%� �%�.�����*����'�'����'�M�M�F�*�X�5���w�w�v���"�X�-�/�G�	���q�)�$�$�$������ � � ����4� � � ��n�rPc��dSrIr�r�s  rO�depart_mathzLaTeXTranslator.depart_matho
rrPc�v�t|�����}|�||���dS)N)r�)rr�r�)rNr�r�s   rO�visit_math_blockz LaTeXTranslator.visit_math_blockr
s3��(������7�7������x��0�0�0�0�0rPc��dSrIr�r�s  rO�depart_math_blockz!LaTeXTranslator.depart_math_blockv
rrPc�X�|jdr|j�d��dSdS)Nrr�)rirvr6r�s  rO�visit_optionzLaTeXTranslator.visit_optiony
s5���<���	"��H�O�O�D�!�!�!�!�!�	"�	"rPc�0�|jdxxdz
cc<dS)Nrr�)rir�s  rO�
depart_optionzLaTeXTranslator.depart_option~
s&����R����A������rPc�b�|j�|�dd����dS)z@Append the delimiter between an option and its argument to body.�	delimiterr�N)rvr6r
r�s  rO�visit_option_argumentz%LaTeXTranslator.visit_option_argument�
s*����������c�2�2�3�3�3�3�3rPc��dSrIr�r�s  rO�depart_option_argumentz&LaTeXTranslator.depart_option_argument�
rrPc�n�|j�d��|j�d��dS)Nz
\item[r)rvr6rir�s  rO�visit_option_groupz"LaTeXTranslator.visit_option_group�
s2�������$�$�$�����A�����rPc�l�|j���|j�d��dS)Nz] )rirrvr6r�s  rO�depart_option_groupz#LaTeXTranslator.depart_option_group�
s0������������������rPc���|js(tj|jd<tj|jd<|�|��|j�d��dS)Nr��
optionlistz\begin{DUoptionlist})r{r/r�r>r�r�rvr6r�s  rO�visit_option_listz!LaTeXTranslator.visit_option_list�
s\���'�	C�/;�/I�D�N�+�,�+7�+B�D�N�<�(����$��������/�0�0�0�0�0rPc�d�|j�d��|�|��dS)Nz\end{DUoptionlist}
r4r�s  rO�depart_option_listz"LaTeXTranslator.depart_option_list�
s1������/�0�0�0����4� � � � � rPc��dSrIr�r�s  rO�visit_option_list_itemz&LaTeXTranslator.visit_option_list_item�
rrPc��dSrIr�r�s  rO�depart_option_list_itemz'LaTeXTranslator.depart_option_list_item�
rrPc��dSrIr�r�s  rO�visit_option_stringz#LaTeXTranslator.visit_option_string�
r-rPc��dSrIr�r�s  rO�depart_option_stringz$LaTeXTranslator.depart_option_string�
r-rPc�2�|�|d��dS)Nr�rr�s  rO�visit_organizationz"LaTeXTranslator.visit_organization�
s������n�5�5�5�5�5rPc�0�|�|��dSrIrr�s  rO�depart_organizationz#LaTeXTranslator.depart_organization�
rrPc��|j�|��}|dkrBt|jtjtjtjtjf��rn�|dkrTt|jtj��r5t|j|dz
tjtjf��snd|j	j
r>|dkr|�d|���|dkr|j�
d��n|j�
d��|xj|�|d���z
c_|�|��dS)Nrr�z:LaTeX merges paragraphs in tables with auto-sized columns!��	base_noderrTr)r��indexr�r�	list_item�descriptionr�r�r}rur�rKrvr6r�r)rNr�r�s   rO�visit_paragraphzLaTeXTranslator.visit_paragraph�
sQ��
��!�!�$�'�'���A�:�:�*�T�[�&+�o�u�7H�&+�n�e�o�&G�H�H�:�
��a�i�i��T�[�%�.�9�9�� ���U�Q�Y�!7�"'�/�5�>�!B�D�D��
�
�
�
-�	"���z�z��	�	�5�@D��F�F�F��q�y�y������%�%�%���H�O�O�D�!�!�!����D�&�&�t�T�&�:�:�:������$�����rPc��|�|��|jjs|j�d��dSdSr�)r
rur�rvr6r�s  rO�depart_paragraphz LaTeXTranslator.depart_paragraph�
sH�����4� � � �� �/�	"��H�O�O�D�!�!�!�!�!�	"�	"rPc���tj|jd<|j�d��|�|��|j�d|dz��dS)Nr9r�z"\hyperlink{%s}{\textbf{\color{red}r[)r/r9r<rvr6r�r�s  rO�visit_problematicz!LaTeXTranslator.visit_problematic�
s^��%1�%7���'�"���������� � ��&�&�&�����=��W�
�M�N�N�N�N�NrPc�:�|j�d��dS)N�}}rHr�s  rO�depart_problematicz"LaTeXTranslator.depart_problematic�
rqrPc�F�d|�dd�����vrtj�|�|��s9t|jtj��s|j�	d��|�
|��d|_dS)Nrr'r*rrT)r
rZrrvr�r�r�r�rvr6rr0r�s  rO�	visit_rawzLaTeXTranslator.visit_raw�
s����$�(�(�8�R�0�0�6�6�8�8�8�8��.� ����t�$�$�	"��d�k�5�>�:�:�	"��H�O�O�D�!�!�!����$������
�
�
rPc��d|_|�|��|�|��s|j�d��dSdS)NFrr)r0r
r�rvr6r�s  rO�
depart_rawzLaTeXTranslator.depart_raw�
sU����
����4� � � ��~�~�d�#�#�	"��H�O�O�D�!�!�!�!�!�	"�	"rPc�Z�d}|D]!}|dkr|dz
}|dkr|dz}|dkrdS�"|dkS)z7Test whether there are unmatched '{' or '}' characters.rr@r�rATr�)rNrgr�r�s    rO�has_unbalanced_bracesz%LaTeXTranslator.has_unbalanced_braces�
sY�����	�	�B��S�y�y���
���S�y�y���
���q�y�y��t�t����z�rPc	��td��dtd��dtd��di}d|vr�t|d���|��}|�d��d	ks|�|��r|�d
|z��|d|���kr)|j�d|z��tj
�|j�d|z��dSd
|vr	|d
}n,d|vr|jj|d}ntd���|�|��s|j�d��|j�d|z��|jrF|j�d|j�d|�dd���d���tj
�dS)NrBrCrErFr?r��refuriz^^rzYExternal link "%s" not supported by LaTeX.
 (Must not contain "^^" or unbalanced braces.)z\url{%s}z
\href{%s}{r[r\zUnknown reference.rrz\hyperref[%s]{r@r*r�)rqr�rpryr�rLr�rvr6rrvrXr^�AssertionErrorr�rTr�)rNr��
special_charsr_s    rO�visit_referencezLaTeXTranslator.visit_reference�
s����S���5��S���5��T���F��
�
�t����t�H�~�&�&�0�0��?�?�D��y�y����"�$�$��(B�(B�4�(H�(H�$��
�
�E�GK�L�M�M�M��H�~������.�.������d� 2�3�3�3��n�$��H�O�O�M�D�0�1�1�1��F��d�?�?���=�D�D�
�$�
�
��=�(��i��9�D�D� �!5�6�6�6��~�~�d�#�#�	"��H�O�O�D�!�!�!�����)�D�0�1�1�1�� �	!��H�O�O�O�!�2�2�2�D�L�L��b�4I�4I�4I�4I�K�
L�
L�
L��.� �	!�	!rPc��|j�d��|�|��s|j�d��dSdS)NrArr)rvr6r�r�s  rO�depart_referencez LaTeXTranslator.depart_referencesN�����������~�~�d�#�#�	"��H�O�O�D�!�!�!�!�!�	"�	"rPc�2�|�|d��dS)N�revisionrr�s  rO�visit_revisionzLaTeXTranslator.visit_revisions������j�1�1�1�1�1rPc�0�|�|��dSrIrr�s  rO�depart_revisionzLaTeXTranslator.depart_revisionrrPc�p�|jstj|jd<|j�d��dS)N�rubricz
\DUrubric{)r{r/r�r>rvr6r�s  rO�visit_rubriczLaTeXTranslator.visit_rubric"s8���'�	;�'3�':�D�N�8�$�	
�����(�(�(�(�(rPc�:�|j�d��dSrKrHr�s  rO�
depart_rubriczLaTeXTranslator.depart_rubric)rMrPc��|xjdz
c_|j�d��|j|jdz
xxdz
cc<dS)Nr�r)r�rpr6r�s  rO�
visit_sectionzLaTeXTranslator.visit_section,sZ�����a������#�#�A�&�&�&���T�/�!�3�4�4�4��9�4�4�4�4�4rPc�X�|j���|xjdzc_dSr&)rprr�r�s  rO�depart_sectionzLaTeXTranslator.depart_section3s1���� � �"�"�"����a�����rPc���|�|��tj|jd<|jstj|jd<|j�d��dS)Nr9r�z\DUsidebar{)	r�r/r9r<r{r�r>rvr6r�s  rO�
visit_sidebarzLaTeXTranslator.visit_sidebar8sZ�����$����%1�%7���'�"��'�	=�(4�(<�D�N�9�%������'�'�'�'�'rPc�d�|j�d��|�|��dSrKr4r�s  rO�depart_sidebarzLaTeXTranslator.depart_sidebar?s0�������������4� � � � � rP)u—r*)r�r�rIr%c���|j|jj\}}|j�d��|j�|��|j�|��dS)Nz\nopagebreak

\raggedleft )�attribution_formatsr]�attributionrvr6ri)rNr�r�r�s    rO�visit_attributionz!LaTeXTranslator.visit_attributionHs]���1�$�-�2K�L��������8�9�9�9�������������F�#�#�#�#�#rPc�n�|j�|j���dz��dSr�r*r�s  rO�depart_attributionz"LaTeXTranslator.depart_attributionNs/��������(�(�*�*�T�1�2�2�2�2�2rPc�2�|�|d��dS)N�statusrr�s  rO�visit_statuszLaTeXTranslator.visit_statusQs������h�/�/�/�/�/rPc�0�|�|��dSrIrr�s  rO�
depart_statuszLaTeXTranslator.depart_statusTrrPc�d�|j�d��|�|��dS)Nr�r<r�s  rO�visit_strongzLaTeXTranslator.visit_strongWs0�������$�$�$����$�����rPc�d�|�|��|j�d��dSr?r@r�s  rO�
depart_strongzLaTeXTranslator.depart_strong[rBrPc��tj�rI)rrvr�s  rO�visit_substitution_definitionz-LaTeXTranslator.visit_substitution_definition_s
���n�rPc�0�|�|��dSrI)�unimplemented_visitr�s  rO�visit_substitution_referencez,LaTeXTranslator.visit_substitution_referencebrrPc�D�t|jtj��rm|�|j��|jstj|j	d<|j
jdk}|xj|�
|d|���z
c_dSt|jtj��r?|j�d|j�|jdz��z��dS|jstj|j	d<|j�d��dS)	N�documentsubtitler�Fr�z\%s*{r�rBz
\DUsubtitle{)r�r�rrXr�rBr{r/rr>r]rcrkr�rzrvr6rer�r�s   rO�visit_subtitlezLaTeXTranslator.visit_subtitlees.���d�k�5�>�2�2�	/��&�&�t�}�5�5�5��+�
S�5A�5R���1�2��}�2�h�>�G�� � �D�$6�$6�t��?F�%7�%H�%H�
H� � � � ����U�]�
3�
3�	/��H�O�O�H� �L�0�0��1C�a�1G�H�H�I�
J�
J�
J�
J�
J��+�
C�-9�-B���z�*��H�O�O�-�.�.�.�.�.rPc��t|jtj��r|���dS|j�d��dSrK)r�r�rrXr�rvr6r�s  rO�depart_subtitlezLaTeXTranslator.depart_subtitlevsJ���d�k�5�>�2�2�	#��%�%�'�'�'�'�'��H�O�O�E�"�"�"�"�"rPc��tj|jd<|jstj|jd<|jjrtj|jd<dg|d<|�	|��|jjr|j
�d��n|j
�d��|�|��	d|dz}n#t$rd	}YnwxYw|j
�d
|d�d|d
�d|�|d���d|�d�	��t|d��dkrE|j
�d|ddz��|j�d��dSd�t#|d��D��}|j�dd�|��z��dS)Nr9rAzsystem-messager�z)
\DUtitle[system-message]{system-message
z
\DUtitle{system-message
z	, line~%sr5r*z}

{\color{red}�typerHr�z
} in \texttt{�sourcerArrrr�z
\hyperlink{%s}{rc�(�g|]\}}d||dzfz��S)z\hyperlink{%s}{%d}r�r�)r�rr_s   rOr,z8LaTeXTranslator.visit_system_message.<locals>.<listcomp>�s?��F�F�F�%�Q��.��q��s��;�F�F�FrPz
backrefs: r�)r/r9r<r{rAr>r]r8�title_legacyr"rvr6r�rr�r�rir�rd)rNr�r5rs    rO�visit_system_messagez$LaTeXTranslator.visit_system_message|s���%1�%7���'�"��'�	9�&2�&8�D�N�7�#��=�/�	@�&2�&?�D�N�7�#�+�,��Y�����d�#�#�#��=�/�	<��H�O�O�J�K�K�K�K��H�O�O�:�;�;�;�� � ��&�&�&�	���f��-�D�D���	�	�	��D�D�D�	����������f����t�G�}�}�}����T�(�^�4�4�4�4�d�d�d�<�	=�	=�	=��t�J�� � �A�%�%��H�O�O�0�4�
�3C�A�3F�F�G�G�G��L����$�$�$�$�$�F�F�)2�4�
�3C�)D�)D�F�F�F�H��L����s�x�x��/A�/A� A�B�B�B�B�Bs�C�C�Cc��|j�|j�����|�|��dSrI)rvr6rirr%r�s  rO�depart_system_messagez%LaTeXTranslator.depart_system_message�s>��������(�(�*�*�+�+�+����t�$�$�$�$�$rPc�<�|�|��tj|jd<|jjstj|jd<|j���r4|j	�
|j��t|d��|_|jjdkr�t|jtj��rn|j�|��dkrP|j�|j���d��dkr|j�
d��|j���|j�||j��|jjd	kr
d
|jd	<|�g��dS)Nr;�table1�tabularr�r�r}rr�rz\usepackage{booktabs})r�r/r;r<r]r9�table_columnwidthrur�rtr6r�r�r�r�rrzr�rer�ryrvr_r�r�r�r�s  rO�visit_tablezLaTeXTranslator.visit_table�s{�����$����%1�%7���'�"��}�1�	I�*6�*H�D��h�'���$�$�&�&�	7���#�#�D�$5�6�6�6� %�d�I� 6� 6�D��
��)�[�8�8��4�;��
�6�6�
9���!�!�$�'�'�1�,�,���$�$��%�'�'�'+�t�K�'8�'8�B�?�?��H�O�O�N�+�+�+����� � � ���)�)�$��
�>�>�>���$�
�2�2�,D�D��j�)��"�"�2�&�&�&�&�&rPc��|j}|���	|�|d��}n#t$rd}YnwxYw|j�|j�|����|xj|z
c_|j�|j���dz��|j���t|j
��dkr|j
���|_|xj|�|dd���z
c_|�
|��dS)Nr�r�rrrFTr�)rvr�rErr6rur�r�r�r�rtrr�r�)rNr�r�r�s    rO�depart_tablezLaTeXTranslator.depart_table�s?���(���!�!�#�#�#�	"��(�(��g��7�7�E�E���	"�	"�	"�!�E�E�E�	"����	
�����)�5�5�e�<�<�=�=�=����G���������)�5�5�7�7�$�>�?�?�?�����!�!�!��t�� � �1�$�$� $� 0� 4� 4� 6� 6�D��	
���D�&�&�t��t�&�L�L�L������4� � � � � s�9�A�Ac��d|vsd|vsd|vrdS|j�d��t|jtjtjf��}|xj|�||��z
c_dS)Nr�r[r\r�)rvr6r�r�rr�rAr�)rNr�r�s   rO�visit_targetzLaTeXTranslator.visit_target�s{�������$����D� � ��F���������#�D�K�%�-���1M�N�N�N�
����D�&�&�t�Z�8�8�8����rPc��dSrIr�r�s  rO�
depart_targetzLaTeXTranslator.depart_target�rrPc��|j�d��s,|�|��|�d��dSdS)N�preamble written)rur
rrr�s  rO�visit_tbodyzLaTeXTranslator.visit_tbody�sV��� �$�$�%7�8�8�	$����T�"�"�"����d�#�#�#�#�#�	$�	$rPc��dSrIr�r�s  rO�depart_tbodyzLaTeXTranslator.depart_tbody�rrPc�:�|j�d��dS)zdefinition list termz\item[{NrHr�s  rO�
visit_termzLaTeXTranslator.visit_term�s��	
����
�#�#�#�#�#rPc��|j�d��|�dd���}t|tj��s/|j�|�|����dSdS)Nz}] FTrb)rvr6rfr�r�
classifierr�)rNr�rfs   rO�depart_termzLaTeXTranslator.depart_term�st�����������N�N�5�4�N�@�@�	��)�U�%5�6�6�	:��H�O�O�D�-�-�i�8�8�9�9�9�9�9�	:�	:rPc��dSrIr�r�s  rO�visit_tgroupzLaTeXTranslator.visit_tgroup�rrPc��dSrIr�r�s  rO�
depart_tgroupzLaTeXTranslator.depart_tgroup�rrPc��|jSrI)�_thead_depthrMs rOr�zLaTeXTranslator.thead_depth�r$rPc��|xjdz
c_d|���krP|j�d|j�|��z��|j�dd��|j�|j�����|j�|j�	����dS)Nr�z{%s}
r)
r+r�rvr6rur�r�r�rrr�s  rOrzLaTeXTranslator.visit_thead�s������Q������ � �"�"�"�"��H�O�O�H�t�'8�'E�'E�d�'K�'K�K�L�L�L���!�!�"4�a�8�8�8������)�5�5�7�7�8�8�8������)�5�5�7�7�8�8�8�8�8rPc���|�_|j�|j�����|j���r|�|��|xjdzc_dSr&)rvrrurrrYr+r�s  rOrzLaTeXTranslator.depart_theadsn�����H�O�O�D�-�:�:�<�<�=�=�=�� �-�-�/�/�
%����t�$�$�$����Q�����rPc��t|jtj��rx|�|j��|j�d��|j�d|�	|�
����z��dSt|jtj��s>t|jtj��st|jtj
��r�|jdp|jjg}|jjrEt"j|jd<|j�dd�|��z��n5|jst"j|jd<|j�d��|j�d��dSt|jtj��r;|�|jj��|j�d��dSt5t"d	��rt"j|jd	<|j}|j�|��}|j�d
��|tA|jj!��kr�|jjr/t"j|jd<|dtEj#|��zz
}n^|js(t"j|jd<t"j$|jd<|j�d
tEj#|��z��d|jdvr]t"j%|jd<|�	|�
����}|j�d|�d|�d���n|j�d|z��dg}||�&|jd���z
}|j�d�|��dz��|tA|jj!��kr#|jjs|jdxxdz
cc<dSdSdS)z Append section and other titles.r*z  pdftitle={%s},r�rAz
\DUtitle[%s]{r
z

\DUtitle{r$r~z

z[section%s]r�z\begin{DUclass}{section%s}
zsystem-messagesr9r?rMz
]{\color{red}z\%s{F)r�r�z%
}
rr�N)'r�r�rrXr�rArir6ror�r��topicrr��tagnamer]r8r/r
r>rvrdr{r;rur�rr~r<r�rerzr�r�r�r�r�r9r�)rNr�r�r��section_name�
section_title�bookmarks       rO�visit_titlezLaTeXTranslator.visit_title
s����d�k�5�>�2�2�=	7��&�&�t�z�2�2�2��L����#�#�#��L��� 2� $���D�K�K�M�M� :� :�!;�
<�
<�
<�
<�
<����e�k�2�2�7	7��D�K��)9�:�:�7	7��D�K���7�7�7	7��k�)�,�E���1D�0E�G��}�3�
0�*6�*C���w�'����� 2�S�X�X�g�5F�5F� F�G�G�G�G��/�A�.:�.@�D�N�7�+������/�/�/��L����&�&�&�&�&�
���U�[�
1�
1�*	7��&�&�t�'8�'@�A�A�A��L����#�#�#�#�#��|�]�3�3�
L�3?�3K��!�-�0��&�E��<�/�/��6�6�L��H�O�O�F�#�#�#��s�4�<�0�1�1�1�1��=�7�<�.:�.G�D�N�7�+� �M�E�M�%�4H�4H�$H�H�L�L��3�I�2>�2D���w�/�4@�4H���y�1��H�O�O�$C�&+�m�E�&:�&:�%;�<�<�<�!�D�K�	�$:�:�:�-9�-?��!�'�*� $���D�K�K�M�M� :� :�
������ ,���m�m�m�!=�>�>�>�>������,� 6�7�7�7��t�H�
��*�*�4�;�5�*�I�I�I�H��L������X� 6� 6�� A�B�B�B���D�L�1�2�2�2�2��
�<�3���R� � � �$6�6� � � � � �3�2�2�2rPc���|j�|j�����t	|jtjtjf��r|�	��dSdSrI)
rvr6rirr�r�rr;rXr�r�s  rO�depart_titlezLaTeXTranslator.depart_titleQsc��������(�(�*�*�+�+�+��d�k�E�K���#@�A�A�	(��%�%�'�'�'�'�'�	(�	(rPc	��|jr~d|dvrt|j�|j��}dddd�}d|jjvr|d=	||}n4#t
$r'|�d	|z|�
��tj�wxYw|j	�
d��|dr%|xj	|�|d
���z
c_	t|�
��tj��r�d|dvrw|jjdkrg|j	�
d|jdz|�
�����|�ddg��dfz��|js+t&j|jd<|�|��dS|�dd��}t/|jj��}t|�
��tj��r.|�|d�����}nd}d|dvr�t&j|jd<d|z|jd|z<d||fz|jd|z<dddd�}d|jjvrd|d<|r(|j	�
d ||||zfz��|j	�
d!|�d"|�d#���|j	�
d$|z��n{|r5|j	�
d%|j�|��z��|d&kr|j	�
d'|z��|j	�
d(��d
|_tj�))z_Write the table of contents.

        Called from visit_topic() for "contents" topics.
        �localr�rm�mini�sect)rmr�rzr�rzzUSkipping local ToC at "%s" level.
  Feature not supported with option "use-latex-toc"r�rrrTrr�z\pdfbookmark[%d]{%s}{%s}
r�r��contentsrztoc-listNr�r*r�z\do%stoczminitoc-z\mtcsetdepth{%stoc}{%d}zminitoc-%s-depth)r:r9rmrz\setcounter{%stocdepth}{%d}z
\mtcsettitle{ztoc}{r$z\%stoc
z\setcounter{tocdepth}{%d}
�Contentsz!\renewcommand{\contentsname}{%s}
z\tableofcontents
)r/rerzr�r�rrKrrvrvr6r�r�rfrAr]rcr�r
r/�toc_listr>r�r�r�r�r<r�r�)	rNr�r1�
minitoc_names�mtc_namer��maxdepthrA�offsets	         rO�visit_contentszLaTeXTranslator.visit_contentsVs�����	%�'�T�)�_�"<�"<��<�/�/��0B�C�C�L�%+�(.�(.�0�0�M��D�L�1�1�1�!�)�,�
%�(��6�����
%�
%�
%��	�	�P�(�)�48��:�:�:��n�$�	
%����	
����������=�	?��H�H��*�*�4��*�>�>�>�H�H��t�~�~�'�'���5�5�	@��t�I��.�.��
�+�x�7�7��H�O�O�9�!�/��1�!�^�^�-�-�4�4�6�6�!�X�X�e�j�\�:�:�1�=�?�?�
@�
@�
@��!�	�)5�)>�D�N�:�&����d�#�#�#��F�����!�$�$���t�|�,�-�-���d�n�n�&�&���4�4�	��K�K��Q���� 0� 0�1�1�E�E��E��d�9�o�%�%�+7�+?�D��i�(�5@��5I�D��j��1�2�*�h��-A�A�
��0�8�;�<� ��A�6�6�F��D�L�1�1�1�!#��v���
F����� >�!)�5�6�(�3C�+C� D�!E�F�F�F�
�H�O�O�O�H�H�H�e�e�e�L�M�M�M��H�O�O�K�(�2�3�3�3�3��
K����� >�"&�,�"B�"B�5�"I�"I�!J�K�K�K��
�"�"����� F�� N�O�O�O��H�O�O�1�2�2�2�!%�D���n�s�	A�1Bc��d|dvr|�|��dSd|dvr�|jjry|�|j��|j�d��t|���tj
��r|�d��dSdSd|dvrV|jstj|jd<|jjrtj|jd<|�|j��n\d|dvr6|jstj|jd<|�|j��n|d�dd��|�|��dS)Nr;r�rFz\begin{abstract}rrEr/)rBr]r1r�rFrvr6r�rfrrArr{r/r>r8�abstract_legacyrEr�r2r�s  rO�visit_topiczLaTeXTranslator.visit_topic�s�����i��(�(�����%�%�%�%�%��D��O�+�+��-�2�,��&�&�t�}�5�5�5��H�O�O�/�0�0�0��$�.�.�*�*�E�K�8�8�
����������
�
��T�)�_�,�,��/�G�1=�1F�D�N�:�.��=�7�N�1=�1M�D�N�:�.��*�*�4�=�9�9�9�9���i��0�0��/�K�3?�3J�D�N�<�0��*�*�4�?�;�;�;�;��Y��&�&�q�'�2�2�2��"�"�4�(�(�(�(�(rPc�&�d|dvr'|jjr|j�d��n5d|dvr|�|��n|�|��d|dvs
d|dvr|���dSdS)NrFr�z\end{abstract}
r;rE)r]r1rvr6r�r5r�r�s  rO�depart_topiczLaTeXTranslator.depart_topic�s����$�y�/�)�)��
�0�
*��H�O�O�/�0�0�0�0�
�4�	�?�
*�
*����t�$�$�$�$��#�#�D�)�)�)��$�y�/�)�)��t�I��.�.��%�%�'�'�'�'�'�/�.rPc��|jstj|jd<|j�d��|j�d��dS)N�
transitionzN
%___________________________________________________________________________
z\DUtransition
)r{r/rIr>rvr6r�s  rO�visit_transitionz LaTeXTranslator.visit_transition�sM���'�	C�+7�+B�D�N�<�(�����/�0�0�0�����*�+�+�+�+�+rPc��dSrIr�r�s  rO�depart_transitionz!LaTeXTranslator.depart_transition�rrPc�2�|�|d��dS)N�versionrr�s  rO�
visit_versionzLaTeXTranslator.visit_version�rrPc�0�|�|��dSrIrr�s  rO�depart_versionzLaTeXTranslator.depart_version�rrPc�:�td|jjz���)Nz$visiting unimplemented node type: %s)r�r�rur�s  rOrz#LaTeXTranslator.unimplemented_visit�s$��!�"H�"&�.�"9�#:�;�;�	;rP)TFFrI)rD)�rurvrwr#rxr3r4rVr�r�r�r0r�r�r�rrr�rJrErPr�r�rY�compiler�r�r�r�r�r�r�r�r�r�r�r�rrrrrrrr"r%r(r*r,r/r2r5r7r9r=rArDrFrIrLrPrRrTrXr`rlrnrpr�rtrwryr{r~r�r�r�r�r�r�r�r�r�r�r�r�r�r�r�r�r�r�r�r�rrr�r�r�r�r�r�r�r'r�rrr�r�r�r�rrrrr
rrrrrr#r%r(r+r.r1r3r5r7r9r;rErXrZrr
r`rbrdrgrkrmrorqrvrxrzr�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�rrrrrrrrrrrr r"r%r'r)r+r�rrr4r6rBrErGrJrLrOrQr�
__classcell__)r�s@rOrKrKYs�����������H�!��&+�"�$'� �
�M��M�',�#��H�!&���N��G��E�-2�dI�dI�dI�dI�dI�dI�X � � �D'&�'&�'&�R:�:�:�U�U�U�p%�"�*�^�4�4�6�6�6�6�:�:�:�>�>�>�<A�#����� @�@�@�.�.�.�.�@�@�@�$
4�
4�
4����(�(�(����44�4�4�
�
�
� � � �!�!�!� � � �!�!�!�1�1�1�'�'�'�1�1�1�"!�!�!�0�0�0�'�'�'�
�
�
�
�
�
�*�*�*�!�!�!�,�,�,�!�!�!� � � ���� � � ����(�(�(���� � � ����+�+�+�/�/�/�8�8�8�""�"�"�&&�&�&����.�.�.�
�
�
����
�
�
� � � �!�!�!�1�1�1�'�'�'� � � �!�!�!�3�3�3�'�'�'�.�.�.�'�'�'�
�
�
�
�
�
�
�
�
����2�2�2�!�!�!�
�
�
�
�
�
����
�
�
�1�1�1�3�3�3� +�+�+�6$�$�$�
'�'�'�(�(�(�E�E�E�?J�?J�?J�B � � ����,�,�,�8(�8(�8(�t8�8�8�&�&�&�8�8�8�/=�/=�/=�b)�)�)�
�
�
�
�
�
�5�5�5�(�(�(�4�4�4�!�!�!�
*�*�*�#�#�#�
;�
;�
;�!�!�!�4�4�4�$�$�$�
%�%�%�(���%�%�%�6,�,�,�)�)�)�:�:�:�)�)�)�
�
�
�
�
�
�4�4�4�$�$�$�
����:6�6�6�p;�;�;�
7�
7�
7�4�4�4�-�-�-�
-�-�-�%�%�%����0�0�0�!�!�!�%�%�%�
�
�
� � � ����(D�D�D�N$�N$�N$�`!�!�!�
H�
H�
H�
�
�
�����,
�
�
�1�1�1�
�
�
�"�"�"�
���4�4�4�
�
�
����
���1�1�1�!�!�!�
�
�
�
�
�
�
�
�
�
�
�
�6�6�6�'�'�'� � � �4"�"�"�
O�O�O�������"�"�"�
�
�
� !� !� !�D"�"�"�
2�2�2�'�'�'�)�)�)����:�:�:� � � �
(�(�(�!�!�!�$/�*4�%/�#+�-�-��
$�$�$�3�3�3�0�0�0�'�'�'� � � �������'�'�'�/�/�/�"#�#�#�C�C�C�8%�%�%�'�'�'�.!�!�!�09�9�9�
�
�
�$�$�$�
�
�
�$�$�$�:�:�:�
�
�
�
�
�
��L�!�!�!�9�9�9����@7�@7�@7�H(�(�(�
J�J�J�X)�)�)�6
(�
(�
(�,�,�,�
�
�
�1�1�1�'�'�'�;�;�;�;�;�;�;rPrK)=r#�
__docformat__rbrYrg�urllib.requestrrMr��ImportError�docutils.utils.romanr	rzrrrr�docutils.transformsr
�docutils.utils.mathrrrr��dictr&r/r9r:r�r�r;rr<rDr r!r
r=r�r6rcrd�_datadir_latexr|r}�
_docutils_styr_ror5r2r�r3�
block_name�definitionsr[r>rxr��NodeVisitorrKr�rPrO�<module>rasI��$�#�"�
�
�	�	�	�	�	�	�	�
�
�
�
�'�'�'�'�'�'�����)��L�L�L�L���)�)�)�(�(�(�(�(�(�(�(�(�(�(�)��������?�?�?�?�?�?�?�?�?�?�?�?�?�?�*�*�*�*�*�*�B�B�B�B�B�B�B�B�H2�H2�H2�H2�H2�W�^�H2�H2�H2�Vk�k�k�k�k�k�k�k�b8�8�8�8�8�4�8�8�8�02�2�2�2�2�2�2�2�/���>���������6���
3�
��J��� C���
"���?���	������(���#�#�#�����4�X�4�R�W�_�_�X�5N�5N�O�O�+�-�-�
�	�T�-�'�*�*�*�
7�b��7�7���z�z�&�!�!���}�}�T�"�"�	���[�[��%�%�
��	��!�k�"�o�o���@�@�@�%�+�+�-�-�K�	���j�+�6�6�6�6�7�
7�
7�
7�
7�
7�
7�
7�
7�
7�
7�
7����
7�
7�
7�
7�(h�h�h�h�h�h�h�h�^&�&�&�&�&�&�&�&�RR�R�R�R�R�R�R�R�jA";�A";�A";�A";�A";�e�'�A";�A";�A";�A";�A";s�!�2�2�<A9G�G�	G

Youez - 2016 - github.com/yon3zu
LinuXploit