U n‰^Õúã@súdZdZddlZddlZddlZddlZddlZddlZddl Zddl Zz ddl Z Wn&e k rzddl mm Z YnXddlmZmZmZmZmZmZddlmZddlmZddlmZmZGdd „d ejƒZGd d „d eƒZGd d „d eƒZ Gdd„deƒZ!de!_"de!_#de!_$de!_%de!_&de!_'de!_(de!_)de!_*de!_+de!_,de!_-de!_.de!_/de!_0de!_1d e!_2d!e!_3d"e!_4d#e!_5d$e!_6d%e!_7d&e!_8d'e!_9d(e!_:d)e!_;d*e!_Gd-d.„d.eƒZ?Gd/d0„d0eƒZ@Gd1d2„d2eƒZAGd3d4„d4ejBƒZCdS)5zLaTeX2e document tree Writer.ZreStructuredTextéN)ÚfrontendÚnodesÚ languagesÚwritersÚutilsÚio)Ú SafeString)Ú writer_aux)Úpick_math_environmentÚ unichar2texc(@s eZdZdZdZej ej e ¡¡Z d  ddddg¡Z dZ d d d d gd difddgd difddgddejdœfddgddgddddœfddgd dejdœfd!d"gd#d$ejd%œfd&d'gd(d)d*d+gd(dd,œfd-d.gd/d0d1ejd2œfd3d4gd0d5ejd6œfd7d8gd9d$d:œfd;dgd?ejd@gdAœfdBdCgd e ifdDedEgedFdGœfdHdIgdJdejdœfdKdLgdMd$ejd%œfdNdOgd dejdœfdPdQgdRd$ejd%œfdSdTgd dejdœfdUdVgdWd$ejd%œfdXdYgd dejdœfdZd[gd d\ifd]d^gd d/ifd_d`gd dejdœfdadbgd$dcddœfdedfgd dejdœfdgdhgd$diddœfdjdkgdldmdGœfdndogd d/ifdpdqgd dejdœfdrdsgdtgddueje dvœfdwdxgd d/ifdydzgd d{ifd|d}gd d ifd~dgd d iff#fZd€d iZdZd‚ZdƒZed„Zd Zd…d†„Zd‡dˆ„Zd‰dŠ„Zd‹dŒ„Zd S)ÚWriter)ÚlatexZlatex2ez default.texÚ z% PDF Standard Fontsz\usepackage{mathptmx} % Timesz\usepackage[scaled=.90]{helvet}z\usepackage{courier})ÚstandardÚbooktabsÚnolinesÚ borderlessúcolwidths-autoúcolwidths-givenzLaTeX-Specific OptionsNz-Specify documentclass. Default is "article".z--documentclassÚdefaultÚarticlezeSpecify document options. Multiple options can be given, separated by commas. Default is "a4paper".z--documentoptionsZa4paperz5Footnotes with numbers/symbols by Docutils. (default)z--docutils-footnotesTÚ store_true)rÚactionÚ validatorz^Format for footnote references: one of "superscript" or "brackets". Default is "superscript".z--footnote-referencesÚ superscriptÚbracketszZtrim_footnote_reference_space)ÚchoicesrÚmetavarÚ overridesz!Use \cite command for citations. z--use-latex-citationsrzNUse figure floats for citations (might get mixed with real figures). (default)z--figure-citationsÚuse_latex_citationsÚ store_false)Údestrrz{Format for block quote attributions: one of "dash" (em-dash prefix), "parentheses"/"parens", or "none". Default is "dash".z --attributionÚdashÚ parenthesesÚparensÚnone)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Ústylesheet_path)rrrrz×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)rrrz7Link to the stylesheet(s) in the output file. (default)z--link-stylesheetÚembed_stylesheet)r!rz^Embed the stylesheet(s) in the output file. Stylesheets must be accessible during processing. z--embed-stylesheetzComma-separated list of directories where stylesheets are found. Used by --stylesheet-path when expanding relative path arguments. Default: "."z--stylesheet-dirszÚ.)rrrzlCustomization 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)rrz&Table of contents by LaTeX. (default) z--use-latex-tocéz6Table 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_abstractzztWhen possible, use the specified environment for literal-blocks. Default is quoting of whitespace and special chars.z--literal-block-envzgWhen possible, use verbatim for literal-blocks. Compatibility alias for "--literal-block-env=verbatim".z--use-verbatim-when-possiblezÈ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)rrrrrz¹LaTeX graphicx package option. Possible values are "dvips", "pdftex". "auto" includes LaTeX code to use "pdftex" if processing with pdf(la)tex and dvips otherwise. Default is no option.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-bibtexÚ sectnum_depthzlatex2e writer)r)Ú head_prefixÚ requirementsÚlatex_preambler(Ú fallbacksÚpdfsetupÚ titledata)ÚtitleÚsubtitleÚbody_pre_docinfoÚdocinfoÚ dedicationÚabstractÚbodycCstj |¡t|_dS©N)rr Ú__init__ÚLaTeXTranslatorÚtranslator_class©Úself©rHú{/private/var/folders/sd/whlwsn6x1_qgglc0mjv25_695qk2gl/T/pip-install-4zq3fp6i/docutils/docutils/writers/latex2e/__init__.pyrCäs zWriter.__init__cCstj |¡tjgSrB)rr Úget_transformsr Z AdmonitionsrFrHrHrIrJés þzWriter.get_transformscCs²| |j¡}|j |¡|jD]}t||t||ƒƒqzt|jjjdƒ}Wn0t k rztt j   |j |jjj¡dƒ}YnXt t| ¡dƒ¡}| ¡| ¡| |j¡|_dS)NÚrbúutf-8)rEÚdocumentÚ walkaboutÚvisitor_attributesÚsetattrÚgetattrÚopenÚsettingsÚtemplateÚIOErrorÚosÚpathÚjoinÚdefault_template_pathÚstringÚTemplateÚstrÚreadÚcloseÚassemble_partsÚ substituteÚpartsÚoutput)rGZvisitorÚpartZ template_filerTrHrHrIÚ translateðs     ÿÿ zWriter.translatecCs`tj |¡|jD]H}t||ƒ}||jkrJ|r8| d¡d |¡|j|<qd |¡|j|<qdS)z9Assemble the `self.parts` dictionary of output fragments.r&rN) rr r_rOrQÚ head_partsr2rXra)rGrcÚlinesrHrHrIr_s     zWriter.assemble_parts)Ú__name__Ú __module__Ú __qualname__Ú supportedZdefault_templaterVrWÚdirnameÚabspathÚ__file__rYrXZdefault_preambleZtable_style_valuesrZvalidate_booleanZvalidate_comma_separated_listZ settings_specZsettings_defaultsZconfig_sectionZconfig_section_dependenciesrerOrbrCrJrdr_rHrHrHrIr s¨ýþýÿþþýÿþÿý ÿýþûÿûþÿýþüýþÿþÿþÿþÿþÿþÿþÿþþþÿýýÿüýýýÿýüû ûüüý€àý*r cD@sæeZdZdZdddddddd d d d d ddddddddddddddddddd d!d"d#d$d%d&d'd(d)d*d+d,d-d.d/d0d1d2d0d3d4d5d6d7d8d9d:d;dd?d@dAdBœCZedCdD„ee ¡ƒDƒƒZdEZdFdFdGœZ dQdIdJ„Z dKdL„Z dMdN„Z dOdP„Z dHS)RÚBabelzLanguage specifics for LaTeX.Z afrikaansÚarabicÚ bulgarianZbretonÚcatalanÚczechZwelshÚdanishZngermanÚgermanZ naustrianZaustrianZ lowersorbianÚgreekZpolutonikogreekÚenglishZ australianZcanadianZbritishZ newzealandÚamericanZ esperantoÚspanishÚestonianÚbasqueÚfinnishÚfrenchZcanadienZirishZibycusÚgalicianÚhebrewÚcroatianZ uppersorbianZmagyarZ interlinguaZbahasaiÚ icelandicÚitalianÚjapaneseZkazakhÚlatinÚ lithuanianZlatvianZ mongolianZbahasamZnorskÚdutchÚnynorskÚpolishZportugesZbrazilÚromanianÚrussianZsaminZserbiancZserbianÚslovakÚsloveneZalbanianÚswedishÚturkishZ ukrainianZvietnam)CÚafÚarÚbgÚbrÚcaÚcsÚcyÚdaÚdezde-1901zde-ATz de-AT-1901ZdsbÚelz el-polytonÚenzen-AUzen-CAzen-GBzen-NZzen-USÚeoÚesÚetÚeuÚfiÚfrzfr-CAÚgaz grc-ibycusÚglÚheÚhrZhsbÚhuÚiaÚidÚisÚitÚjaÚkkZlaÚltÚlvÚmnÚmsÚnbÚnlÚnnÚnoÚplÚptzpt-BRÚroÚruÚsezsh-Cyrlzsh-LatnÚskÚslÚsqÚsrzsr-LatnÚsvÚtrÚukÚvicCsg|]\}}| ¡|f‘qSrH)Úlower)Ú.0ÚkÚvrHrHrIÚ kszBabel.z,Language "%s" not supported by LaTeX (babel)z.<>)r}rxNcCs||_| |¡|_i|_dSrB)ÚreporterÚ language_nameÚlanguageÚotherlanguages)rGÚ language_coderÄrHrHrIrC‡s zBabel.__init__cs tˆj ¡ƒ}| ˆjpd¡dd |¡gˆ_g}d ‡fdd„|Dƒ¡D]}||krL| |¡qL|r~ˆj dd |¡¡d|kr’ˆj d ¡d |kr¬ˆj d d d g¡d|krƈj d dd g¡|ddkrþdtˆj ¡ƒkrþˆjdddˆjg7_d ˆj¡S)z7Return the babel call with correct options and settingsrvz\usepackage[%s]{babel}ú,r&csg|]}ˆj |d¡‘qS)r&)Ú active_charsÚget)rÀÚlrFrHrIrÓsz"Babel.__call__..z#\AtBeginDocument{\shorthandoff{%s}}r}z)\deactivatetilden % restore ~ in Galicianryú \makeatletterz+ \addto\extrasestonian{\bbl@deactivate{~}}ú \makeatotherrzz) \addto\extrasbasque{\bbl@deactivate{~}}éÿÿÿÿr|zE% Prevent side-effects if French hyphenation patterns are not loaded:z\frenchbsetup{StandardLayout}z4\AtBeginDocument{\selectlanguage{%s}\noextrasfrench}r) ÚsortedrÇÚkeysr2rÆrXÚsetupÚextendÚlist)rGrZ shorthandsÚcrHrFrIÚ__call__ŒsB ÿ þþ ÿÿýzBabel.__call__c CsVt |¡D]*}z|j|WStk r2Yq Xq |jdk rR|j |j|¡dS)z,Return TeX language name for `language_code`Nr&)rZnormalize_language_tagÚlanguage_codesÚKeyErrorrÄÚwarningÚwarn_msg)rGrÈÚtagrHrHrIrÅ­s zBabel.language_namecCs|jSrB)rÆrFrHrHrIÚ get_language¸szBabel.get_language)N)rgrhriÚ__doc__r×ÚdictrÔÚitemsrÚrÊrCrÖrÅrÜrHrHrHrIrnsœ·Mù ! rnc@s eZdZdZdd„Zdd„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. cCst| ¡ƒ}| ¡|S)zReturn sorted list of keys)rÔrÑÚsort)rGrÑrHrHrIÚ sortedkeysÆs zSortableDict.sortedkeyscs‡fdd„ˆ ¡DƒS)z$Return list of values sorted by keyscsg|] }ˆ|‘qSrHrH)rÀÚkeyrFrHrIrÃÎsz-SortableDict.sortedvalues..)rârFrHrFrIÚ sortedvaluesÌszSortableDict.sortedvaluesN)rgrhrirÝrârärHrHrHrIràÀsràc@seZdZdZdS)Ú PreambleCmdsz'Building blocks for the latex preamble.N)rgrhrirÝrHrHrHrIråÚsråzQ % 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 }z\usepackage{color}zT % docinfo (width of docinfo table) \DUprovidelength{\DUdocinfowidth}{0.9\linewidth}zv % dedication topic \providecommand*{\DUCLASSdedication}{% \renewenvironment{quote}{\begin{center}}{\end{center}}% }a· % class handling for environments (block-level elements) % \begin{DUclass}{spam} tries \DUCLASSspam and % \end{DUclass}{spam} tries \endDUCLASSspam \ifx\DUclass\undefined % poor man's "provideenvironment" \newenvironment{DUclass}[1]% {\def\DocutilsClassFunctionName{DUCLASS#1}% arg cannot be used in end-part of environment. \csname \DocutilsClassFunctionName \endcsname}% {\csname end\DocutilsClassFunctionName \endcsname}% \fizU % error admonition title \providecommand*{\DUtitleerror}[1]{\DUtitle{\color{red}#1}}z % fieldlist environment \ifthenelse{\isundefined{\DUfieldlist}}{ \newenvironment{DUfieldlist}% {\quote\description} {\enddescription\endquote} }{}zc\usepackage{float} % float configuration \floatplacement{figure}{H} % place figures here definitelyav% numeric or symbol footnotes with hyperlinks \providecommand*{\DUfootnotemark}[3]{% \raisebox{1em}{\hypertarget{#1}{}}% \hyperlink{#2}{\textsuperscript{#3}}% } \providecommand{\DUfootnotetext}[4]{% \begingroup% \renewcommand{\thefootnote}{% \protect\raisebox{1em}{\protect\hypertarget{#1}{}}% \protect\hyperlink{#2}{#3}}% \footnotetext{#4}% \endgroup% }zt% Check output format \ifx\pdftexversion\undefined \usepackage{graphicx} \else \usepackage[pdftex]{graphicx} \fia% basic code highlight: \providecommand*\DUrolecomment[1]{\textcolor[rgb]{0.40,0.40,0.40}{#1}} \providecommand*\DUroledeleted[1]{\textcolor[rgb]{0.40,0.40,0.40}{#1}} \providecommand*\DUrolekeyword[1]{\textbf{#1}} \providecommand*\DUrolestring[1]{\textit{#1}}ab % inline markup (custom roles) % \DUrole{#1}{#2} tries \DUrole#1{#2} \providecommand*{\DUrole}[2]{% \ifcsname DUrole#1\endcsname% \csname DUrole#1\endcsname{#2}% \else % backwards compatibility: try \docutilsrole#1{#2} \ifcsname docutilsrole#1\endcsname% \csname docutilsrole#1\endcsname{#2}% \else% #2% \fi% \fi% }ze % legend environment \ifthenelse{\isundefined{\DUlegend}}{ \newenvironment{DUlegend}{\small}{} }{}a¿ % lineblock environment \DUprovidelength{\DUlineblockindent}{2.5em} \ifthenelse{\isundefined{\DUlineblock}}{ \newenvironment{DUlineblock}[1]{% \list{}{\setlength{\partopsep}{\parskip} \addtolength{\partopsep}{\baselineskip} \setlength{\topsep}{0pt} \setlength{\itemsep}{0.15\baselineskip} \setlength{\parsep}{0pt} \setlength{\leftmargin}{#1}} \raggedright } {\endlist} }{}z¯%% 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}a % optionlist environment \providecommand*{\DUoptionlistlabel}[1]{\bf #1 \hfill} \DUprovidelength{\DUoptionlistindent}{3cm} \ifthenelse{\isundefined{\DUoptionlist}}{ \newenvironment{DUoptionlist}{% \list{}{\setlength{\labelwidth}{\DUoptionlistindent} \setlength{\rightmargin}{1cm} \setlength{\leftmargin}{\rightmargin} \addtolength{\leftmargin}{\labelwidth} \addtolength{\leftmargin}{\labelsep} \renewcommand{\makelabel}{\DUoptionlistlabel}} } {\endlist} }{}z· % providelength (provide a length variable and set default, if it is new) \providecommand*{\DUprovidelength}[2]{ \ifthenelse{\isundefined{#1}}{\newlength{#1}\setlength{#1}{#2}}{} }zp % rubric (informal heading) \providecommand*{\DUrubric}[1]{% \subsubsection*{\centering\textit{\textmd{#1}}}}z¥ % sidebar (text outside the main text flow) \providecommand{\DUsidebar}[1]{% \begin{center} \colorbox[gray]{0.80}{\parbox{0.9\linewidth}{#1}} \end{center} }zY % subtitle (for topic/sidebar) \providecommand*{\DUsubtitle}[1]{\par\emph{#1}\smallskip}zU % subtitle (in document title) \providecommand*{\DUdocumentsubtitle}[1]{{\large #1}}zz\usepackage{longtable,ltcaption,array} \setlength{\extrarowheight}{2pt} \newlength{\DUtablewidth} % internal use in tablesz*\usepackage{textcomp} % text symbol macroszn % text mode subscript \ifx\textsubscript\undefined \usepackage{fixltx2e} % since 2015 loaded by default \fizN % titlereference role \providecommand*{\DUroletitlereference}[1]{\textsl{#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 % transition (break, fancybreak, anonymous section) \providecommand*{\DUtransition}{% \hspace*{\fill}\hrulefill\hspace*{\fill} \vskip 0.5\baselineskip }cJ@s‚eZdZdZedƒdedƒdedƒdiZedƒd ed ƒd ed ƒd edƒdedƒdedƒdedƒdedƒdedƒdedƒdddi Zddddd d!d d"d#d$d%d&d'd(d)d*d+d,œZdd-d.d/d0d1d2d3d4d5d6d7d8d9d:d;dd?d@dAœZdBdCdDdEdFdGdHdIdJdKdLdMdNdOdPdQdRdSdTdUdVdWdXdYdZd[dQd\d]d^dQd\d_d`dadbdcdddedfdgdhdidjdkdldmdndodpdqdrdsdtd@dudvdwdxdydzd{d|d}d~dd€dd‚dƒd„d…d†d‡œIZ dˆd‰dŠd‹dŒœZ dS)ŽÚCharMapsz8LaTeX representations for active and Unicode characters.ú\z\textbackslash{}Ú{z\{Ú}z\}ú#ú\#ú$z\$ú%ú\%ú&z\&ú~z\textasciitilde{}Ú_ú\_ú^z\textasciicircum{}ú"z\textquotedbl{}ú[z{[}ú]z{]}é­z\-z\enskipz\quadz\,z \hspace{0pt}z\hbox{-}z\AAz\ensuremath{\Leftrightarrow}z\ensuremath{\spadesuit}z\ensuremath{\clubsuit}ÚffrÚflÚffiÚffl)i i i i i i i/ i i+!iÔ!i`&ic&iûiûiûiûiûz\guillemotleft{}z\guillemotright{}z\textcompwordmark{}z \textendash{}z \textemdash{}z\textquoteleft{}z\textquoteright{}z\quotesinglbase{}z\textquotedblleft{}z\textquotedblright{}z\quotedblbase{}z\textperthousand{}z\textpertenthousand{}z\guilsinglleft{}z\guilsinglright{}z\textvisiblespace{}z\dag{}z\ddag{}z\dots{}z\texttrademark{})é é«é»i i i i i i i i i i0 i1 i9 i: i#$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{}z \textflorin{}z\textacutedbl{}z \textbardbl{}z \textbullet{}z\textasciigrave{}z\textgravedbl{}z\textreferencemark{}z\textinterrobang{}z\textfractionsolidus{}z \textlquill{}z \textrquill{}z\textdiscount{}z\textcolonmonetary{}z\textfrenchfranc{}z \textlira{}z \textnaira{}z \textwon{}z \textdong{}z \texteuro{}z \textpeso{}z\textguarani{}z\textcelsius{}z \textnumero{}z\textcircledP{}z \textrecipe{}z\textservicemark{}z \textohm{}z \textmho{}z\textestimated{}z\textleftarrow{}z\textuparrow{}z\textrightarrow{}z\textdownarrow{}z \textminus{}z\textasteriskcentered{}z \textsurd{}z \textblank{}z\textopenbullet{}z\textbigcircle{}z\textmusicalnote{}z\textmarried{}z\textdivorced{}z \textlangle{}z \textrangle{})Ié¢é¤é¥é¦é§é¨é©éªé¬é®é¯é°é±é²é³é´éµé¶é¹éºé¼é½é¾é×é÷i’i¹iºi i" i2 i3 i5 i6 i; i= iD iE iF iR i¡ i£ i¤ i¦ i© i« i¬ i± i² i!i!i!i!i !rÿi&!i'!i.!i!i‘!i’!i“!i"i"i"i"$iæ%iï%ij&i­&i®&iè'ié'z \ding{170}z \ding{169}z \ding{51}z \ding{55})ie&if&i'i'N) rgrhrirÝÚordÚallttÚspecialÚunsupported_unicodeÚutf8_supported_unicodeÚtextcompÚpifontrHrHrHrIræ»s,ýìëëµOüræc@s"eZdZdZddd„Zdd„ZdS) Ú DocumentClassz"Details of a LaTeX document class.FcCsL||_||_dddddg|_|jdkr4|j dd¡|jrH|j dd ¡dS) NÚsectionZ subsectionZ subsubsectionÚ paragraphZ subparagraph)ZbookZmemoirÚreportZscrbookZscrreprtrÚchapterrc)Údocument_classZ _with_partÚsectionsÚinsert)rGr%Z with_partrHrHrIrCisÿ zDocumentClass.__init__cCs.|t|jƒkr|j|dSdt |¡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. r+zDUtitle[section%s]N)Úlenr&ÚromanÚtoRoman)rGÚlevelrHrHrIr!tszDocumentClass.sectionN)F)rgrhrirÝrCr!rHrHrHrIr fs r c@sâeZdZdZdd„Zdd„Zdd„Zdd „Zd d „Zd d „Z dd„Z dd„Z dd„Z d8dd„Z dd„Zdd„Zdd„Zdd„Zdd „Zd!d"„Zd#d$„Zd%d&„Zd'd(„Zd)d*„Zd+d,„Zd-d.„Zd/d0„Zd1d2„Zd3d4„Zd5d6„Zd7S)9ÚTableaûManage a table while traversing. Maybe change to a mixin defining the visit/departs, but then class Table internal variables are in the Translator. 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 :colwidths-given: use colum widths from rST source cCs:||_||_d|_i|_g|_g|_g|_d|_d|_dS)NFr) Ú _translatorÚ _latex_typeÚ_openÚ_attrsÚ _col_widthÚ_rowspanÚstubsÚcolwidths_autoÚ _in_thead)rGZ translatorZ latex_typerHrHrIrCszTable.__init__cCs"d|_g|_g|_i|_d|_dS)NTF)r/Ú _col_specsÚcaptionr0Z_in_headrFrHrHrIrR›s z Table.opencCs(d|_d|_g|_i|_g|_d|_dS©NF)r/r6r7r0r3r4rFrHrHrIr^¡s z Table.closecCs|jSrB)r/rFrHrHrIÚis_open©sz Table.is_opencCsbdd„||Dƒ}z|d|_Wntk r:d|_YnXd|krLd|kpZd|koZd|k|_dS)NcSs g|]}|dkr| dd¡‘qS))rrrrrr©Úreplace©rÀÚclsrHrHrIrísþz)Table.set_table_style..rÏrrr)ÚbordersÚ IndexErrorr4)rGÚ table_styleÚclassesr>rHrHrIÚset_table_style¬sÿ ÿýzTable.set_table_stylecCs|jdkr|jsdS|jS)NÚ longtablez longtable*)r.r7rFrHrHrIÚget_latex_type¹szTable.get_latex_typecCs||j|<dSrB©r0)rGÚattrÚvaluerHrHrIÚset¿sz Table.setcCs||jkr|j|SdSrBrE)rGrFrHrHrIrËÁs  z Table.getcCs|jdkrdSdS)Nrú|r&)r>rFrHrHrIÚget_vertical_barÆs zTable.get_vertical_barú \linewidthcCsRddddœ}| | d¡pd¡}d| ¡|fg}|jsH| dd |¡d  |¡S) NrÌrÕÚr)ÚleftÚcenterÚrightÚalignrNz\begin{%s}[%s]rz\setlength{\DUtablewidth}{%s}r)rËrDr4r'rX)rGÚwidthZ align_maprPZopeningrHrHrIÚ get_openingÌsþzTable.get_openingcCs4g}|jdkr| d¡| d| ¡¡d |¡S)Nrz \bottomruleú\end{%s}r)r>r2rDrX)rGÚclosingrHrHrIÚ get_closingÖs   zTable.get_closingcCs$|j |¡|j |j d¡¡dS)NZstub)r6r2r3Ú attributesrË©rGÚnoderHrHrIÚ visit_colspecßs zTable.visit_colspeccCsØ| ¡}dgt|jƒ|_g|_|jr@|dt|jƒ}||Sd}d}|jD] }t|ddƒ|}||7}qNd}|dkr„||}d }|jD]@}|t|ddƒ|}|j |d ¡|d ||d f7}qŽ||S) zýReturn column specification for longtable. Assumes reST line length being 80 characters. Table width is hairy. === === ABC DEF === === usually gets to narrow, therefore we add 1 (fiddlefactor). rrÌéPgÚcolwidthr+gÃõ(\Âí?gð?r&g{®Gázt?z%sp{%.3f\DUtablewidth})rJr(r6r2r1r4Úfloatr2)rGrXÚbarZlatex_table_specrQZ total_widthr[ZfactorrHrHrIÚ get_colspecsäs(    zTable.get_colspecscCs.zd|j|jWStk r(YdSXdS)z4Return columnwidth for current cell (not multicell).z%.2f\DUtablewidthÚ*N)r1Ú _cell_in_rowr?rFrHrHrIÚget_column_widthszTable.get_column_widthcsLz0tdd„‡‡fdd„t|ƒDƒDƒƒ}d|WStk rFYdSXdS)z)Return sum of columnwidths for multicell.cSsg|]}|‘qSrHrH)rÀrQrHrHrIrÃsÿz/Table.get_multicolumn_width..csg|]}ˆjˆ|‘qSrH)r1)rÀÚco©rGÚstartrHrIrÃsÿzp{%.2f\DUtablewidth}rÌN)ÚsumÚranger?)rGrdZlen_Zmc_widthrHrcrIÚget_multicolumn_widths ÿÿ zTable.get_multicolumn_widthcCs4|js dSd |j¡}d|j ¡kr,d|Sd|S)Nr&r+z\caption{%s}\\ z!\caption[]{%s (... continued)}\\ )r7rXr-Ú thead_depth)rGr7rHrHrIÚ get_captions  zTable.get_captioncCs|jdkrd|j ¡kSdS)NrCr+r)r.r-rhrFrHrHrIÚ need_recurse s zTable.need_recursecCs2|jd7_|jdkrdgS|jdkr.dgSgS)Nr+rú\hline rz \toprule )r5r>rFrHrHrIÚ visit_thead%s   zTable.visit_theadcCszg}|jdkr| d¡|jdkrhd|j ¡kr<| d¡n,| d¡| dt|jƒd¡| d ¡|jd8_|S) Nrz \midrule rCr+z\endfirsthead z \endhead z\multicolumn{%d}{c}z&{\hfill ... continued on next page} \\z \endfoot \endlastfoot )r>r2r.r-rhr(r6r5)rGÚarHrHrIÚ depart_thead-s     ÿ zTable.depart_theadcCs d|_dS©Nr©r`rFrHrHrIÚ visit_row?szTable.visit_rowcsÎdg}dˆ_ttˆjƒƒD]$}ˆj|dkrˆj|d8<qˆjdkrʇfdd„ttˆjƒƒDƒ}t|ƒtˆjƒkr„| d¡nFd}| ¡z | ¡}WnYqÀYnX|d ||f7}q| |¡|S) Nú \\ rr+rcs"g|]}ˆj|dkr|d‘qS)rr+©r2)rÀÚirFrHrIrÃJsÿz$Table.depart_row..rkr&z\cline{%d-%d} )r`rfr(r2r>r2ÚreverseÚpop)rGÚresrtZrowspansZclineZc_startrHrFrIÚ depart_rowBs$     zTable.depart_rowcCs z||j|<Wn YnXdSrBrs)rGÚcellrGrHrHrIÚ set_rowspan[szTable.set_rowspancCs z |j|WSYdSXdSrors)rGryrHrHrIÚ get_rowspanas zTable.get_rowspancCs|jSrBrprFrHrHrIÚget_entry_numbergszTable.get_entry_numbercCs|jd7_dS©Nr+rprFrHrHrIÚ visit_entryjszTable.visit_entrycCs t|jƒ|jkr|j|jSdSr8)r(r3r`rFrHrHrIÚis_stub_columnms zTable.is_stub_columnN)rK)rgrhrirÝrCrRr^r9rBrDrHrËrJrRrUrYr^rargrirjrlrnrqrxrzr{r|r~rrHrHrHrIr,s6    # r,c@sæeZdZdZdZdZdZdZdZdZ dZ dZ dZ dZ dZdZdZefdd„Zdd„Zd d „Zd d „Zd d„Ze d¡fdd„Zdd„Zdd„Zd›dd„Zdd„Zdœdd„Zdd„Zd d!„Z d"d#„Z!d$d%„Z"d&d'„Z#d(d)„Z$d*d+„Z%d,d-„Z&d.d/„Z'd0d1„Z(d2d3„Z)d4d5„Z*d6d7„Z+dd8d9„Z,d:d;„Z-dd?„Z/d@dA„Z0dBdC„Z1dDdE„Z2dFdG„Z3dHdI„Z4dJdK„Z5dLdM„Z6dNdO„Z7dPdQ„Z8dRdS„Z9dTdU„Z:dVdW„Z;dXdY„Zd^d_„Z?d`da„Z@dbdc„ZAddde„ZBdfdg„ZCdhdi„ZDdjdk„ZEdldm„ZFdndo„ZGdpdq„ZHdrds„ZIdtdu„ZJdvdw„ZKdxdy„ZLdzd{„ZMd|d}„ZNd~d„ZOd€d„ZPd‚dƒ„ZQd„d…„ZRd†d‡„ZSdˆd‰„ZTdŠd‹„ZUdŒd„ZVdŽd„ZWdd‘„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É„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ß„Zdàdá„Z€dâdã„Zdä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û„Zdüdý„ZŽdþdÿ„Zdd„Zdd„Z‘dd„Z’dd„Z“dd „Z”dŸd d „Z•d d„Z–dd„Z—dd„Z˜dd„Z™dd„Zšdd„Z›dd„Zœdd„Zdd„Zždd „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­d=d>„Z®d?d@„Z¯dAdB„Z°dCdD„Z±dEdF„Z²dGdH„Z³dIdJ„Z´dKdL„ZµdMdN„Z¶dOdP„Z·dQdRdRdSdTœZ¸dUdV„Z¹dWdX„ZºdYdZ„Z»d[d\„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„ZÉdwdx„ZÊdydz„ZËd{d|„ZÌd}d~„ZÍdd€„ZÎdZÏdd‚„ZÐdƒd„„ZÑd…d†„ZÒd‡dˆ„ZÓd‰dŠ„ZÔd‹dŒ„ZÕddŽ„ZÖdd„Z×d‘d’„ZØd“d”„ZÙd•d–„ZÚd—d˜„ZÛd™dš„ZÜdS( rDz¾ 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. Fr1rcsPtj ˆ|¡ˆjjjˆ_ˆjjjˆ_|jˆ_}ˆ  |j ¡ˆ_ |j ˆ_ |j ˆ_ |jˆ_|jˆ_|jˆ_|jˆ_t|ddƒˆ_|jˆ_|j dd¡ˆ_dˆ_dˆ_|jrÄt d|j¡\}ˆ_ˆ_}n |jrÐdˆ_ˆjjrìˆjj dd¡ˆ_ndˆ_t  !|j"|j¡ˆ_#||j"|jƒˆ_$ˆj#j%d ˆ_&ˆjj'g}ˆj$j(d krH| )ˆj$j(¡d *d d „|Dƒ¡ˆ_'t+|j,|j-ƒˆ_.ˆjj/dkr„d ˆ_0n*ˆjj/ 1¡dkr t2j3ˆ_0ndˆjj/ˆ_0|j4ˆ_4dˆj'ˆjj,fgˆ_5t6ƒˆ_7dˆj7d<|j8gˆ_8t6ƒˆ_9gˆ_:gˆ_;gˆ_gˆ_?gˆ_@gˆ_Agˆ_Bgˆ_Cgˆ_Dgˆ_Egˆ_Fgˆ_Ggˆ_Hgˆ_Id gˆ_Jgˆ_Kd ˆ_Lgˆ_Mgˆ_NtOˆdƒˆ_PˆjBˆ_Qgˆ_Rˆj dkr¦dˆj ˆj7d<ˆjSs ˆjrÆdˆjˆj7d<ˆj d¡D]8}| T¡}|dkrôdˆj7d<n|dkrÒdˆj7d<qÒ|j, Ud¡d krLˆj' Ud!¡d ksBˆj' Ud"¡d krLd#ˆj7d$<‡fd%d „tV W|¡Dƒˆ_Xˆjd&krzdˆ_Ynd'ˆjˆjfˆ_Y|jYr¨ˆjYd|jY7_Y|jZr¸d(t2_[n”|j\}|dk rt]|t^ˆj.j_ƒƒ}d)ˆj.j_krð|d8}ˆj.j_d d*kr |d8}d+|t2_[t`|d,ƒrL|jadkrLd-ˆj.j_d |jadfˆj7d,<dS).NÚ font_encodingr&rñròz (\w+)(.*)ÚverbatimrÉr+r)rvr&cSsg|] }|r|‘qSrHrH)rÀZ_frHrHrIrÃÓsz,LaTeXTranslator.__init__..z\usepackage{graphicx}Úautoz\usepackage[%s]{graphicx}z\documentclass[%s]{%s}z\usepackage{ifthen}Z__staticrCÚasciiz\usepackage[%s]{inputenc}Ú _inputencz\usepackage[%s]{fontenc}Z_fontencÚOT1z+\DeclareTextSymbol{\textquotedbl}{OT1}{`\"}Z_textquotedblOT1)r3ZT2AZT2BZT2CZT4ZT5z,\DeclareTextSymbolDefault{\textquotedbl}{T1}Z _textquotedblZscrrÏZDIVZBCORz\usepackage{typearea}Ztypeareacsg|]}ˆ |¡‘qSrH)Ústylesheet_call)rÀrWrFrHrIrÃCsÿ)Ú0ÚfalseÚFalser&z(colorlinks=true,linkcolor=%s,urlcolor=%sz\setcounter{secnumdepth}{0}r$rcz\setcounter{secnumdepth}{%d}Ú sectnum_startz\setcounter{%s}{%d})brÚ NodeVisitorrCrMrÄrÙÚwarnÚerrorrSÚto_latex_encodingÚoutput_encodingÚlatex_encodingr,r-rÚ_use_latex_citationsZreference_labelÚ_reference_labelZhyperlink_colorr/rQr€r0Úsection_enumerator_separatorr;Úliteral_block_envÚliteral_block_optionsÚreÚsplitZuse_verbatim_when_possibleZ use_bibtexÚbibtexrrÜrÈÚlanguage_moduleÚbabelZauthor_separatorsÚauthor_separatorZdocumentoptionsrÆr2rXr Z documentclassZuse_part_sectionÚd_classZgraphicx_optionÚgraphicx_packager¿råÚ graphicx_autoÚdocutils_footnotesr5ràr6r7r8r9r;r<r:r=r>r?r@rAÚcontextÚ title_labelsÚsubtitle_labelsÚ author_stackÚdateÚpdfinfoÚ pdfauthorÚ_section_numberÚ_enumeration_countersZ_max_enumeration_countersÚ _bibitemsÚ table_stackr,Ú active_tableÚoutÚ out_stackÚis_xetexÚstripÚfindrZget_stylesheet_listr(Úhyperref_optionsZ sectnum_xformÚ secnumdepthr4Úminr(r&ÚhasattrrŠ)rGrMZ babel_classrSr%Z d_optionsÚencr²rHrFrIrC¤s    ÿ ÿ ýýÿ ÿ ÿ  ÿ    ÿ ÿ  ÿ  ÿ ÿþ  ÿ ÿ  ÿ ÿ ÿÿzLaTeXTranslator.__init__c Csútj |¡\}}|dk}|jjrÈ|r,|d}z$tj|dd ¡}|jj  |¡WnVt k r¦}z8d|t |j ƒf}|j j |¡d| dd¡WY¢Sd }~XYnX|r¼d d |d g¡}d ||fS|rÖ|}d }nd}|jjròt |jj|¡}||S)z8Return code to reference or embed stylesheet file `path`)ú.styr&r¶rL)Ú source_pathÚencodingz#Cannot embed stylesheet '%s': %s.z% rú % NrÍrÎz%% embedded stylesheet: %s %sz\usepackage{%s}z \input{%s})rVrWÚsplitextrSr)rZ FileInputr]Zrecord_dependenciesÚaddrUrÚstrerrorrMrÄrr;rXr'rÚ relative_pathZ _destination) rGrWÚbaseÚextÚ is_packageÚcontentÚerrÚmsgÚcmdrHrHrIr†~s<ÿ ÿ&þ zLaTeXTranslator.stylesheet_callcCs\ddddddddd d d d d ddœ}| ¡}||kr:||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Úlatin9ZmaccyrÚcp1251úkoi8-rúkoi8-uÚcp1250Úcp1252rƒ)z iso-8859-1z iso-8859-2z iso-8859-3z iso-8859-4z iso-8859-5z iso-8859-9z iso-8859-15Ú mac_cyrillicz windows-1251rÍrÎz windows-1250z windows-1252zus-asciirñr&r1ú:r)r¿r;r—)rGZdocutils_encodingr¼r¸rHrHrIrŽ s(óz!LaTeXTranslator.to_latex_encodingcCs |jj|SrB)r™Úlabels)rGZ docutil_labelrHrHrIÚlanguage_labelÉszLaTeXTranslator.language_labelc CsD|jr |Stj ¡}|js&| tj¡|jr<|js<|tdƒ=|jdkrœ|j sœ|j rxd|tdƒ<|j |j d<d|tdƒ<n$d|tdƒ<d |td ƒ<d |td ƒ<|j rÂd |tdƒ<d |jj|tdƒ<|j s„|j d¡sú| tj¡| tj¡| tj¡| tj¡|D]x}t|ƒ}|tjkr0tj|j d<nP|tjkrHd|j d<n8|jdkr |tjkr d|tj|f|j dt|ƒ<q | |¡}|j sÒd}|j rª|d7}|dD]}| |||d|¡}q²|jr$| d¡}t|dd…ƒD]$\}} |  ¡sô||d 7<qô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. rñ)r…r&z \underline{~}Úgraphicxz\reflectbox{/}rçz \textbar{}rIz \textless{}úrðú ú Úutf8rz\usepackage{pifont}rz"\DeclareUnicodeCharacter{%04X}{%s}r„r1z,`'"<>éz{}rNrÏú\\ z z ~)rrærÚcopyÚupdaterÚinside_citation_reference_labelrr€r®Úliteralrr6Úinsert_non_breaking_blanksrSZ tab_widthrÚ startswithrrrrrår\rdr;Úinsert_newliner—Ú enumerateÚlstriprX) rGÚtextÚtableÚchÚcpZseparate_charsÚcharrfrtÚlinerHrHrIÚencodeÌsj                   ÿ ÿÿ      zLaTeXTranslator.encodez[ ]cCs| | d|¡¡S)z1Cleanse, encode, and return attribute value text.rØ)rìÚsub)rGræÚ whitespacerHrHrIÚattval#szLaTeXTranslator.attvalcCst|jtjƒS)z@Check whether a node represents an inline or block-level element)Ú isinstanceÚparentrZ TextElementrWrHrHrIÚ is_inline/szLaTeXTranslator.is_inlinecCs$|j d dd„|dDƒ¡¡dS)z)Append hypertargets for all ids of `node`ú% cSsg|] }d|‘qS)z"\raisebox{1em}{\hypertarget{%s}{}}rH©rÀr¥rHrHrIrÃ7sÿÿz7LaTeXTranslator.append_hypertargets..ÚidsN)r¬r2rXrWrHrHrIÚappend_hypertargets3sÿz#LaTeXTranslator.append_hypertargetsTcCs.dd„| dg¡Dƒ}|r*|r*| dd¡|S)zˆReturn list of label definitions for all ids of `node` If `set_anchor` is True, an anchor is set with \phantomsection. cSsg|] }d|‘qS)z \label{%s}rHrôrHrHrIrÃ?sz1LaTeXTranslator.ids_to_labels..rõrz\phantomsection)rËr')rGrXÚ set_anchorrÓrHrHrIÚ ids_to_labels:s zLaTeXTranslator.ids_to_labelscCsDdd„|dDƒ}|r@|d dd¡|d<dd„|dDƒ|d<d S) z8Convert ``align-*`` class arguments into alignment args.cSsg|]}| d¡r|‘qS©úalign-©râr<rHrHrIrÃGs z:LaTeXTranslator.set_align_from_classes..rArÏrúr&rPcSsg|]}| d¡s|‘qSrùrûr<rHrHrIrÃJs ÿNr:)rGrXrPrHrHrIÚset_align_from_classesDsz&LaTeXTranslator.set_align_from_classesNcCsP| d|¡}|dkr"|j d¡n*|dkr8|j d¡n|dkrL|j d¡dS)NrPrMz \raggedright rNz \centering rOz \raggedleft )rËr¬r2)rGrXrrPrHrHrIÚinsert_align_declarationMs z(LaTeXTranslator.insert_align_declarationcCsˆt|jtjƒs|j d¡|dD]`}| d¡rf|j |dd…¡}|r‚d|jj |<|j d|¡q"t j |j d<|j d |¡q"dS) z6Open a group and insert declarations for class values.rrAú language-é NTz\begin{selectlanguage}{%s} ÚDUclassz\begin{DUclass}{%s} ) rðrñrÚcompoundr¬r2râršrÅrÇråÚduclassr8©rGrXr=rÆrHrHrIÚ duclass_openVs     zLaTeXTranslator.duclass_opencCsjt|dƒD]X}| d¡rL|j |dd…¡}|rdd|jj|<|j d¡q tj|j d<|j d¡q dS) z$Close a group of class declarations.rArþrÿNTz\end{selectlanguage} rz\end{DUclass} ) ÚreversedrâršrÅrÇr¬r2rårr8rrHrHrIÚ duclass_closeds   zLaTeXTranslator.duclass_closecCs|j |j¡||_dSrB)r­r2r¬)rGZnew_outrHrHrIÚpush_output_collectorpsz%LaTeXTranslator.push_output_collectorcCs|j ¡|_dSrB)r­rvr¬rFrHrHrIÚpop_output_collectortsz$LaTeXTranslator.pop_output_collectorcCs|j | | ¡¡¡dSrB)r¬r2rìÚastextrWrHrHrIÚ visit_TextzszLaTeXTranslator.visit_TextcCsdSrBrHrWrHrHrIÚ depart_Text}szLaTeXTranslator.depart_TextcCs|d dd¡| |¡dS)NrArZ abbreviation©r'Ú visit_inlinerWrHrHrIÚvisit_abbreviation€sz"LaTeXTranslator.visit_abbreviationcCs| |¡dSrB©Ú depart_inlinerWrHrHrIÚdepart_abbreviation„sz#LaTeXTranslator.depart_abbreviationcCs|d dd¡| |¡dS)NrArZacronymr rWrHrHrIÚ visit_acronym‡szLaTeXTranslator.visit_acronymcCs| |¡dSrBrrWrHrHrIÚdepart_acronym‹szLaTeXTranslator.depart_acronymcCs| |d¡dS)NÚaddress©Úvisit_docinfo_itemrWrHrHrIÚ visit_addressŽszLaTeXTranslator.visit_addresscCs| |¡dSrB©Údepart_docinfo_itemrWrHrHrIÚdepart_address‘szLaTeXTranslator.depart_addresscCsXtj|jd<d|dkr$tj|jd<dd„|dDƒ|d<|j dd |d¡¡dS)NÚ admonitionrrAcSsg|]}|dkr|‘qS)rrHr<rHrHrIrÙsÿz4LaTeXTranslator.visit_admonition..z \DUadmonition[%s]{rÉ)rårr8rr¬r2rXrWrHrHrIÚvisit_admonition”s    z LaTeXTranslator.visit_admonitioncCs|j d¡dS©Nú} ©r¬r2rWrHrHrIÚdepart_admonitionsz!LaTeXTranslator.depart_admonitioncCs&|j | | ¡¡¡| |d¡dS)NÚauthor)r¦r2rïr rrWrHrHrIÚ visit_author szLaTeXTranslator.visit_authorcCs| |¡dSrBrrWrHrHrIÚ depart_author¤szLaTeXTranslator.depart_authorcCsdSrBrHrWrHrHrIÚ visit_authors§szLaTeXTranslator.visit_authorscCsdSrBrHrWrHrHrIÚdepart_authors«szLaTeXTranslator.depart_authorscCs| |¡|j d¡dS)Nz \begin{quote}©rr¬r2rWrHrHrIÚvisit_block_quote®s z!LaTeXTranslator.visit_block_quotecCs|j d¡| |¡dS)Nz \end{quote} ©r¬r2rrWrHrHrIÚdepart_block_quote²s z"LaTeXTranslator.depart_block_quotecCs.| |¡|jr|j d¡n |j d¡dS)Nz\begin{list}{}{}z\begin{itemize})rÚ is_toc_listr¬r2rWrHrHrIÚvisit_bullet_list¶s z!LaTeXTranslator.visit_bullet_listcCs.|jr|j d¡n |j d¡| |¡dS)Nú \end{list} z\end{itemize} )r*r¬r2rrWrHrHrIÚdepart_bullet_list½s z"LaTeXTranslator.depart_bullet_listcCs"|j d¡|dr| |¡dS)Nú\textsuperscript{rA©r¬r2r rWrHrHrIÚvisit_superscriptÄs z!LaTeXTranslator.visit_superscriptcCs"|dr| |¡|j d¡dS©NrAré©rr¬r2rWrHrHrIÚdepart_superscriptÉs z"LaTeXTranslator.depart_superscriptcCs.tj|jd<|j d¡|dr*| |¡dS)NÚ textsubscriptz\textsubscript{rA)rår4r8r¬r2r rWrHrHrIÚvisit_subscriptÎs  zLaTeXTranslator.visit_subscriptcCs"|dr| |¡|j d¡dSr1r2rWrHrHrIÚdepart_subscriptÔs z LaTeXTranslator.depart_subscriptcCs|j d¡dS)Nz \caption{rrWrHrHrIÚ visit_captionÙszLaTeXTranslator.visit_captioncCs|j d¡dSrrrWrHrHrIÚdepart_captionÜszLaTeXTranslator.depart_captioncCs.tj|jd<|j d¡|dr*| |¡dS)NÚtitlereferencez\DUroletitlereference{rA)rår9r8r¬r2r rWrHrHrIÚvisit_title_referenceßs  z%LaTeXTranslator.visit_title_referencecCs"|dr| |¡|j d¡dSr1r2rWrHrHrIÚdepart_title_referenceås z&LaTeXTranslator.depart_title_referencecCs,|jr| g¡n|j d¡| |¡dS)Nz\begin{figure}[b])r‘rr¬r2rörWrHrHrIÚvisit_citationês  zLaTeXTranslator.visit_citationcCsN|jr>|jd}d |jdd…¡}|j ||g¡| ¡n |j d¡dS)Nrr&r+ú \end{figure} )r‘r¬rXr©r2r)rGrXÚlabelrærHrHrIÚdepart_citationôs   zLaTeXTranslator.depart_citationcCs‚|jr@|js |j d¡d|_q~|jddks6tdƒ‚|jd=n>d}d|krV|d}nd|krn|jj|d}|j d |¡dS) Nz\cite{r+rÏ©rØrz2unexpected non-whitespace while in reference labelr&ÚrefidÚrefnameú\hyperlink{%s}{[)r‘rßr¬r2rAÚAssertionErrorrMÚnameids)rGrXÚhrefrHrHrIÚvisit_citation_referenceýs ÿ  z(LaTeXTranslator.visit_citation_referencecCs|jr€d}|jdddd}t|ƒdkrZ|d}t|tjƒrZ| ¡dkrZ|dj|jkrZd}|rl|j  d¡qŒ|j  d¡d|_ n |j  d ¡dS) NFT)ZdescendZsiblingsZ include_selfr+rr@rÉréú]}) r‘Ztraverser(rðrÚTextr Ú __class__r¬r2rß)rGrXZfollowup_citationZ next_siblingsÚnextrHrHrIÚdepart_citation_references"ÿ   ÿ z)LaTeXTranslator.depart_citation_referencecCs|j d¡dS)Nz (\textbf{rrWrHrHrIÚvisit_classifier"sz LaTeXTranslator.visit_classifiercCs|j d¡dS)Nz})rrWrHrHrIÚdepart_classifier%sz!LaTeXTranslator.depart_classifiercCs|j |¡dSrB)r«rYrWrHrHrIrY(szLaTeXTranslator.visit_colspeccCsdSrBrHrWrHrHrIÚdepart_colspec+szLaTeXTranslator.depart_colspeccCs@t|jtjƒs|j d¡|j d| ¡ dd¡¡tj‚dS)Nrz%% %s r¹) rðrñrrr¬r2r r;ÚSkipNoderWrHrHrIÚ visit_comment.s zLaTeXTranslator.visit_commentcCsdSrBrHrWrHrHrIÚdepart_comment5szLaTeXTranslator.depart_commentcCs8t|jtjƒr|j d¡|d dd¡| |¡dS)NrrArr)rðrñrrr¬r2r'rrWrHrHrIÚvisit_compound8s zLaTeXTranslator.visit_compoundcCs| |¡dSrB©rrWrHrHrIÚdepart_compound>szLaTeXTranslator.depart_compoundcCs| |d¡dS)NÚcontactrrWrHrHrIÚ visit_contactAszLaTeXTranslator.visit_contactcCs| |¡dSrBrrWrHrHrIÚdepart_contactDszLaTeXTranslator.depart_contactcCs| |¡dSrB)rrWrHrHrIÚvisit_containerGszLaTeXTranslator.visit_containercCs| |¡dSrBrTrWrHrHrIÚdepart_containerJsz LaTeXTranslator.depart_containercCs| |d¡dS)NÚ copyrightrrWrHrHrIÚvisit_copyrightMszLaTeXTranslator.visit_copyrightcCs| |¡dSrBrrWrHrHrIÚdepart_copyrightPsz LaTeXTranslator.depart_copyrightcCs| |d¡dS)Nr¤rrWrHrHrIÚ visit_dateSszLaTeXTranslator.visit_datecCs| |¡dSrBrrWrHrHrIÚ depart_dateVszLaTeXTranslator.depart_datecCsdSrBrHrWrHrHrIÚvisit_decorationYsz LaTeXTranslator.visit_decorationcCsdSrBrHrWrHrHrIÚdepart_decoration]sz!LaTeXTranslator.depart_decorationcCsdSrBrHrWrHrHrIÚvisit_definition`sz LaTeXTranslator.visit_definitioncCs|j d¡dS©NrrrWrHrHrIÚdepart_definitioncsz!LaTeXTranslator.depart_definitioncCs| |¡|j d¡dS)Nz\begin{description} r&rWrHrHrIÚvisit_definition_listfs z%LaTeXTranslator.visit_definition_listcCs|j d¡| |¡dS)Nz\end{description} r(rWrHrHrIÚdepart_definition_listjs z&LaTeXTranslator.depart_definition_listcCsdSrBrHrWrHrHrIÚvisit_definition_list_itemnsz*LaTeXTranslator.visit_definition_list_itemcCsdSrBrHrWrHrHrIÚdepart_definition_list_itemqsz+LaTeXTranslator.depart_definition_list_itemcCs|j d¡dS)NrØrrWrHrHrIÚvisit_descriptiontsz!LaTeXTranslator.visit_descriptioncCsdSrBrHrWrHrHrIÚdepart_descriptionwsz"LaTeXTranslator.depart_descriptioncCs| |j¡dSrB)rr>rWrHrHrIÚ visit_docinfozszLaTeXTranslator.visit_docinfocCsN| ¡|jrJd|jd<tj|jd<tj|jd<|j dd¡|j d¡dS)Nz\usepackage{tabularx}ZtabularxÚ_providelengthr>rz@ % Docinfo \begin{center} \begin{tabularx}{\DUdocinfowidth}{lX} z\end{tabularx} \end{center} )rr>r6råÚ providelengthr8r'r2rWrHrHrIÚdepart_docinfo}s   zLaTeXTranslator.depart_docinfocCsä|jr–|dkrr|dks|js(|j g¡|dkrLd|_| | ¡¡}d|_n| | ¡¡}|jd |¡tj‚n$|dkr–|j  | | ¡¡¡tj‚|j  d|  |¡¡|dkrÔd|_|j  d ¡|j  d ¡n |j  d ¡dS) N)r!Ú organizationrVrr!rTFrÏr¤z\textbf{%s}: & z{\raggedright z } \\ rr) r-r£r2rãrìr rïrrPr¤r¬rÔr )rGrXÚnamerærHrHrIrŒs(  z"LaTeXTranslator.visit_docinfo_itemcCs|j |j ¡¡d|_dSr8)r¬r2r rvrãrWrHrHrIr§sz#LaTeXTranslator.depart_docinfo_itemcCs| |¡dSrB)Úvisit_literal_blockrWrHrHrIÚvisit_doctest_block¬sz#LaTeXTranslator.visit_doctest_blockcCs| |¡dSrB)Údepart_literal_blockrWrHrHrIÚdepart_doctest_block¯sz$LaTeXTranslator.depart_doctest_blockcCs:|jst|ƒr6t|dtjƒr6|j|j|dd7_dS)NrF©r÷)r-r(rðrr;r¡rørWrHrHrIÚvisit_document²sÿzLaTeXTranslator.visit_documentcCsL|jjs|jjdkr"| ¡|jd<|j ¡|_|j ¡|_|j tj |j ¡|j rr|j   |j ¡}|j d|¡|jr”|jdg|jdg7_|js°|jrR|js°|jrRd  |j¡g}|jrÎ||j7}|jrò|ddd  |j¡g|j7}|j d d   |¡¡d d „|jDƒ}|j d d  |¡¡|j dd  |j¡¡|j d¡|jr(t|jƒdkr(|jsüd}|jD]$}t|ƒt|dƒkr||d}q||j d|¡|jD]4}|d dd¡}|j d|d||df¡q¸|j d¡n,|j d|jd¡|j d|jd¡d|jkrH|jsH|j d¡dS)N)r&rvršz pdfauthor={%s}z \hypersetup{rér&z \\ % subtitlez\DUdocumentsubtitle{%s}z \title{%s}ú% cSsg|]}d |¡‘qS)rÜ)rX)rÀZ author_entryrHrHrIrÃØsÿz3LaTeXTranslator.depart_document..z \author{%s}z \and z \date{%s}ú, z \maketitle rz \begin{thebibliography}{%s} ròrñz\bibitem[%s]{%s}{%s} r+z\end{thebibliography} z \bibliographystyle{%s} z\bibliography{%s} Úminitocz' \faketableofcontents % for local ToCs )ršrÇrÆr6rär8r9r2råÚlinkingr±r¦r›rXr¥r;r-r£r¤r¡r<r¢r:r=r‘r(r©r˜r¬r;Ú has_latex_toc)rGrXZauthorsr;Z widest_labelZbiZcite_keyrHrHrIÚdepart_document¸st ÿ  ÿÿÿ ÿþÿÿ   ÿ ÿ ÿzLaTeXTranslator.depart_documentcCs"|j d¡|dr| |¡dS)Nz\emph{rAr/rWrHrHrIÚvisit_emphasisùs zLaTeXTranslator.visit_emphasiscCs"|dr| |¡|j d¡dSr1r2rWrHrHrIÚdepart_emphasisþs zLaTeXTranslator.depart_emphasiscCs.|j |j ¡¡r*|j d¡|j ¡qdS)Nú & )r«r{r|r¬r2r~rFrHrHrIÚ(insert_additional_table_colum_delimiterss ÿ z8LaTeXTranslator.insert_additional_table_colum_delimitersc Cs |j ¡dkr| ¡n |j d¡d|kr.rÏÚprefixÚenumtypeÚsuffixr+Úenumz %s\%s{%s}%séz\begin{enumerate}z \renewcommand{\label%s}{%s}z\newcounter{%s}z \begin{list}z{%s}z{\usecounter{%s}}rdz \setcounter{%s}{%d})r/r0Ú section_levelr¨rXr§r“rËr(r)r*r¿r2rr¬r8) rGrXÚtypesrÓr‹rŒrZenumeration_levelZ counter_namer>rHrHrIÚvisit_enumerated_listPs`ûý ÿ ÿþ      ÿÿ  ÿz%LaTeXTranslator.visit_enumerated_listcCs@t|jƒdkr|j d¡n |j d¡| |¡|j ¡dS)Nrz\end{enumerate} r,)r(r¨r¬r2rrvrWrHrHrIÚdepart_enumerated_listƒs   z&LaTeXTranslator.depart_enumerated_listcCsdSrBrHrWrHrHrIÚ visit_field‹szLaTeXTranslator.visit_fieldcCsdSrBrHrWrHrHrIÚ depart_fieldszLaTeXTranslator.depart_fieldcCsdSrBrHrWrHrHrIÚvisit_field_body“sz LaTeXTranslator.visit_field_bodycCs|j|jkr|j d¡dS)NrÜ©r¬r>r2rWrHrHrIÚdepart_field_body–s z!LaTeXTranslator.depart_field_bodycCs2| |¡|j|jk r.tj|jd<|j d¡dS)NÚ fieldlistz\begin{DUfieldlist})rr¬r>rår™r8r2rWrHrHrIÚvisit_field_listšs   z LaTeXTranslator.visit_field_listcCs&|j|jk r|j d¡| |¡dS)Nz\end{DUfieldlist} )r¬r>r2rrWrHrHrIÚdepart_field_list s  z!LaTeXTranslator.depart_field_listcCs*|j|jkr|j d¡n |j d¡dS)Nrz \item[{r—rWrHrHrIÚvisit_field_name¥s z LaTeXTranslator.visit_field_namecCs*|j|jkr|j d¡n |j d¡dS)Nz}: &z:}]r—rWrHrHrIÚdepart_field_name­s z!LaTeXTranslator.depart_field_namecCsrtj|jd<| |¡|j dd¡}|dkr>|j d|¡n |j d¡| d¡rn|j| |¡dg7_dS)NÚfloat_settingsrPrNz\begin{figure} %% align = "%s" z\begin{figure} rõr) råržr6rrVrËr¬r2rø)rGrXÚ alignmentrHrHrIÚ visit_figure³s    zLaTeXTranslator.visit_figurecCs|j d¡| |¡dS)Nr=r(rWrHrHrIÚ depart_figureÃs zLaTeXTranslator.depart_figurecCs| g¡|j d¡dS)Nz\newcommand{\DUfooter}{©rr¬r2rWrHrHrIÚ visit_footerÇs zLaTeXTranslator.visit_footercCs*|j d¡d |j¡|jd<| ¡dS)Nrér&z~footer©r¬r2rXr6rrWrHrHrIÚ depart_footerËs zLaTeXTranslator.depart_footercCsØz|dd}Wn tk r0|dd}YnX|jrÔtj|jd<|d ¡}|jjdkrdd|}|j  d|dd||  |¡f¡|d|dkr¬|j|  |¡7_|d d…rÔt |d t jƒrÔ|j  d ¡dS) NÚbackrefsrrõÚ footnotesrú[%s]z%% \DUfootnotetext{%s}{%s}{%s}{Únamesr+rí)r?rŸrår§r8r rSÚfootnote_referencesr¬r2rìrørðrr")rGrXZbackrefÚnumrHrHrIÚvisit_footnoteÐs    ÿzLaTeXTranslator.visit_footnotecCs|j d¡dSrrrWrHrHrIÚdepart_footnoteãszLaTeXTranslator.depart_footnotecCsžd}d|kr|d}nd|kr.|jj|d}|jj}|dkrf| |¡|j d|¡|j d¡n4tj |j d<|j d|d d |f¡|j d ¡dS) Nr&rArBrrCrHr§z\DUfootnotemark{%s}{%s}{rõrré) rMrErSrªrör¬r2r rår§r8)rGrXrFÚformatrHrHrIÚvisit_footnote_referenceæs    ÿz(LaTeXTranslator.visit_footnote_referencecCs|j |j ¡¡dSrB©r¬r2r rvrWrHrHrIÚdepart_footnote_reference sz)LaTeXTranslator.depart_footnote_referencecCs>t|jtjƒrtj‚n$t|jtjƒs(t‚|js:|j  |¡dSrB) rðrñrZfootnoterPZcitationrDr‘r¬r2)rGrXZbracketrrHrHrIÚ label_delim s zLaTeXTranslator.label_delimcCs| |dd¡dS)z9footnote or citation label: in brackets or as superscriptrõr.N©r²rWrHrHrIÚ visit_label szLaTeXTranslator.visit_labelcCs| |dd¡dS)Nrörér³rWrHrHrIÚ depart_label szLaTeXTranslator.depart_labelcCsdSrBrHrWrHrHrIÚvisit_generated szLaTeXTranslator.visit_generatedcCsdSrBrHrWrHrHrIÚdepart_generated sz LaTeXTranslator.depart_generatedcCs| g¡|j d¡dS)Nz\newcommand{\DUheader}{r¢rWrHrHrIÚ visit_header s zLaTeXTranslator.visit_headercCs*|j d¡d |j¡|jd<| ¡dS)Nrér&z~headerr¤rWrHrHrIÚ depart_header s zLaTeXTranslator.depart_headercCs˜|dk rtj d¡t d|¡}|s(|S| ¡dd…\}}|dkrNd|}nF|dkrhdt|ƒd }n,|jr”|d kr”tj |j d <d |j d <d |}|S)z=Convert `length_str` with rst lenght to LaTeX length NzWdeprecation warning: LaTeXTranslator.to_latex_length() option `pxunit` will be removed.z(\d*\.?\d*)\s*(\S*)rÛ)r&r³z%sbpríz%.3f\linewidthçY@Zpxrlz$ \DUprovidelength{\pdfpxdimen}{1bp} z %s\pdfpxdimen) ÚsysÚstderrÚwriter–ÚmatchÚgroupsr\r®rårmr8)rGZ length_strZpxunitr¾rGÚunitrHrHrIÚto_latex_length$ s     zLaTeXTranslator.to_latex_lengthc Cs¼|j|jd<|j}tj |d¡ dd¡}d|krRt|jt j ƒrHd|d<|  |¡g}g}g}ddd d d d d œ}d|krºz,||d}|  |d¡|  |d¡Wnt k r¸YnXd|krÚ|  d| |d¡¡d|krø|  d|dd¡d|kr|  d| |d¡¡| |¡sFt|jt j t jfƒsF|  d¡| |¡slt|jt j ƒsl|  d¡| ¡|j |¡d} |r˜dd |¡} |j  d| |f¡|j |¡dS)NrÕÚurirçú/rPrN©r&r&)z\raisebox{-0.5\height}{ré)z\raisebox{-\height}{ré)z!\noindent\makebox[\linewidth][c]{ré)z \noindent{z\hfill})z\noindent{\hfillré)ZbottomZmiddleÚtoprNrMrOrr+Úheightz height=%sZscalezscale=%frºrQzwidth=%srr&r¨rÉz\includegraphics%s{%s})rr6rVÚurllibÚrequestÚ url2pathnamer;rðrñrÚfigurerür2rØrÁròrrur¬rÓrX) rGrXÚattrsZ imagepathÚpreÚpostZinclude_graphics_optionsZ align_codesZ align_codeÚoptionsrHrHrIÚ visit_image= sf  ø   ÿ ÿ  ÿ ÿ   ÿ  zLaTeXTranslator.visit_imagecCs(| d¡r$|j| |¡dg7_dS)Nrõr)rËr¬rørWrHrHrIÚ depart_imaget s zLaTeXTranslator.depart_imagecCsn|dD]`}| d¡rL|j |dd…¡}|rhd|jj|<|j d|¡qtj|jd<|j d|¡qdS)NrArþrÿTz\foreignlanguage{%s}{Úinlinez \DUrole{%s}{) râršrÅrÇr¬r2rårÑr8rrHrHrIr x s    zLaTeXTranslator.visit_inlinecCs|j dt|dƒ¡dS)NrérA)r¬r2r(rWrHrHrIrƒ szLaTeXTranslator.depart_inlinecCstj|jd<|j d¡dS)NÚlegendz\begin{DUlegend})rårÒr8r¬r2rWrHrHrIÚ visit_legend† s zLaTeXTranslator.visit_legendcCs|j d¡dS)Nz\end{DUlegend} rrWrHrHrIÚ depart_legendŠ szLaTeXTranslator.depart_legendcCs|j d¡dS)Nz\item[] rrWrHrHrIÚ visit_line szLaTeXTranslator.visit_linecCs|j d¡dSrcrrWrHrHrIÚ depart_line szLaTeXTranslator.depart_linecCsbtj|jd<tj|jd<| |¡t|jtjƒr>|j   d¡n |  |¡|j   d¡|  |¡dS)NrlÚ lineblockz0\item[] \begin{DUlineblock}{\DUlineblockindent} z\begin{DUlineblock}{0em} ) rårmr8r×rürðrñrZ line_blockr¬r2rrýrWrHrHrIÚvisit_line_block“ s     z LaTeXTranslator.visit_line_blockcCs|j d¡| |¡dS)Nz\end{DUlineblock} r(rWrHrHrIÚdepart_line_block  s z!LaTeXTranslator.depart_line_blockcCs|j d¡dS)Nz \item rrWrHrHrIÚvisit_list_item¤ szLaTeXTranslator.visit_list_itemcCsdSrBrHrWrHrHrIÚdepart_list_item§ sz LaTeXTranslator.depart_list_itemcCsXd|_d|dkr6|jjdkr6tj|jd<tj|jd<|j  d¡|drT|  |¡dS)NTÚcoderAr%Úcolorz\texttt{) ràrSÚsyntax_highlightrårÝr6Úhighlight_rulesr8r¬r2r rWrHrHrIÚ visit_literalª s  ÿ   zLaTeXTranslator.visit_literalcCs(d|_|dr| |¡|j d¡dS)NFrAré)ràrr¬r2rWrHrHrIÚdepart_literal´ s zLaTeXTranslator.depart_literalcCst|ƒdkot|dtjƒS)z,Check whether a node can be typeset verbatimr+r)r(rðrrIrWrHrHrIÚ is_plaintextÉ szLaTeXTranslator.is_plaintextcCsdddddœ}|j}|j ¡}|o(|jj}| |¡}|dko>|}| d¡rd|jdg| |¡7_| |¡|s¢d|d kr¢|j j d kr¢t j |j d <t j|jd<|rü|rü|süd d d ddg¡|jd<|j dtdd„| ¡ d¡Dƒƒ¡|j d¡n2|s"|s"|j d¡|j d¡n |j d¡|r¶|r¶|rF|r¶z|||j d<Wntk rnYnXd|_|rŽ|rŽ|j d¡|j d||jf¡|j d|¡n`|rì|sìd|_d|j d<|j d¡|j d¡n*d|_d|_d|_|j d ¡|j d ¡d!S)"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ÚlistingZVerbatimZ verbatimtabrãrõrrÜrAr%rÝr&z$% character width in monospaced fontz\newlength{\ttemwidth}z$\settowidth{\ttemwidth}{\ttfamily M}Zttemz\begin{minipage}{%d\ttemwidth} css|]}t|ƒVqdSrB)r()rÀrërHrHrIÚ ò sz6LaTeXTranslator.visit_literal_block..z \end{minipage} z\begin{quote} z \end{quote} Z literal_blockTz\lstset{xleftmargin=0pt} z \begin{%s}%s z \end{%s}z\usepackage{alltt}rz\begin{alltt} z \end{alltt}z\ttfamily\raggedright N)r”r«r9r4rârËr¬rørrSrÞrårÝr6rßr8rXr2Úmaxr r—r rØrr•rràrãrá)rGrXÚpackagesÚ environmentZ _in_tableZ_autowidth_tableZ _plaintextZ _listingsrHrHrIrqÍ slü       ÿ   ý ÿ     ÿ    z#LaTeXTranslator.visit_literal_blockcCsPd|_d|_d|_d|_d|_|j |j ¡¡|j |j ¡¡|  |¡dSr8) rárãràrrr¬r2r rvrrWrHrHrIrs sz$LaTeXTranslator.depart_literal_blockrìcCs¬|dr| |¡d|jd<| ¡ tj¡}| d¡rLd |g| |¡¡}|dkrf|j r`d}q€d}nd d d |d d |g¡}|j   ||¡|dr¢|  |¡t j‚d S)z math rolerAz\usepackage{amsmath}Zamsmathrõrrìz\(%s\)z$%s$z%%z \begin{%s}z%srSN)r r6r rdr Z uni2tex_tablerËrXrørr¬r2rrrP)rGrXÚmath_envZ math_codeÚwrapperrHrHrIÚ visit_math0 s&   ý zLaTeXTranslator.visit_mathcCsdSrBrHrWrHrHrIÚ depart_mathI szLaTeXTranslator.depart_mathcCst| ¡ƒ}|j||ddS)N)ré)r r rë)rGrXrérHrHrIÚvisit_math_blockL s z LaTeXTranslator.visit_math_blockcCsdSrBrHrWrHrHrIÚdepart_math_blockP sz!LaTeXTranslator.depart_math_blockcCs|jdr|j d¡dS)NrÏrx)r r¬r2rWrHrHrIÚ visit_optionS s zLaTeXTranslator.visit_optioncCs|jdd7<dS)NrÏr+)r rWrHrHrIÚ depart_optionX szLaTeXTranslator.depart_optioncCs|j | dd¡¡dS)zAAppend the delimiter betweeen an option and its argument to body.Ú delimiterrØN)r¬r2rËrWrHrHrIÚvisit_option_argument\ sz%LaTeXTranslator.visit_option_argumentcCsdSrBrHrWrHrHrIÚdepart_option_argument` sz&LaTeXTranslator.depart_option_argumentcCs|j d¡|j d¡dS)Nz \item[r)r¬r2r rWrHrHrIÚvisit_option_groupc s z"LaTeXTranslator.visit_option_groupcCs|j ¡|j d¡dS)Nz] )r rvr¬r2rWrHrHrIÚdepart_option_grouph s z#LaTeXTranslator.depart_option_groupcCs2tj|jd<tj|jd<| |¡|j d¡dS)NrlÚ optionlistz\begin{DUoptionlist})rårmr8rörr¬r2rWrHrHrIÚvisit_option_listl s   z!LaTeXTranslator.visit_option_listcCs|j d¡| |¡dS)Nz\end{DUoptionlist} r(rWrHrHrIÚdepart_option_listr s z"LaTeXTranslator.depart_option_listcCsdSrBrHrWrHrHrIÚvisit_option_list_itemv sz&LaTeXTranslator.visit_option_list_itemcCsdSrBrHrWrHrHrIÚdepart_option_list_itemy sz'LaTeXTranslator.depart_option_list_itemcCsdSrBrHrWrHrHrIÚvisit_option_string| sz#LaTeXTranslator.visit_option_stringcCsdSrBrHrWrHrHrIÚdepart_option_string€ sz$LaTeXTranslator.depart_option_stringcCs| |d¡dS)NrorrWrHrHrIÚvisit_organization„ sz"LaTeXTranslator.visit_organizationcCs| |¡dSrBrrWrHrHrIÚdepart_organization‡ sz#LaTeXTranslator.depart_organizationcCsì|j |¡}|dkr.t|jtjtjtjfƒr.n„|dkrrt|jtjƒrrt|j|dtjƒsrt|j|dtjƒsrn@|jj r¦|dkr|j d|d|dkr²|j   d¡n |j   d¡|  d¡rÖ|j | |¡dg7_ |drè| |¡dS)Nrr+z:LaTeX merges paragraphs in tables with auto-sized columns!©Z base_noderrõrA)rñÚindexrðrZ list_itemÚ descriptionrr"r«r4rŒr¬r2rËrør )rGrXrrHrHrIÚvisit_paragraphŠ s. ÿÿþÿ  zLaTeXTranslator.visit_paragraphcCs*|dr| |¡|jjs&|j d¡dS)NrAr)rr«r4r¬r2rWrHrHrIÚdepart_paragraph¤ s z LaTeXTranslator.depart_paragraphcCs:tj|jd<|j d¡| |¡|j d|d¡dS)NrÝróz"\hyperlink{%s}{\textbf{\color{red}rA)rårÝr6r¬r2rörWrHrHrIÚvisit_problematicª s   z!LaTeXTranslator.visit_problematiccCs|j d¡dS)Nz}}rrWrHrHrIÚdepart_problematic° sz"LaTeXTranslator.depart_problematiccCsLd| dd¡ ¡krtj‚| |¡s0|j d¡|drB| |¡d|_dS)Nr r®r&rrAT) rËr—rrPròr¬r2r rrWrHrHrIÚ visit_raw³ s   zLaTeXTranslator.visit_rawcCs2d|_|dr| |¡| |¡s.|j d¡dS)NFrAr)rrròr¬r2rWrHrHrIÚ depart_raw½ s   zLaTeXTranslator.depart_rawcCsDd}|D]2}|dkr|d7}|dkr,|d8}|dkrdSq|dkS)z7Test whether there are unmatched '{' or '}' characters.rrèr+réTrH)rGrZr+rèrHrHrIÚhas_unbalanced_bracesÄ sz%LaTeXTranslator.has_unbalanced_bracescCs tdƒdtdƒdtdƒdi}d|kr–t|dƒ |¡}| d¡d ksN| |¡r\| d |¡|d| ¡kr‚|j d |¡t j ‚|j d |¡dSd |kr¨|d }n"d|krÂ|j j |d}nt dƒ‚| |¡sà|j d¡|j d|¡|jr|j d|j| dd¡f¡t j ‚dS)Nrêrërírîrçz\\Úrefuriz^^rÏzYExternal link "%s" not supported by LaTeX. (Must not contain "^^" or unbalanced braces.)z\url{%s}z \href{%s}{rArBzUnknown reference.rz\hyperref[%s]{z\%s{%s}}r&)rr\rdr°rrr r¬r2rrPrMrErDròr’r;)rGrXZ special_charsrFrHrHrIÚvisit_referenceÐ s@þÿÿ   ÿzLaTeXTranslator.visit_referencecCs&|j d¡| |¡s"|j d¡dS)Nrér)r¬r2ròrWrHrHrIÚdepart_referenceò s  z LaTeXTranslator.depart_referencecCs| |d¡dS)NÚrevisionrrWrHrHrIÚvisit_revision÷ szLaTeXTranslator.visit_revisioncCs| |¡dSrBrrWrHrHrIÚdepart_revisionú szLaTeXTranslator.depart_revisioncCs&tj|jd<| |¡|j d¡dS)NÚrubricz \DUrubric{)rårr8rr¬r2rWrHrHrIÚ visit_rubricý s  zLaTeXTranslator.visit_rubriccCs|j d¡| |¡dSrr(rWrHrHrIÚ depart_rubric s zLaTeXTranslator.depart_rubriccCs6|jd7_|j d¡|j|jdd7<dS)Nr+r)rr§r2rWrHrHrIÚ visit_section s zLaTeXTranslator.visit_sectioncCs|j ¡|jd8_dSr})r§rvrrWrHrHrIÚdepart_section s zLaTeXTranslator.depart_sectioncCs2| |¡tj|jd<tj|jd<|j d¡dS)NrÝÚsidebarz \DUsidebar{)rrårÝr6rr8r¬r2rWrHrHrIÚ visit_sidebar s   zLaTeXTranslator.visit_sidebarcCs|j d¡| |¡dSrr(rWrHrHrIÚdepart_sidebar s zLaTeXTranslator.depart_sidebar)u—r&)rˆr‰rÄ)r"r#r$r%cCs:|j|jj\}}|j d¡|j |¡|j |¡dS)Nz\nopagebreak \raggedleft )Úattribution_formatsrSZ attributionr¬r2r )rGrXr‹rrHrHrIÚvisit_attribution! s  z!LaTeXTranslator.visit_attributioncCs|j |j ¡d¡dSrcr°rWrHrHrIÚdepart_attribution' sz"LaTeXTranslator.depart_attributioncCs| |d¡dS)NÚstatusrrWrHrHrIÚ visit_status* szLaTeXTranslator.visit_statuscCs| |¡dSrBrrWrHrHrIÚ depart_status- szLaTeXTranslator.depart_statuscCs"|j d¡|dr| |¡dS)NrrAr/rWrHrHrIÚ visit_strong0 s zLaTeXTranslator.visit_strongcCs"|dr| |¡|j d¡dSr1r2rWrHrHrIÚ depart_strong5 s zLaTeXTranslator.depart_strongcCs tj‚dSrB)rrPrWrHrHrIÚvisit_substitution_definition: sz-LaTeXTranslator.visit_substitution_definitioncCs| |¡dSrB)Úunimplemented_visitrWrHrHrIÚvisit_substitution_reference= sz,LaTeXTranslator.visit_substitution_referencecCs’t|jtjƒr@| |j¡tj|jd<|j |j |dd7_ nNt|jtj ƒrn|j   d|j  |jd¡¡n tj|jd<|j   d|jj¡dS)NÚdocumentsubtitleFruz\%s*{r+r<z \DUsubtitle[%s]{)rðrñrrMrr<rår"r8r¢rør!r¬r2rœrÚtagnamerWrHrHrIÚvisit_subtitle@ s  ÿ zLaTeXTranslator.visit_subtitlecCs(t|jtjƒr| ¡n |j d¡dSr)rðrñrrMrr¬r2rWrHrHrIÚdepart_subtitleM s zLaTeXTranslator.depart_subtitlec Csütj|jd<tj|jd<dg|d<| |¡|j d¡| |¡zd|d}Wnt k rjd}YnX|j d |d |d |  |d ¡|f¡t |d ƒdkrÌ|j d|d d¡|j  d¡n,dd„t |d ƒDƒ}|j  dd |¡¡dS)NrÝr;zsystem-messagerAz* \DUtitle[system-message]{system-message} z , line~%srër&z& {\color{red}%s/%s} in \texttt{%s}%s Útyper+Úsourcer¦r+z \hyperlink{%s}{rrécSs g|]\}}d||df‘qS)z\hyperlink{%s}{%d}r+rH)rÀrtrFrHrHrIrÃe sÿz8LaTeXTranslator.visit_system_message..z backrefs: rØ)rårÝr6r;r8rr¬r2rörØrìr(r rärX)rGrXrër¦rHrHrIÚvisit_system_messageS s.         ÿÿ ÿz$LaTeXTranslator.visit_system_messagecCs|j |j ¡¡| ¡dSrB)r¬r2r rvr rWrHrHrIÚdepart_system_messagei sz%LaTeXTranslator.depart_system_messagecCsÜtj|jd<|j ¡r0|j |j¡t|dƒ|_|jjdkr~t |j t j ƒr~|j   |¡dkr~|j  |j¡ d¡dkr~|j d¡|j ¡|j |jj|d¡d |kr¸|j d |d ¡|jjd krÎd |jd <| g¡dS) NrçZtabularrCr+r"rÏz \leavevmoderArPrz\usepackage{booktabs})rårçr6r«r9rªr2r,r.rðrñrr!rrœrr°r¬rRrBrSr@rHr>rrWrHrHrIÚ visit_tablem s*     ÿþý   ÿ  zLaTeXTranslator.visit_tablecCsÈ|j}| ¡z| |jd¡}Wntk r:d}YnX|j d|j |¡¡|j|7_|j |j ¡d¡|j  ¡t |j ƒdkrœ|j   ¡|_|  d¡rÄ|j|j|dddg7_dS)NrQrKrrrõFru)r¬rrÁrVrØr2r«rRrUr^r(rªrvrËrø)rGrXrÁrQrHrHrIÚ depart_tableƒ s    zLaTeXTranslator.depart_tablecCs`d|ksd|ksd|krdS|j d¡t|jtjƒpBt|jtjƒ }|j| ||¡7_dS)Nr rArBró)r¬r2rðrñrr7r;rø)rGrXr÷rHrHrIÚ visit_target– sÿþ  ÿzLaTeXTranslator.visit_targetcCsdSrBrHrWrHrHrIÚ depart_target¤ szLaTeXTranslator.depart_targetcCs$|j d¡s | |¡| d¡dS)Núpreamble written)r«rËrlrnrWrHrHrIÚ visit_tbody§ s  zLaTeXTranslator.visit_tbodycCsdSrBrHrWrHrHrIÚ depart_tbody® szLaTeXTranslator.depart_tbodycCs|j d¡dS)zdefinition list termz\item[{NrrWrHrHrIÚ visit_term± szLaTeXTranslator.visit_termcCs|j d¡dS)Nz}] \leavevmode rrWrHrHrIÚ depart_term· szLaTeXTranslator.depart_termcCsdSrBrHrWrHrHrIÚ visit_tgroup¼ szLaTeXTranslator.visit_tgroupcCsdSrBrHrWrHrHrIÚ depart_tgroupÁ szLaTeXTranslator.depart_tgroupcCs|jSrB)Ú _thead_depthrFrHrHrIrhÅ szLaTeXTranslator.thead_depthcCsh|jd7_d| ¡kr@|j d|j |¡¡|j dd¡|j |j ¡¡|j |j  ¡¡dS)Nr+z{%s} r.) r5rhr¬r2r«r^rHrirÓrlrWrHrHrIrlÈ s  zLaTeXTranslator.visit_theadcCs@|dk r.|j |j ¡¡|j ¡r.| |¡|jd8_dSr})r¬rÓr«rnrjrNr5rWrHrHrIrnÐ s   zLaTeXTranslator.depart_theadcCs®|jjdkrB| |j¡|j d¡|j d| | ¡¡¡nht |jt j ƒslt |jt j ƒslt |jt j ƒr°tj|jd<d |jd¡}|s’|j}|j d|¡|j d¡nút |jt jƒrÚ| |jj¡|j d¡nÐttd ƒrðtj|jd <|j |j¡}|j d ¡d |jdkrJtj|jd <| | ¡¡}|j d ||f¡n|j d|¡|jt|jjƒkrztj|jd<dg}||j|jdd7}|j d |¡d¡dS)z Append section and other titles.rMr&z pdftitle={%s},r;rÉrAz \DUtitle[%s]{rr²z zsystem-messagesrÝz\%s[%s]{\color{red}z\%s{Frurwz% } N)rñr#rr;r r2r¥rìr rðrÚtopicrrrår8rXr¬rçr«r7r´r²r6rœr!rrÝr(r&rø)rGrXrAÚ section_nameZ section_titleÚbookmarkrHrHrIÚ visit_title× sJ    ÿ  ÿ þ     ÿ  zLaTeXTranslator.visit_titlecCs8|j |j ¡¡t|jtjƒs,|jjdkr4|  ¡dS)NrM) r¬r2r rvrðrñrrçr#rrWrHrHrIÚ depart_title s  ÿzLaTeXTranslator.depart_titlec Cs|j |j¡}dddœ}d|jjkr,d|d<z ||}Wn,tk rd|jd|d|d Yd SXtj|jd <d ||jd |<t |jjƒ}d||f|jd|<ddddœ}d|jjkrÆd|d<|ræ|j   d||||f¡|j   d||f¡|j   d|¡d S)z=Generate a local table of contents with LaTeX package minitocrcÚmini)rcr$r$Úsectr!z Skipping local ToC at %s level. z3 Feature not supported with option "use-latex-toc"rÿNryz\do%stoczminitoc-z\mtcsetdepth{%stoc}{%d}zminitoc-%s-depthr+r)r<r;rcrÏz\setcounter{%stocdepth}{%d}z\mtcsettitle{%stoc}{%s} z\%stoc ) rœr!rr&rØrŒråryr6r(r¬r2) rGrXr;Údepthr7Z minitoc_namesZ minitoc_nameZmaxdepthÚoffsetrHrHrIry s:    ÿþ ÿ  ÿ   ÿzLaTeXTranslator.minitocc CsÎd|dkr|j d¡|j| |¡7_t| ¡tjƒrp|j d|jd| ¡ ¡|  ddg¡df¡|j r d}t| ¡tjƒr |  |  d¡ ¡¡}|  d d¡}d |dkrÊ|  |||¡dS|rÞ|j d |¡|d krö|j d |¡|j d¡d|_nd|_n¸d|dkr`|jjr`| |j¡|j d¡t| ¡tjƒrÊ|  d¡njd|dkrˆtj|jd<| |j¡n8d|dkr°tj|jd<| |j¡n|d dd¡| |¡dS)NÚcontentsrArz \pdfbookmark[%d]{%s}{%s}r+rõrr&r=Úlocalz\setcounter{tocdepth}{%d} ZContentsz! \renewcommand{\contentsname}{%s}z \tableofcontents Tr@z\begin{abstract}r?r6)r¬r2rørðZ next_noderr;rr rËr,rìrvryr{r*rSr.rr@rår8r?r'r')rGrXr;r=rHrHrIÚ visit_topic5 sT  þÿ  ÿ ÿ     zLaTeXTranslator.visit_topiccCsbd|_d|dkr(|jjr(|j d¡nd|dkr>| |¡d|dksVd|dkr^| ¡dS)NFr@rAz\end{abstract} r?r?)r*rSr.r¬r2r)rrWrHrHrIÚ depart_topicf s ÿ    ÿzLaTeXTranslator.depart_topiccCs(tj|jd<|j d¡|j d¡dS)NÚ transitionzN %___________________________________________________________________________ z\DUtransition )rårCr8r¬r2rWrHrHrIÚvisit_transitionq s  z LaTeXTranslator.visit_transitioncCsdSrBrHrWrHrHrIÚdepart_transitionv sz!LaTeXTranslator.depart_transitioncCs| |d¡dS)NÚversionrrWrHrHrIÚ visit_versiony szLaTeXTranslator.visit_versioncCs| |¡dSrBrrWrHrHrIÚdepart_version| szLaTeXTranslator.depart_versioncCstd|jjƒ‚dS)Nz$visiting unimplemented node type: %s)r‚rJrgrWrHrHrIr  sÿz#LaTeXTranslator.unimplemented_visit)T)N)N)N)rì)ÝrgrhrirÝr®r/r0r“r{r*rrßrrárãràrrnrCr†rŽrÔrìr–Úcompilerïròrörørürýrrrrr r rrrrrrrr r"r#r$r%r'r)r+r-r0r3r5r6r7r8r:r;r<r?rGrLrMrNrYrOrQrRrSrUrWrXrYrZr\r]r^r_r`rarbrdrerfrgrhrirjrkrnrrrrrtrvr|r}r~r€r~r…rqrxr’r“r”r•r–r˜ršr›rœrr r¡r£r¥r¬r­r¯r±r²r´rµr¶r·r¸r¹rÁrÏrÐr rrÓrÔrÕrÖrØrÙrÚrÛràrárârqrsrërìrírîrïrðròrórôrõr÷rørùrúrûrürýrþrrrrrrrr r r rrrrrrrrrrrrrrrr!r$r%r(r)r*r+r,r-r/r0r1r2r3r4r5rhrlrnr9r:ryrArBrDrErGrHr rHrHrHrIrDssº   [")Xÿ       A93 7     I                        "         ý                         5  # 1    rD)DrÝZ __docformat__r»rVÚtimer–rZÚurllib.requestrÇÚ urllib.parseÚ urllib.errorr)Ú ImportErrorZdocutils.utils.romanrZdocutilsrrrrrZdocutils.utils.error_reportingrZdocutils.transformsr Zdocutils.utils.mathr r r ÚobjectrnrÞràrår@rrÝr>r?rrr™ržr§ržrßrÑrÒr×rzryrörmrrr<r"rçrr4r9r;rCrær r,r‹rDrHrHrHrIÚsp    r1   ,u