o $a!D@sDdZddlZddlZddlmZddlmZddlmZm Z m Z m Z m Z m Z mZmZddlmZmZddlmZmZmZddlmZmZdd lmZdd lmZdd lmZdd l m!Z!dd l"m#Z#m$Z$m%Z%ddl&m'Z'm(Z(m)Z)ddl*m+Z+ddl,m-Z-m.Z.ddl/m0Z0ddl1m2Z2zddl3m4Z4Wne5yddl6m4Z4Ynwerddl7m8Z8ddl9m:Z:e';e<Z=dZ>gdZ?eddddddddZ@d ZAd!ZBeCd"ZDGd#d$d$ejEZFGd%d&d&e!ZGGd'd(d(ejHZIGd)d*d*ZJGd+d,d,ZKd-eLd.eLfd/d0ZMd9d2eLd3eNd.eLfd4d5ZOGd6d7d7e+ZPdd8lQmRZRmSZSmTZTdS):a0 sphinx.writers.latex ~~~~~~~~~~~~~~~~~~~~ Custom docutils writer for LaTeX. Much of this code is adapted from Dave Kuhlman's "docpy" writer from his docutils sandbox. :copyright: Copyright 2007-2021 by the Sphinx team, see AUTHORS. :license: BSD, see LICENSE for details. N) defaultdict)path) TYPE_CHECKINGAnyDictIterableListSetTuplecast)nodeswriters)ElementNodeText)addnodes highlighting)RemovedInSphinx50Warning) IndexEntry)StandardDomain) SphinxError)___admonitionlabels)logging split_into texescape)SphinxTranslator) clean_astext get_prev_node) LaTeXRenderer)tex_replace_map)toRoman) LaTeXBuilder)Theme)partchaptersection subsection subsubsection paragraph subparagraphcCsdS)N\arabicr.r.r.6/usr/lib/python3/dist-packages/sphinx/writers/latex.py3sr0r-z\alphz\Alphz\romanz\Roman)arabic loweralpha upperalpha lowerroman upperroman z z^(.*\S)\s+\(([^()]*)\)\s*$c@eZdZdZdS)collected_footnotez5Footnotes that are collected are assigned this class.N)__name__ __module__ __qualname____doc__r.r.r.r/r8Ar8c@r7)UnsupportedErrorzMarkup is unsupported in LaTeXN)r9r:r;categoryr.r.r.r/r>Er=r>csreZdZUdZddddgddifddgdd ifd d gddifffZiZeed <d Zdfdd Z dddZ Z S) LaTeXWriter) sphinxlatexzLaTeX writer optionsz Document namez --docnamedefaultzDocument classz --docclassmanualAuthorz--authorsettings_defaultsNbuilderr#returncst||_d|_dSN)super__init__rGtheme)selfrG __class__r.r/rKVs  zLaTeXWriter.__init__cCspz |j|j|j|j}Wnty'tjdtdd|j|j|j}Ynw|j|t t | |_ dS)N0LaTeXTranslator now takes 3rd argument; "theme". stacklevel) rGcreate_translatordocumentrL TypeErrorwarningswarnr walkaboutr LaTeXTranslatorastextoutput)rMvisitorr.r.r/ translate[s  zLaTeXWriter.translate)rGr#rHN)rHN) r9r:r; supported settings_specrFr__annotations__r\rKr^ __classcell__r.r.rNr/r@Is  r@c@szeZdZdZdeddfddZdefddZdefd d Z defd d Z d e de ddfddZ dde de ddfddZ dS)Tablez A table datanoderHNcCsxg|_g|_|dd|_|dg|_d|_d|_g|_d|_d|_ d|_ d|_ g|_ d|_ d|_tt|_d|_dS)NalignrCclassesrF)headerbodygetrerfcolcountcolspec colwidthshas_problematichas_oldproblematic has_verbatimcaptionstubscolrowrintcellscell_idrMrdr.r.r/rKls   zTable.__init__cCs|jdkp d|jvS)z5True if and only if table uses longtable environment. longtable)rsrfrMr.r.r/ is_longtableszTable.is_longtablecCs>|rdS|jr dS|jrdS|js|jrd|jvrdSdS)zReturns the LaTeX environment name for the table. The class currently supports: * longtable * tabular * tabulary rytabulartabularycolwidths-given)r{rorkrmrlrfrzr.r.r/get_table_types zTable.get_table_typecs|jr|jS|jr&d|jvr&t|jfdd|jD}dd|tS|jr3d|j|jftS|dkrDdd |jd tS|j rQd|j|jftSdd |jd tS) zReturns a column spec of table. This is what LaTeX calls the 'preamble argument' of the used table environment. .. note:: the ``\X`` and ``T`` column type specifiers are defined in ``sphinx.sty``. r~csg|]}d|fqS)z \X{%d}{%d}r.).0widthtotalr.r/ sz%Table.get_colspec..z{|%s|}|z{|*{%d}{\X{1}{%d}|}}r}z{|zT|}zl|) rkrlrfsumjoinCRrmrjrrn)rMcolspecsr.rr/ get_colspecs  zTable.get_colspecheightrcCsl|jd7_t|D](}t|D]!}|j|j||j|fdks$J|j|j|j||j|f<qq dS)zsAdds a new cell to a table. It will be located at current position: (``self.row``, ``self.col``). rN)rvrangerursrr)rMrrrrrsr.r.r/add_cells  "zTable.add_cellrsrr TableCellcCs@z|dur|j}|dur|j}t|||WStyYdSw)zReturns a cell object (i.e. rectangular area) containing given position. If no option arguments: ``row`` or ``col`` are given, the current position; ``self.row`` and ``self.col`` are used to get a cell object by default. N)rsrrr IndexError)rMrsrrr.r.r/cells z Table.cell)NN)r9r:r;r<rrKboolr{strrrrtrrr.r.r.r/rcis rcc@sNeZdZdZdedededdfddZedefd d Zedefd d Z dS) rzData of a cell in a table.tablersrrrHNcCs|j||fdkr t||_|j||f|_||_||_|j|jd|jf|jkr?|jd8_|j|jd|jf|jks*|j|j|jdf|jkrd|jd8_|j|j|jdf|jksMdSdSNrr)rurrrvrsrr)rMrrsrrr.r.r/rKs$zTableCell.__init__cCsLd}|jj|j|j|f|jkr$|d7}|jj|j|j|f|jks|S)zReturns the cell width.rrrrursrrrv)rMrr.r.r/r zTableCell.widthcCsLd}|jj|j||jf|jkr$|d7}|jj|j||jf|jks|S)zReturns the cell height.rrr)rMrr.r.r/rrzTableCell.height) r9r:r;r<rcrtrKpropertyrrr.r.r.r/rsrtextrHcCstdd|S)z#Adjust spacing after abbreviations.z \.(?=\s|$)z.\@)resub)rr.r.r/ escape_abbrrd width_strscalecCstd|}|s t|}|dd\}}|dkr@t||dvr(d|}|S|dkr2d|}|S|d kr>d t|d }|St||d }|dvrRd |}|S|dkr\d |}|S|d krhd|d }|Sd||f}|S)z4Convert `width_str` with rst length to LaTeX length.z^(\d*\.?\d*)\s*(\S*)$NrQr)rBpxz%s\sphinxpxdimenptz%sbp%z%.3f\linewidthY@z%.5f\sphinxpxdimenz%.5fbpz%.5f\linewidthz%.5f%s)rmatch ValueErrorgroupsfloat)rrrresamountunit amount_floatr.r.r/rstdim_to_latexdims8     rc sveZdZUdZded<dZdZdZ ddej dddd d dffd d Z d e e d dfddZ d e e fddZde d e fddZd e fddZdde deded e fddZddeded e fddZde d e fd d!Zde d e fd"d#Zd$e d e fd%d&Zde d e fd'd(Zd)e d*e d e fd+d,Zd e fd-d.Zd/e d0ed e fd1d2Zed efd3d4Zded dfd5d6Z ded dfd7d8Z!ded dfd9d:Z"ded dfd;d<Z#ded dfd=d>Z$ded dfd?d@Z%ded dfdAdBZ&ded dfdCdDZ'ded dfdEdFZ(ded dfdGdHZ)e(Z*e)Z+ded dfdIdJZ,ded dfdKdLZ-ded dfdMdNZ.ded dfdOdPZ/ded dfdQdRZ0ded dfdSdTZ1ded dfdUdVZ2ded dfdWdXZ3ded dfdYdZZ4ded dfd[d\Z5ded dfd]d^Z6ded dfd_d`Z7ded dfdadbZ8ded dfdcddZ9ded dfdedfZ:ded dfdgdhZ;ded dfdidjZded dfdodpZ?ded dfdqdrZ@ded dfdsdtZAded dfdudvZBded dfdwdxZCded dfdydzZDded dfd{d|ZEded dfd}d~ZFded dfddZGded dfddZHded dfddZIded dfddZJded dfddZKded dfddZLded dfddZMded dfddZNded dfddZOded dfddZPded dfddZQded dfddZRded dfddZSded dfddZTded dfddZUded dfddZVded dfddZWded dfddZXded dfddZYded dfddZZded dfddZ[ded dfddZ\ded dfddZ]ded dfddZ^ded dfddZ_ded dfddZ`ded dfddZaded dfddZbded dfddZcded dfddZdded dfddZeded dfddZfded dfddZgded dfdd„Zhded dfddĄZided dfddƄZjded dfddȄZkded dfddʄZlded dfdd̄Zmded dfdd΄Znded dfddЄZoded dfdd҄Zpded dfddԄZqded dfddքZrded dfdd؄Zsded dfddڄZtded dfdd܄Zuded dfddބZvded dfddZwded dfddZxded dfddZyded dfddZzded dfddZ{ded dfddZ|ded dfddZ}ded dfddZ~euZevZeyZezZded dfddZded dfddZded dfddZded dfddZded dfddZded dfddZded dfddZded dfddZdde ded e fddZded efddZded dfddZded dfdd Zded dfd d Zded dfd d Zded dfddZded dfddZded dfddZded dfddZded dfddZded dfddZded dfddZded dfddZeZeZeZeZeZeZeZeZeZeZeZeZeZeZeZeZeZeZded dfddZded dfd d!Zded dfd"d#Zded dfd$d%Zded dfd&d'Zded dfd(d)Zded dfd*d+Zded dfd,d-Zded dfd.d/Zded dfd0d1Zded dfd2d3Zded dfd4d5Zded dfd6d7Zded dfd8d9Zded dfd:d;Zded dfd<d=Zded dfd>d?Zded dfd@dAZded dfdBdCZded dfdDdEZded dfdFdGZded dfdHdIZded dfdJdKZded dfdLdMZded dfdNdOZded dfdPdQZded dfdRdSZded dfdTdUZded dfdVdWZded dfdXdYZded dfdZd[Zded dfd\d]Zded dfd^d_Zded dfd`daZded dfdbdcZded dfdddeZded dfdfdgZded dfdhdiZded dfdjdkZded dfdldmZded dfdndoZded dfdpdqZded dfdrdsZded dfdtduZded dfdvdwZded dfdxdyZeZeZded dfdzd{Zded dfd|d}Zded dfd~dZded dfddZded dfddZded dfddZded dfddZded dfddZded dfddZded dfddZded dfddZded dfddZded dfddZded dfddZded dfddZded dfddZded dfddZded dfddZded dfddZded dfddZded dfddZded dfddZded dfddZded dfddZded dfddZded dfddZded dfddZded dfddZded dfddZded dfddZded dfddZded dfddZded dfddZded dfddZded dfddZded dfddZde d e fdÐdĄZde d e fdŐdƄZded dfdǐdȄZded dfdɐdʄZded dfdːd̄Zded dfd͐d΄Zded dfdϐdЄZded dfdѐd҄Zded dfdӐdԄZ ded dfdՐdքZ ded dfdאd؄Z ded dfdِdڄZ de d dfdېd܄ZZS(rZNr#rGrQF)howtorDrUrLr$rHc sxt||g|_||_|durtjdtddd|_d|_d|_ d|_ d|_ d|_ d|_ d|_d|_d|_d|_d|_d|_d|_g}|jj|_tdd|_|jrg|jj}|jjdkrf|jdn4||jj|jd<| d d kr|j!j" d d }|dd krn|jdn|j!j" d d}||jd <d|_#|j!j$rz |j%|j!j$|_#Wnt&yt'(t)d|j!j$|fYnw|j!j*r|j!j+|_+|j+dkr t,|jt,tkr|j#dkr|j+|j#7_+n |j+|j#d7_+t-|j+t,td|_+|.d|j+n|.d|j!j*r|j!j/r|.d|j!j0dvr8d|j!j1vr8dt2dt2d|jd<|jj3|_3|j!j0rR|j34sRt'(t)d|j!j0|j5}|j6 dr|j6 dd|j#d}t,|jt,tkr||j#dkr||d7}|t,tdkrt'(t)dt,td}d||jd<t7||}|j!j*r|j!j+dkrt7||j+d}||j5krd||jd<| d}|r|8d ||jd<|jd!r|.d"|jd!|rd#d$9||jd%<|jd&rd'|jd&|jd&<|jd(r|jd)d$|jd(7<t:j;d*|j!j<|j!j=d+|_>g|_g|_?g|_@d|_Ag|_Bd|_Cg|_Dg|_EtF|_GdS),NrPrQrRrrr(r' wrapperclassdocclassrarticlejrDreportz+unknown %r toplevel_sectioning for class %rznumfigreset=%s nonumfigreset mathnumfig>Nenjafncychapz\usepackage[Sonny]{fncychap}z&\ChNameVar{\Large\normalfont\sffamily}z'\ChTitleVar{\Large\normalfont\sffamily}z%no Babel option known for language %rtocdepthiztoo large :maxdepth:, ignored.z\setcounter{tocdepth}{%d}z\setcounter{secnumdepth}{%d} secnumdepth contentsnamez \contentsname maxlistdepthzmaxlistdepth=%sz[,%s],sphinxpkgoptions sphinxsetupz\sphinxsetup{%s}extraclassoptions classoptionslatex latex_engine)HrJrKrhrLrWrXrin_titlein_production_list in_footnote in_captionin_termneeds_linetrimming in_minipageno_latex_floatsfirst_documentthis_is_the_titleliteral_whitespacein_parsed_literal compact_list first_paramrGcontextcopyelementsLATEXSECTIONNAMES sectionnamesrtoplevel_sectioningremoveformat_docclasssettingsriconfiglatex_docclasstop_sectionlevellatex_toplevel_sectioningindexrloggerwarningrnumfignumfig_secnum_depthlenminappend math_numfiglanguagelatex_elementsrbabelis_supported_languagerrUmaxbabel_renewcommandrrPygmentsBridgepygments_styler highlighter descstacktablesnext_table_colspec bodystackfootnote_restrictedpending_footnotes curfilestackset handled_abbrs) rMrUrGrLrrminsecnumdepthrrrNr.r/rKs                            zLaTeXTranslator.__init__newbodycCs|j|j||_dSrI)rrrh)rMrr.r.r/pushbodys zLaTeXTranslator.pushbodycCs|j}|j|_|SrI)rhrpop)rMrhr.r.r/popbodys zLaTeXTranslator.popbodyrcCs&tjdtdd||jvrd|}|S)z*Prepends prefix to sphinx document classesz,LaTeXWriter.format_docclass() is deprecated.rQrRsphinx)rWrXr docclasses)rMrr.r.r/rs  zLaTeXTranslator.format_docclasscCs,|jd|j|d|d|jS)NrB)rhindicesz latex.tex_t)rupdaterrhgenerate_indicesrenderrzr.r.r/r[s  zLaTeXTranslator.astextTidwithdocanchorcCs0|r |jdd|}|rdndd||S)N:\phantomsectionrB \label{%s})ridescape)rMrrr r.r.r/ hypertargetszLaTeXTranslator.hypertargetrdcs,dfdd|dD}|rd|S|S)NrBc3s|] }j|ddVqdS)Fr N)r)rnode_idrzr.r/ sz1LaTeXTranslator.hypertarget_to..idsr )r)rMrdr labelsr.rzr/hypertarget_toszLaTeXTranslator.hypertarget_tocCd||S)Nz{\hyperref[%s]{rrMrr.r.r/ hyperlinkzLaTeXTranslator.hyperlinkcCr)Nz\autopageref*{%s}rrr.r.r/ hyperpagerefrzLaTeXTranslator.hyperpagerefscCst||jjSrI)rescaperr)rMrr.r.r/rzLaTeXTranslator.escapecCs(dt|tdddddS)Nz\detokenize{%s}asciibackslashreplace\r)rr^r!encodedecodereplacerr.r.r/rszLaTeXTranslator.idescapecommand definitioncCs:|jdrd|j}d}nd}d}d||||ftS)N multilingualz\addto\captions%s{rrBz%s\renewcommand{%s}{%s}%s)rr get_languager)rMr%r&prefixsuffixr.r.r/rs z"LaTeXTranslator.babel_renewcommandcsdtttttfdtddffdd }gjj}|r]jjj D]7}|j D]1}d|j |j f}t |tr>||vr>q*||jj\}}|sLq*d|jt|||q*q%dS) Ncontent collapsedrHc sdtdtt|D]U\}\}}|dkr#dtd|t|D]5}|ds8q1d|d|drTd |dd |d |dftq1qd tdS) Nz\begin{sphinxtheindex}z*\let\bigletter\sphinxstyleindexlettergrouprz \indexspacez\bigletter{%s}z%\item\relax\sphinxstyleindexentry{%s}z\sphinxstyleindexextra{%s}z\sphinxstyleindexpageref{%s:%s}rQz\end{sphinxtheindex})rr enumeraterr"r)r+r,iletterentriesentryretrMr.r/generates*  z2LaTeXTranslator.generate_indices..generatez%s-%sz\renewcommand{\indexname}{%s}rB)rr rrrrlatex_domain_indicesrGenvdomainsvaluesrname isinstancelistr6docnamesr localnamerr)rMr6indices_configdomainindexcls indexnamer+r,r.r4r/rs&,    z LaTeXTranslator.generate_indices template_name variablescCsTt|jjd}|jjD]}t|jj||}t|r#| ||Sq | ||S)Nr) r rrtemplates_pathrrrGconfdirexistsr)rMrDrErenderer template_dirtemplater.r.r/rs    zLaTeXTranslator.rendercCs|jr|jdSdS)zGet current table.r N)rrzr.r.r/r#s zLaTeXTranslator.tablecCst|j|dd|jdkrd|_n|jdkr%|jtdtd|_d|vr2|j|d|jd|_dS)NdocnamerBrrz \appendixr z:doc) rrrirrhrrr sectionlevelrwr.r.r/visit_document+s  zLaTeXTranslator.visit_documentcCdSrIr.rwr.r.r/depart_document9zLaTeXTranslator.depart_documentcCs|j|ddS)NrL)rrrwr.r.r/visit_start_of_file<z#LaTeXTranslator.visit_start_of_filecCs|jdSrI)rrrwr.r.r/depart_start_of_file?rz$LaTeXTranslator.depart_start_of_filecCs$|js |jd7_|jtdSNr)rrMrhr BLANKLINErwr.r.r/ visit_sectionBszLaTeXTranslator.visit_sectioncCst|jd|jd|_dSrU)rrMrrwr.r.r/depart_sectionGs  zLaTeXTranslator.depart_sectioncC|jddS)Nz{\color{red}\bfseries{}rhrrwr.r.r/visit_problematicKrz!LaTeXTranslator.visit_problematiccCrYNrrZrwr.r.r/depart_problematicNrz"LaTeXTranslator.depart_problematiccCsd|_|jtdtdS)Nrz\begin{sphinxShadowBox}rrhrrrwr.r.r/ visit_topicQszLaTeXTranslator.visit_topiccCsd|_|jdtdS)Nrz\end{sphinxShadowBox}r^rwr.r.r/ depart_topicUszLaTeXTranslator.depart_topiccCrOrIr.rwr.r.r/visit_glossary[rQzLaTeXTranslator.visit_glossarycCrOrIr.rwr.r.r/depart_glossary^rQzLaTeXTranslator.depart_glossarycCs&|jt|jdtd|_dS)Nz\begin{productionlist}r)rhrrVrrrwr.r.r/visit_productionlistas  z$LaTeXTranslator.visit_productionlistcCs|jdtd|_dS)Nz\end{productionlist}r)rhrrVrrwr.r.r/depart_productionlistfs z%LaTeXTranslator.depart_productionlistcCsP|dr |d}|j|d||jd||dS|jddS)N tokennamezgrammar-token-z\production{%s}{z\productioncont{)rhrrr")rMrdtnr.r.r/visit_productionjs z LaTeXTranslator.visit_productioncC|jdtdSr\rhrrrwr.r.r/depart_productionrrSz!LaTeXTranslator.depart_productioncCs|j|jddS)N transition)rhrrrwr.r.r/visit_transitionuz LaTeXTranslator.visit_transitioncCrOrIr.rwr.r.r/depart_transitionxrQz!LaTeXTranslator.depart_transitioncCs|j}t|tjr tjt|tjr|jrCt|j dkr.t|j dtj s.t j t d|d|jds=|||jd<d|_tjd}t|tjr[d|dt|}z|jd |j|j|fWnty|jd |jd |fYnw|jd t||jnbt|tjr|jd |jd tnMt|tj r|jd |jd tn8t|tj!r|jd|jd tn#t|tj"r|#gnt j t d|d|jd|jd td|_$dS)Nrrz(document title is not a single Text nodelocationtitlerB[%s] z\%s%s{r rz\sphinxstyletopictitle{z\sphinxstylesidebartitle{{zJencountered title node not in section, topic, table, admonition or sidebarz\sphinxstyleothertitle{)%parentr<rseealsor SkipNoder(rrchildrenrrrrrrr[r=traverseimagerrsplitrhrrrMrrrrtopicsidebar Admonitionrrr)rMrdrushortr.r.r/ visit_title{sR                 zLaTeXTranslator.visit_titlecCs:d|_t|jtjr||j_dS|j|j dSNr) rr<rur rrrprhrrrrwr.r.r/ depart_titleszLaTeXTranslator.depart_titlecCs>t|jtjr|jd|jdtdS|jddS)Nz\sphinxstylesidebarsubtitle{rrB)r<rur r}rhrrrrwr.r.r/visit_subtitles zLaTeXTranslator.visit_subtitlecC|j|jdSrIrhrrrrwr.r.r/depart_subtitlermzLaTeXTranslator.depart_subtitlecCs\|jjdkr|jt|jdtn|jt|jdt|jr,d|j_dSdS)Nfootnotez&\begin{savenotes}\begin{fulllineitems}z\begin{fulllineitems}T)rlatex_show_urlsrhrrVrrrmrwr.r.r/ visit_descs    zLaTeXTranslator.visit_desccCs<|jjdkr|jtdtdS|jtdtdS)Nrz"\end{fulllineitems}\end{savenotes}z\end{fulllineitems})rrrhrrrVrwr.r.r/ depart_descs zLaTeXTranslator.depart_desccCs8|D]}t|tjr|jddSq|jddS)Nz\pysiglinewithargsret{z \pysigline{)r<rdesc_parameterlistrhr)rMrdchildr.r.r/_visit_signature_lines   z%LaTeXTranslator._visit_signature_linecCrYr\rZrwr.r.r/_depart_signature_linerz&LaTeXTranslator._depart_signature_linecCsv|jddkr|dr||dd}nd}|j||ds)||dS|jdt|jdtdS) NobjtypedescriberrrB is_multilinerz\pysigstartmultiline)rurrhrrirr)rMrdhyperr.r.r/visit_desc_signatures  z$LaTeXTranslator.visit_desc_signaturecCs8|ds ||dS|jdt|jddS)Nrrz\pysigstopmultiline)rirrhrrrwr.r.r/depart_desc_signatures z%LaTeXTranslator.depart_desc_signaturecC||dSrI)rrwr.r.r/visit_desc_signature_linerz)LaTeXTranslator.visit_desc_signature_linecCrrI)rrwr.r.r/depart_desc_signature_linerz*LaTeXTranslator.depart_desc_signature_linecCs0|jrt|jdtjs|jddSdSdS)Nr~)rxr<r r+rhrrwr.r.r/visit_desc_contentsz"LaTeXTranslator.visit_desc_contentcCrOrIr.rwr.r.r/depart_desc_contentrQz#LaTeXTranslator.depart_desc_contentcCrY)N\sphinxcode{\sphinxupquote{rZrwr.r.r/visit_desc_inlinerz!LaTeXTranslator.visit_desc_inlinecCrYN}}rZrwr.r.r/depart_desc_inlinerz"LaTeXTranslator.depart_desc_inlinecC|jd|jd7_dS)N\sphinxbfcode{\sphinxupquote{rrhrrrwr.r.r/visit_desc_name zLaTeXTranslator.visit_desc_namecC|jd|jd8_dSNrrrrwr.r.r/depart_desc_name rz LaTeXTranslator.depart_desc_namecCr)Nrrrrwr.r.r/visit_desc_addnamerz"LaTeXTranslator.visit_desc_addnamecCrrrrwr.r.r/depart_desc_addnamerz#LaTeXTranslator.depart_desc_addnamecCrOrIr.rwr.r.r/visit_desc_typerQzLaTeXTranslator.visit_desc_typecCrOrIr.rwr.r.r/depart_desc_typerQz LaTeXTranslator.depart_desc_typecCrY)Nz{ $\rightarrow$ rZrwr.r.r/visit_desc_returnsrz"LaTeXTranslator.visit_desc_returnscCrYr\rZrwr.r.r/depart_desc_returns!rz#LaTeXTranslator.depart_desc_returnscCs|jdd|_dS)N}{r)rhrrrwr.r.r/visit_desc_parameterlist$s  z(LaTeXTranslator.visit_desc_parameterlistcCrY)NrrZrwr.r.r/depart_desc_parameterlist)sz)LaTeXTranslator.depart_desc_parameterlistcCs8|js |jdnd|_|ds|jddSdS)N, rnoemph\emph{)rrhrhasattrrwr.r.r/visit_desc_parameter-s  z$LaTeXTranslator.visit_desc_parametercCs|ds |jddSdS)Nrr)rrhrrwr.r.r/depart_desc_parameter5s z%LaTeXTranslator.depart_desc_parametercCrY)Nz\sphinxoptional{rZrwr.r.r/visit_desc_optional9rz#LaTeXTranslator.visit_desc_optionalcCrYr\rZrwr.r.r/depart_desc_optional<rz$LaTeXTranslator.depart_desc_optionalcCrY)NrrZrwr.r.r/visit_desc_annotation?rz%LaTeXTranslator.visit_desc_annotationcCrYrrZrwr.r.r/depart_desc_annotationBrz&LaTeXTranslator.depart_desc_annotationcCs8|jt|jdtdt|jdtdS)Nz\sphinxstrong{%s:}rvz \nopagebreak)rhrrVrrrwr.r.r/ visit_seealsoGs zLaTeXTranslator.visit_seealsocC|jtdSrI)rhrrVrwr.r.r/depart_seealsoLrzLaTeXTranslator.depart_seealsocCsLt|dkr|dtdfvrtj|jd|jdtd|_ dS)Nr Footnotesz\subsubsection*{r) rr[rr rwrhrrrrrwr.r.r/ visit_rubricOs   zLaTeXTranslator.visit_rubriccCsd|_|j|jdSr)rrhrrrrwr.r.r/ depart_rubricVszLaTeXTranslator.depart_rubriccCs|jd7_ttj|d}d|vr|jd|jr'|jd|n|jdt|jd|d|vrI|jd|t|jdtdS) Nrrautoz\sphinxstepexplicit z\begin{footnote}[%s]rz+\phantomsection\label{\thesphinxscope.%s}%%\sphinxAtStartFootnote) rr r labelrhrrr[rrMrdrr.r.r/visit_footnoteZs zLaTeXTranslator.visit_footnotecCsB|jr |jdn|jdt|jd|jd8_dS)Nz\end{footnote}rr)rrhrrrrwr.r.r/depart_footnoteis  zLaTeXTranslator.depart_footnotecCtjrIr rwrwr.r.r/ visit_labelqzLaTeXTranslator.visit_labelcCs|d|_tj)Nspec)rr rwrwr.r.r/visit_tabular_col_spects z&LaTeXTranslator.visit_tabular_col_speccCst|jdkr!|jdkrtd|jd|jpdfd|j_nt|jdkr6td|jd|jp2df|jt ||j r[d |j t |j_ d | d gvr[tjtd |d d|_ dS)Nrryz2%s:%s: longtable does not support nesting a table.r rBTrQz0%s:%s: deeply nested tables are not implemented.z{%s}r~rfzGboth tabularcolumns and :widths: option are given. :widths: is ignored.ro)rrrrr>rlinermrrcrrrkririnforrwr.r.r/ visit_tablexs,   zLaTeXTranslator.visit_tablecCs`||}|j}||dt|j|d}|jt|j||jt|j dS)Nz.tex_t)rr) rrrrdictrhrrVrrr)rMrdr table_typerr.r.r/ depart_tables       zLaTeXTranslator.depart_tablecCsP|jjd7_d|vr|jj|dd|vr&|jj|jjddSdS)Nrcolwidthstub)rrjrlrrqrwr.r.r/ visit_colspecs zLaTeXTranslator.visit_colspeccCrOrIr.rwr.r.r/depart_colspecrQzLaTeXTranslator.depart_colspeccCrOrIr.rwr.r.r/ visit_tgrouprQzLaTeXTranslator.visit_tgroupcCrOrIr.rwr.r.r/ depart_tgrouprQzLaTeXTranslator.depart_tgroupcC||jjdSrI)rrrgrwr.r.r/ visit_theadzLaTeXTranslator.visit_theadcC |dSrIrrwr.r.r/ depart_thead zLaTeXTranslator.depart_theadcCrrI)rrrhrwr.r.r/ visit_tbodyrzLaTeXTranslator.visit_tbodycCrrIrrwr.r.r/ depart_tbodyrzLaTeXTranslator.depart_tbodycCsd|j_ |j|jj|jj}|durdS|jj|j7_|jr(|jd|jdkr7|jd|jn |jd|j|jfq)NrT&r\sphinxtablestrut{%d}z,\multicolumn{%d}{|l|}{\sphinxtablestrut{%d}})rrrrrsrrhrrv)rMrdrr.r.r/ visit_rows   zLaTeXTranslator.visit_rowcsjdtfddtjjD}fdd|D}t|r)jdn9d}|dg|t|krb||durX||d d}jd |d ||f||7}|d 7}|t|ks7jj d 7_ dS) Nz\\csg|] }jjj|qSr.)rrrs)rr0rzr.r/rsz.LaTeXTranslator.depart_row..cs$g|]}|j|jjjdkqS)r)rsrr)rrrzr.r/rs$z\hlinerFTz \cline{%d-%d}r) rhrrrrrjallextendrrrs)rMrdru underlinedr0rr.rzr/ depart_rows    zLaTeXTranslator.depart_rowcCs|jjdkr |jd|j|ddd|ddd|j}d}|jdkr`|jj rQ|jjdkrA|jd|jt n |jd|jt d t }n|jd |jt d t }|j dkry|jd |j |j ft d t |}|jdks|j dkr|jd |j|jj ft dt dt |}d|_tt|tjdkrd|j_t|jjtjs|j|jjvrt|dkrt|dtjr|dkrn|jd|jr|g|j|dS)NrrmorerowsrmorecolsrBz\multicolumn{%d}{|l|}{%%z\multicolumn{%d}{l|}{%%z}%z\sphinxstartmulticolumn{%d}%%z\sphinxstopmulticolumnz\sphinxmultirow{%d}{%d}{%%z,\begin{varwidth}[t]{\sphinxcolwidth{%d}{%d}}z\parz7\vskip-\baselineskip\vbox{\hbox{\strut}}\end{varwidth}%rQTz\sphinxstyletheadfamily )rrrrhrrrirrrlatex_use_latex_multicolumnrrrvrjrrr=ryr r+rnr<rutheadrqr[rr)rMrdrrr.r.r/ visit_entrysJ  &        (  zLaTeXTranslator.visit_entrycCs|jr%d|_|}|r|dtkr|d|r|dtks|j||j|j|j }|jj |j 7_ |j }|durHdS|jj |j 7_ |jd|j dkrf|jd|j n |jd|j |j fq=)NrTrrrz+\multicolumn{%d}{l|}{\sphinxtablestrut{%d}}) rrrrrhrrrrrrrrrv)rMrdrhrnextcellr.r.r/ depart_entrys,       zLaTeXTranslator.depart_entrycCs^ttj|d}tttj|}|jt|jddd|Dd|jttj )Nrrcs|]}|VqdSrIr[)rnr.r.r/r'z-LaTeXTranslator.visit_acks...) r r bullet_listr list_itemrhrrVrrw)rMrdr list_itemsr.r.r/ visit_acks!s    zLaTeXTranslator.visit_ackscCs,|js |jdt|jrd|j_dSdS)Nz\begin{itemize}Trrhrrrrmrwr.r.r/visit_bullet_list+s  z!LaTeXTranslator.visit_bullet_listcCs|js |jdtdSdS)Nz \end{itemize}rrhrrrwr.r.r/depart_bullet_list1sz"LaTeXTranslator.depart_bullet_listcsdtdtfdd}dtdtffdd dt|}dt|d}t||}|d d }|d d }|jd t |jd|||||ft d|vrh|jd||ddft |j rqd|j _ dSdS)NrdrHcSs4|dd}d|vrd|ddt|krd}|S)Nenumtyper1alphastartr)rir)rdrr.r.r/ get_enumtype6s  z;LaTeXTranslator.visit_enumerated_list..get_enumtypecs0|durdSt|tjr|jdS|jSr)r<r enumerated_listru)rdget_nested_levelr.r/r>s   z?LaTeXTranslator.visit_enumerated_list..get_nested_levelzenum%srr)rBr*rz\begin{enumerate}z*\sphinxsetlistlabels{%s}{%s}{%s}{%s}{%s}%%rz\setcounter{%s}{%d}T) rrrtr"lowerENUMERATE_LIST_STYLErirhrrrrm)rMrdrenumenumnextstyler)r*r.rr/visit_enumerated_list5s$     z%LaTeXTranslator.visit_enumerated_listcCrh)Nz\end{enumerate}rirwr.r.r/depart_enumerated_listTrSz&LaTeXTranslator.depart_enumerated_listcCrY)Nz \item {} rZrwr.r.r/visit_list_itemWszLaTeXTranslator.visit_list_itemcCrrIrirwr.r.r/depart_list_item\rz LaTeXTranslator.depart_list_itemcC&|jdt|jrd|j_dSdS)Nz\begin{description}Trhrrrrmrwr.r.r/visit_definition_list_ z%LaTeXTranslator.visit_definition_listcCrh)Nz\end{description}rirwr.r.r/depart_definition_listdrSz&LaTeXTranslator.depart_definition_listcCrOrIr.rwr.r.r/visit_definition_list_itemgrQz*LaTeXTranslator.visit_definition_list_itemcCrOrIr.rwr.r.r/depart_definition_list_itemjrQz+LaTeXTranslator.depart_definition_list_itemcCsd|jd7_d}|dr d}|dD] }||j|dd7}q|d7}|jd|j|dS) NrrBrr Frz}] \leavevmodez\item[{)rrirrhrr)rMrdctxrr.r.r/ visit_termms   zLaTeXTranslator.visit_termcCs$|j|j|jd8_dSrU)rhrrrrrwr.r.r/ depart_termxszLaTeXTranslator.depart_termcCrY)Nz{[}rZrwr.r.r/visit_classifier|rz LaTeXTranslator.visit_classifiercCrY)Nz{]}rZrwr.r.r/depart_classifierrz!LaTeXTranslator.depart_classifiercCrOrIr.rwr.r.r/visit_definitionrQz LaTeXTranslator.visit_definitioncCrrIrirwr.r.r/depart_definitionrz!LaTeXTranslator.depart_definitioncCr)Nz \begin{quote}\begin{description}Trrwr.r.r/visit_field_listrz LaTeXTranslator.visit_field_listcCrh)Nz\end{description}\end{quote}rirwr.r.r/depart_field_listrSz!LaTeXTranslator.depart_field_listcCrOrIr.rwr.r.r/ visit_fieldrQzLaTeXTranslator.visit_fieldcCrOrIr.rwr.r.r/ depart_fieldrQzLaTeXTranslator.depart_fieldcCs|j|}|dkr1t|jtjr1t|j|dtjs1t|j|dtjs1|jdtdS|dkr@t|jtj t fr@dS|j tdtgdS)Nrr \noindentz\sphinxAtStartPar) rurr<r compoundr+rhrrr footnotetextr)rMrdrr.r.r/visit_paragraphs zLaTeXTranslator.visit_paragraphcCrrIrirwr.r.r/depart_paragraphrz LaTeXTranslator.depart_paragraphcCs&|jtd|jrd|j_dSdS)N\begin{center}Trrwr.r.r/visit_centeredrzLaTeXTranslator.visit_centeredcC|jtddS)N \end{center}rirwr.r.r/depart_centeredrSzLaTeXTranslator.depart_centeredcCsn|jd7_|d}|jdkr|jdt|jd|dt|jdt|jr5d|j_dSdS)Nrncolumnsz\setlength{\multicolsep}{0pt}z\begin{multicols}{z }\raggedrightzA\begin{itemize}\setlength{\itemsep}{0pt}\setlength{\parskip}{0pt}Tr)rMrdr*r.r.r/ visit_hlists  zLaTeXTranslator.visit_hlistcCs"|jd8_|jdtdS)Nrz*\end{itemize}\raggedcolumns\end{multicols}rrwr.r.r/ depart_hlistszLaTeXTranslator.depart_hlistcCrOrIr.rwr.r.r/visit_hlistcolrQzLaTeXTranslator.visit_hlistcolcCrOrIr.rwr.r.r/depart_hlistcolszLaTeXTranslator.depart_hlistcolrrrcCs2zt||WStyttd|YdSw)Nz&dimension unit %s is invalid. Ignored.)rrrrr)rMrrr.r.r/latex_image_lengths   z"LaTeXTranslator.latex_image_lengthcCst|jtjS)z2Check whether a node represents an inline element.)r<rur TextElementrwr.r.r/ is_inlinerzLaTeXTranslator.is_inlinecCsRg}g}g}t|jtj}|r||j}n||}d|vr>d|vr.||d|d}n||d}|r>|d|d|vrad|vrQ||d|d}n||d}|ra|d|d|vrt|st|dt|ddd|vrd d d d d dd} z|| ||dfd|| ||dfdWn tyYnw|j r|d|d|s|s|t d|t | |d|j j vr|j j |d} n |jrdS|d} | ddkrdS|j|d} |rdd|} t| \} } |jr| r|jd| | | fn |jd| | | f|j|dS)Nrrzwidth=%srz height=%szscale=%srre)rBrB)z\raisebox{-0.5\height}{r)z\raisebox{-\height}{r){\hspace*{\fill}\hspace*{\fill}})rtr3)r2r))rtop)rmiddle)rbottom)rcenter)rleft)rrightrrz!{\sphinxunactivateextrasandspace rr uriz://r rBrrrz,\lowercase{\sphinxincludegraphics%s}{{%s}%s}z \sphinxincludegraphics%s{{%s}%s})r<rur referencer1r/rrKeyErrorrrreverserGimagesignore_missing_imagesfindrhrrrsplitextr)rMrdprepostinclude_graphics_options has_hyperlinkr1wh align_prepostr:optionsbaseextr.r.r/ visit_images       zLaTeXTranslator.visit_imagecCrOrIr.rwr.r.r/ depart_image,rQzLaTeXTranslator.depart_imagecCs|jd}|jr d}|jrVd|vr-||d}|r,|jd|t|jdtn|jdt|jdttdd|DrL|jd |jd tdS| d d d vrd}d|vrl||d}nt |dt j rd|dvr||dd}|jt |jd|d dkrdnd|pdft|jd|jdtdS|jr|jtd|jdtdS|jtd|t|jdttdd|Dr|jd t|jdtdS)N figure_alignHrz!\begin{sphinxfigure-in-table}[%s]z \centeringz\begin{sphinxfigure-in-table}cs|] }t|tjVqdSrIr<r rprrr.r.r/r=z/LaTeXTranslator.visit_figure..z \capstartz!\end{sphinxfigure-in-table}\relaxrerB)r8r9rz\begin{wrapfigure}{%s}{%s}r9rl0ptz\end{wrapfigure}r%r(z\begin{figure}[%s]csrPrIrQrRr.r.r/rRrSz \end{figure})rrrr/rhrranyrrir<r rzrVr)rMrdrelengthr.r.r/ visit_figure/sJ    zLaTeXTranslator.visit_figurecCrrIrrwr.r.r/ depart_figureVrmzLaTeXTranslator.depart_figurecCs|jd7_t|jtr|jddS|jr't|jtjr'|jddS|j r8|jj dkr8|jddS|jddS)Nrz\sphinxSetupCaptionForVerbatim{z\captionof{figure}{figurez\sphinxfigcaption{z \caption{) rr<rucaptioned_literal_blockrhrrr r[rtagnamerwr.r.r/ visit_captionYs zLaTeXTranslator.visit_captioncCsD|jdt|jtjr||j}|j||jd8_dS)Nrr)rhrr<rur r[rr)rMrdrr.r.r/depart_captionds   zLaTeXTranslator.depart_captioncCr')Nz\begin{sphinxlegend}rirwr.r.r/ visit_legendkrSzLaTeXTranslator.visit_legendcCrh)Nz\end{sphinxlegend}rirwr.r.r/ depart_legendnrSzLaTeXTranslator.depart_legendcCs"|jtd|jd7_dS)Nz\begin{sphinxadmonition}{note}rrhrrrrwr.r.r/visit_admonitionqz LaTeXTranslator.visit_admonitioncC"|jdt|jd8_dSNz\end{sphinxadmonition}rrbrwr.r.r/depart_admonitionurdz!LaTeXTranslator.depart_admonitioncCs6t|j}|jtd|j|f|jd7_dS)Nz!\begin{sphinxadmonition}{%s}{%s:}r)rr]rhrrrrr.r.r/_visit_named_admonitionys  z'LaTeXTranslator._visit_named_admonitioncCrerfrbrwr.r.r/_depart_named_admonitionrdz(LaTeXTranslator._depart_named_admonitioncCrOrIr.rwr.r.r/visit_versionmodifiedrQz%LaTeXTranslator.visit_versionmodifiedcCrOrIr.rwr.r.r/depart_versionmodifiedrQz&LaTeXTranslator.depart_versionmodifiedcsdtddffdd }}t|tjr |jdd}t|tjsttjj d}t|t r1dS| |r=| |r=dSdvrCdSd vrIdS d rgt}t|tjrad |d kran|d d D]}||qkdS) NrrHcst|drdS|drdSj}|dkr)tj|dtjr)jtj }jj ||ddS)Nzindex-z equation-rrr) startswithrurr<r r+rhrrrr)rrr rdrMr.r/ add_targets    z0LaTeXTranslator.visit_target..add_targetT)ascendstdrefuri anonymousrefidr)rr<r target next_noder rrGr8 get_domainHYPERLINK_SUPPORT_NODESget_enumerable_node_typeget_numfig_titlerirr;)rMrdrnrurA prev_noderr.rmr/ visit_targets,        zLaTeXTranslator.visit_targetcCrOrIr.rwr.r.r/ depart_targetrQzLaTeXTranslator.depart_targetcCs$|jtdt|jddS)Nz\begin{flushright}z---rirwr.r.r/visit_attributionsz!LaTeXTranslator.visit_attributioncCs|jtdtdS)Nz\end{flushright}rirwr.r.r/depart_attributionsz"LaTeXTranslator.depart_attributioncsdtdtffdd dtdtfdd}|dd s jt|d }|D]7\}}}}}d } |r4d } z|d krz'fddtdd |D\} } || || } } jd| | | | | fWntytdd |d}||}jd||| fYnw|dkrfddtdd|D\} } || || } } jd| | | | | | | | | | f n|dkrfddtdd|D\} } }|| || ||} } }jd| | | || || | | || || | ||| | | | | fnP|dkrfddtdd|D\} } || } jd| | | fn,|dkr;fd dtdd|D\} } || } jd| | | fntt d!|Wq&ty^}z tt|WYd}~q&d}~ww|dd sljd"t j )#NvaluerHcsV|}|dd}|dd}|dd}|dd}|d d }|d d }|S) Nz\{z\sphinxleftcurlybrace{}z\}z\sphinxrightcurlybrace{}"z""@z"@!z"!rz \textbar{}r"r$)rrzr.r/rs       z+LaTeXTranslator.visit_index..escapestringcSs t|}|r |dSd|S)Nz\\spxentry{\1}\\spxextra{\2}z \spxentry{%s})EXTRA_RErexpand)rrr.r.r/r s  z*LaTeXTranslator.visit_index..styleinlineTr2rBz |spxpagemsinglecg|]}|qSr.r.rxrr.r/rz/LaTeXTranslator.visit_index..rQz\index{%s@%s!%s@%s%s}rrz\index{%s@%s%s}paircrr.r.rrr.r/rrz*\index{%s@%s!%s@%s%s}\index{%s@%s!%s@%s%s}triplecrr.r.rrr.r/rrr-zS\index{%s@%s!%s %s@%s %s%s}\index{%s@%s!%s, %s@%s, %s%s}\index{%s@%s!%s %s@%s %s%s}seecrr.r.rrr.r/rrz\index{%s@%s|see{%s}}rvcrr.r.rrr.r/r rz!unknown index entry type %s foundz\ignorespaces ) rrirhrrrrrrrr rw)rMrdr r2typertidismainkey_mp1p2P1P2pPp3P3errr.)rrMr/ visit_indexsl       zLaTeXTranslator.visit_indexcCsV||s |jtd|ddvr|j|||s(|jttj)NrformatrB) r1rhrrrir{r[r rwrwr.r.r/ visit_raws    zLaTeXTranslator.visit_rawcCsz|js|dD]}|j }|j|j||d7_q||s&|jt|dd}|s@|dr@d|jdd|d}|jsE|sM|j ddS| dr|jdd |d d}|j| ||jd |j j r|js|j d ||dS|j d dS| dr|d}|dkr|d dd}n |d ddd }|j| |t|rt|dtjrd|ddgvr|j d |jddS|jd|j j r|js|j d ||dS|j d dSt|d kr*||dkr*|dr|jd||tj|jd||tj|jd|||j ddS)NrrrqrBrsrr #r rrz}}} (%s)z}}}z::docrzstd-termrfz\sphinxtermref{z\sphinxcrossref{ nolinkurlz\sphinxnolinkurl{%s}z\sphinxurl{%s}z\sphinxhref{%s}{r)rrirrhrr1rrrrrlrrlatex_show_pagerefsrrr@r$rr<r r encode_urirw)rMrdrr r: hashindexr.r.r/visit_referencesX           zLaTeXTranslator.visit_referencecCs0|j|j||s|jtdSdSrI)rhrrrr1rrwr.r.r/depart_referenceWs z LaTeXTranslator.depart_referencecCs|dr|jdd|d}n|dddddd}||dd d d }d |vs4d |vrR|d d d d}t|jd||d||d}n t|d||}d|||f}|j|t j )Nrsr r rqrBrrrqz%sz\%sz\{name\}z \{number\}z{name}z{number}z \nameref{%s}\ref{%s})r;numberz\hyperref[%s]{%s}) rirr$rrrrrhrr rw)rMrdrrqrhyperrefr.r.r/visit_number_reference\s   z&LaTeXTranslator.visit_number_referencecCrOrIr.rwr.r.r/visit_download_referenceprQz(LaTeXTranslator.visit_download_referencecCrOrIr.rwr.r.r/depart_download_referencesrQz)LaTeXTranslator.depart_download_referencecCrOrIr.rwr.r.r/visit_pending_xrefvrQz"LaTeXTranslator.visit_pending_xrefcCrOrIr.rwr.r.r/depart_pending_xrefyrQz#LaTeXTranslator.depart_pending_xrefcCrY)Nz\sphinxstyleemphasis{rZrwr.r.r/visit_emphasis|rzLaTeXTranslator.visit_emphasiscCrYr\rZrwr.r.r/depart_emphasisrzLaTeXTranslator.depart_emphasiscCrY)Nz+\sphinxstyleliteralemphasis{\sphinxupquote{rZrwr.r.r/visit_literal_emphasisrz&LaTeXTranslator.visit_literal_emphasiscCrYrrZrwr.r.r/depart_literal_emphasisrz'LaTeXTranslator.depart_literal_emphasiscCrY)Nz\sphinxstylestrong{rZrwr.r.r/ visit_strongrzLaTeXTranslator.visit_strongcCrYr\rZrwr.r.r/ depart_strongrzLaTeXTranslator.depart_strongcCrY)Nz)\sphinxstyleliteralstrong{\sphinxupquote{rZrwr.r.r/visit_literal_strongrz$LaTeXTranslator.visit_literal_strongcCrYrrZrwr.r.r/depart_literal_strongrz%LaTeXTranslator.depart_literal_strongcCsb|}|jd|dr)||jvr)|jd||d|j|dS|jddS)Nz\sphinxstyleabbreviation{ explanationz} (%s)r)r[rhrrrrr"add)rMrdabbrr.r.r/visit_abbreviations  z"LaTeXTranslator.visit_abbreviationcCrrIrrwr.r.r/depart_abbreviationrmz#LaTeXTranslator.depart_abbreviationcC ||SrI)rrwr.r.r/ visit_manpage zLaTeXTranslator.visit_manpagecCrrI)rrwr.r.r/depart_manpagerzLaTeXTranslator.depart_manpagecCrY)Nz\sphinxtitleref{rZrwr.r.r/visit_title_referencerz%LaTeXTranslator.visit_title_referencecCrYr\rZrwr.r.r/depart_title_referencerz&LaTeXTranslator.depart_title_referencecCsntttj|}dd|D}tdd|Dtd}t|tkr&|dt}|jt d| |t dS)Ncss |] }ttj|dVqdS)rN)r r r)rcitationr.r.r/rsz8LaTeXTranslator.visit_thebibliography..csrrIr)rrr.r.r/rr)keyz!\begin{sphinxthebibliography}{%s}) r rr rrrMAX_CITATION_LABEL_LENGTHrhrrr")rMrd citationsr longest_labelr.r.r/visit_thebibliographys    z%LaTeXTranslator.visit_thebibliographycCrh)Nz\end{sphinxthebibliography}rirwr.r.r/depart_thebibliographyrSz&LaTeXTranslator.depart_thebibliographycCs@ttj|d}|jd|||d|ddfdS)Nrz\bibitem[%s]{%s:%s}rLr)r r rrhrr"r[rr.r.r/visit_citations zLaTeXTranslator.visit_citationcCrOrIr.rwr.r.r/depart_citationrQzLaTeXTranslator.depart_citationcCs,|jrdS|jd|d|dftj)Nz\sphinxcite{%s:%s}rLrefname)rrhrr rwrwr.r.r/visit_citation_referencesz(LaTeXTranslator.visit_citation_referencecCrOrIr.rwr.r.r/depart_citation_referencerQz)LaTeXTranslator.depart_citation_referencecCsB|jr |jddSd|dvr|jddS|jddS)Nz*\sphinxstyleliteralintitle{\sphinxupquote{kbdrfz\sphinxkeyboard{\sphinxupquote{r)rrhrrwr.r.r/ visit_literals  zLaTeXTranslator.visit_literalcCrYrrZrwr.r.r/depart_literalrzLaTeXTranslator.depart_literalcCrrIrrwr.r.r/visit_footnote_referencerz(LaTeXTranslator.visit_footnote_referencecCrY)Nz\sphinxfootnotemark[rZrwr.r.r/visit_footnotemarkrz"LaTeXTranslator.visit_footnotemarkcCrY)N]rZrwr.r.r/depart_footnotemarkrz#LaTeXTranslator.depart_footnotemarkcCsTttj|d}|jdt|jd||ft|jdtdS)NrrzC\begin{footnotetext}[%s]\phantomsection\label{\thesphinxscope.%s}%%r)r r rrhrrr[rr.r.r/visit_footnotetextsz"LaTeXTranslator.visit_footnotetextcCs |jdt|jddS)Nrz \end{footnotetext}\ignorespaces rirwr.r.r/depart_footnotetextsz#LaTeXTranslator.depart_footnotetextcCrOrIr.rwr.r.r/visit_captioned_literal_blockrQz-LaTeXTranslator.visit_captioned_literal_blockcCrOrIr.rwr.r.r/depart_captioned_literal_blockrQz.LaTeXTranslator.depart_captioned_literal_blockc Cs|j|kr|jd7_|jdtdS||}t|jt r+|||j7}|r<|j s<|jtd|d| dd}| dd}| d i}| d d|d <|j j |i}|jj|j|f|||d |}|j r|jtd |d d}n|jrd|j_d|j_|d d}n|d d}|dd}|jr|j s|d7}n|d7}t| dgdd}|r|jtd||jt|t|r|jdttj)Nrz\begin{sphinxalltt}z\def\sphinxLiteralBlockLabel{rrrClinenosFhighlight_argsforce)optsrrpz\sphinxSetupCodeBlockInFootnotez\begin{Verbatim}z\begin{sphinxVerbatim}Tz\begin{sphinxVerbatimintable}iz\end{sphinxVerbatimintable}z\end{sphinxVerbatim}hl_linesr z\fvset{hllines={, %s,}}%%z\sphinxresetverbatimhllines) rawsourcer[rrhrrrr<rur\rrirhighlight_optionsrhighlight_blockr$rrmrorstriprr rw) rMrdrlangrrrhlcodehllinesr.r.r/visit_literal_blocks\        z#LaTeXTranslator.visit_literal_blockcCs&|jtdt|jd8_dS)Nz\end{sphinxalltt}r)rhrrrrwr.r.r/depart_literal_block'sz$LaTeXTranslator.depart_literal_blockcCrY)Nz\item[] rZrwr.r.r/ visit_line-rzLaTeXTranslator.visit_linecCrrIrirwr.r.r/ depart_line0rzLaTeXTranslator.depart_linecCsZt|jtjr|jdt|jdtn |jtdt|jr+d|j_dSdS)Nz\item[]z'\begin{DUlineblock}{\DUlineblockindent}z\begin{DUlineblock}{0em}T) r<rur line_blockrhrrrrmrwr.r.r/visit_line_block3s z LaTeXTranslator.visit_line_blockcCrh)Nz\end{DUlineblock}rirwr.r.r/depart_line_block<rSz!LaTeXTranslator.depart_line_blockcCsfd}t|jdkr|jd}t|tjst|tjrd}|s/|jdt|j r1d|j _ dSdSdS)Nrrz \begin{quote}T) rrxr<r rrrhrrrrmrMrddonerr.r.r/visit_block_quote?s    z!LaTeXTranslator.visit_block_quotecCsTd}t|jdkr|jd}t|tjst|tjrd}|s(|jdtdSdS)Nrrz \end{quote}) rrxr<r rrrhrrrr.r.r/depart_block_quoteNs   z"LaTeXTranslator.depart_block_quotecCs|jdr |jddSdS)Nr r)rrhrrwr.r.r/ visit_optionZs zLaTeXTranslator.visit_optioncCs|jdd7<dS)Nr r)rrwr.r.r/ depart_option_szLaTeXTranslator.depart_optioncCs|j|dddS)z1The delimiter between an option and its argument. delimiterrsN)rhrrirwr.r.r/visit_option_argumentcsz%LaTeXTranslator.visit_option_argumentcCrOrIr.rwr.r.r/depart_option_argumentgrQz&LaTeXTranslator.depart_option_argumentcCs|jd|jddS)Nz\item [r)rhrrrwr.r.r/visit_option_groupjs z"LaTeXTranslator.visit_option_groupcCs|j|jddS)Nz] )rrrhrrwr.r.r/depart_option_groupos z#LaTeXTranslator.depart_option_groupcCr)Nz\begin{optionlist}{3cm}Trrwr.r.r/visit_option_listsrz!LaTeXTranslator.visit_option_listcCrh)Nz\end{optionlist}rirwr.r.r/depart_option_listxrSz"LaTeXTranslator.depart_option_listcCrOrIr.rwr.r.r/visit_option_list_item{rQz&LaTeXTranslator.visit_option_list_itemcCrOrIr.rwr.r.r/depart_option_list_item~rQz'LaTeXTranslator.depart_option_list_itemcCs |}|j||tjrI)r[rhrr"r rw)rMrdostringr.r.r/visit_option_stringsz#LaTeXTranslator.visit_option_stringcCrY)NrsrZrwr.r.r/visit_descriptionrz!LaTeXTranslator.visit_descriptioncCrOrIr.rwr.r.r/depart_descriptionrQz"LaTeXTranslator.depart_descriptioncCrY)Nz $^{\text{rZrwr.r.r/visit_superscriptrz!LaTeXTranslator.visit_superscriptcCrYNz}}$rZrwr.r.r/depart_superscriptrz"LaTeXTranslator.depart_superscriptcCrY)Nz $_{\text{rZrwr.r.r/visit_subscriptrzLaTeXTranslator.visit_subscriptcCrYrrZrwr.r.r/depart_subscriptrz LaTeXTranslator.depart_subscriptcCs|dg}|dgfvr|jd|jddS|dgfvr.|jd|jddS|dgfvrB|jd|jddS|rZ|jsZ|jd d ||jddS|jd dS) Nrf menuselectionz\sphinxmenuselection{rguilabelz\sphinxguilabel{ acceleratorz\sphinxaccelerator{z \DUrole{%s}{rrB)rirhrrrr)rMrdrfr.r.r/ visit_inlines        zLaTeXTranslator.visit_inlinecCrrIrrwr.r.r/ depart_inlinermzLaTeXTranslator.depart_inlinecCrOrIr.rwr.r.r/visit_generatedrQzLaTeXTranslator.visit_generatedcCrOrIr.rwr.r.r/depart_generatedrQz LaTeXTranslator.depart_generatedcCrOrIr.rwr.r.r/visit_compoundrQzLaTeXTranslator.visit_compoundcCrOrIr.rwr.r.r/depart_compoundrQzLaTeXTranslator.depart_compoundcCs*|dg}|D] }|jd|qdS)Nrfz \begin{sphinxuseclass}{%s}rirhrrMrdrfcr.r.r/visit_containers zLaTeXTranslator.visit_containercCs&|dg}|D]}|jdqdS)Nrfz \end{sphinxuseclass}rrr.r.r/depart_containers z LaTeXTranslator.depart_containercCrOrIr.rwr.r.r/visit_decorationrQz LaTeXTranslator.visit_decorationcCrOrIr.rwr.r.r/depart_decorationrQz!LaTeXTranslator.depart_decorationcCrrIrrwr.r.r/ visit_headerrzLaTeXTranslator.visit_headercCrrIrrwr.r.r/ visit_footerrzLaTeXTranslator.visit_footercCrrIrrwr.r.r/ visit_docinforzLaTeXTranslator.visit_docinforcCs,||}|jr|tdtdd}|S)Nz~\\rsr)rrr$rrMrr.r.r/r"s zLaTeXTranslator.encodecCs"||ddddddS)Nz\textasciitilde{}rz\sphinxhyphen{}-z\textquotesingle{}'rrr.r.r/rszLaTeXTranslator.encode_uricCs||}|j|dSrI)r"r[rhr)rMrdrr.r.r/ visit_TextszLaTeXTranslator.visit_TextcCrOrIr.rwr.r.r/ depart_TextrQzLaTeXTranslator.depart_TextcCrrIrrwr.r.r/ visit_commentrzLaTeXTranslator.visit_commentcCrrIrrwr.r.r/ visit_metaszLaTeXTranslator.visit_metacCrOrIr.rwr.r.r/visit_system_messagerQz$LaTeXTranslator.visit_system_messagecCrrIrirwr.r.r/depart_system_messagerz%LaTeXTranslator.depart_system_messagecCs:|jr|jd|tj|jd|tj)Nz\protect\(%s\protect\)z\(%s\))rrhrr[r rwrwr.r.r/ visit_maths zLaTeXTranslator.visit_mathcCs|drd|d|df}nd}|dr,|r!|jd||j|tj ddlm}|j||||jjtj )Nrequation:%s:%srLnowrapr r)wrap_displaymath) rirhrr[sphinx.util.mathr%rmath_number_allr rw)rMrdrr%r.r.r/visit_math_blocks   z LaTeXTranslator.visit_math_blockc Csd|d|df}|jj}|rGzd|}|j|j|dWdStyF}ztjtd||d|jd|WYd}~dSd}~ww|jd|dS) Nr#rLrtr)rzInvalid math_eqref_format: %rroz \eqref{%s}) rmath_eqref_formatrhrrr<rrr)rMrdr eqref_formatrefexcr.r.r/visit_math_references z$LaTeXTranslator.visit_math_referencecCrOrIr.rwr.r.r/depart_math_referencerQz%LaTeXTranslator.depart_math_referencecCstd|jj)NzUnknown node: )NotImplementedErrorrOr9rwr.r.r/ unknown_visit"rzLaTeXTranslator.unknown_visitrI)TT)Fr(r9r:r;rGrarr?rr rUrKrrrrrr[rrrrrrrrrrrrrrcrrNrPrRrTrWrXr[r]r_r` visit_sidebardepart_sidebarrarbrcrdrgrjrlrnrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrr r r r rrrrrrrrrrrrrrvisit_field_namedepart_field_namevisit_field_bodydepart_field_bodyr#r$r&r)r+r,r-r.rtr/r1rLrMrYrZr^r_r`rarcrgrhrivisit_attentiondepart_attention visit_cautiondepart_caution visit_danger depart_danger visit_error depart_error visit_hint depart_hintvisit_importantdepart_important visit_note depart_note visit_tip depart_tip visit_warningdepart_warningrjrkr{r|r}r~rrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrvisit_doctest_blockdepart_doctest_blockrrrrrrrrrrrrrrrrrrrrrrrr r r r r rrrrrrrrr"rrrrrrr r!r"r(r-r.rr0rbr.r.rNr/rZs  ' 0    %    "O' .B 8  3   $rZ)rwr\r"r1)Ur<rrW collectionsrosrtypingrrrrrr r r docutilsr r docutils.nodesrrrrrrsphinx.deprecationrsphinx.domainsrsphinx.domains.stdr sphinx.errorsr sphinx.localerrr sphinx.utilrrrsphinx.util.docutilsrsphinx.util.nodesrrsphinx.util.templater sphinx.util.texescaper!docutils.utils.romanr" ImportErrorromansphinx.builders.latexr#sphinx.builders.latex.themingr$ getLoggerr9rrrrrrVcompilerrr8r>Writerr@rcrrrrtrrZsphinx.builders.latex.nodesrwr\r"r.r.r.r/s   (              c#&