
    -Ph$              	          d Z ddlZddlmZ ddlmZmZ dZg fdZd!dZ	d!d	Z
d!d
Zd!dZedk    rdZ ed            ed e
e           d            ed ee                    dd                     d            ed e	e           d            ed ee           d            ed            ed            e e
ed                      ed            e ee                    dd          d                      ed            e e	ed                      ed            e eed                      ed           dZ	  e ed e d                      dS # e$ rMZ ee            eej                   ej        D ]Z ee                                            Y dZ[dS dZ[ww xY wdS )"zWrappers for TeX->MathML conversion by external tools

This module is provisional:
the API is not settled and may change with any minor Docutils version.
    N)nodes)	MathErrorwrap_math_codez;\documentclass{article}
\begin{document}
%s
\end{document}
c                    d}|s%| j         rt          j        d| j         dg          g}|rd| j        d          d}n9| j        rd| j        d          d| j         d	}n| j        sd| j        d          d
}|rt          ||          d S )N pre-wrapclasseszTeX to MathML converter `r   z	` failed:zTeX to MathMl converter `z` exited with Errno .z` returned no MathML.details)stderrr   	paragraphargs
returncodestdoutr   )resultr   msgs      e/var/www/html/test/jupyter/venv/lib/python3.11/site-packages/docutils/utils/math/tex2mathml_extern.py_check_resultr      s     C Mv} M?2v}zlKKKL PC&+a.CCC		 P96;q> 9 9$*$59 9 9] PO&+a.OOO
 .W----. .    Fc                    g d}|rdnd}t          | |          }d|v r|                    dd          } t          j        || dd          }d|j        v rH|j        |j                            d	          d
z   |j                            d                   |_        nG|j        |j                            d          d
z   |j                            d                   |_        t          |           d| d|j         dS )zbConvert LaTeX math code to MathML with blahtexml__.

    __ http://gva.noekeon.org/blahtexml/
    )	blahtexml--mathmlz
--indentedz	--spacingmoderatez--mathml-encodingrawz--other-encodingr   z--doctype-xhtml+mathmlz--annotate-TeXz display="block"r   z{align*}z	{aligned}Tinputcapture_outputtextz<error>z	<message>	   z
</message>z<markup>z	</markup>z0<math xmlns="http://www.w3.org/1998/Math/MathML"z>
</math>)r   replace
subprocessrunr   findr   r   )	math_codeas_blockr   mathml_args_wrappedr   s         r   r   r   0   s<   
  D )18$$bKi22HX$$Z==	^D	+/d< < <F FM!!fm&8&8&E&Ea&G&,m&8&8&F&F'G H fm&8&8&D&DQ&F&,m&8&8&E&E'F G&({ ( (( ( ( )r   c                 n   g d}t           t          | |          z  } t          j        || dd          }|j        r;d                    d |j                                        D                       |_        t          |           g d}t          j        ||j        dd          }|j        	                    d          }|dk    rG|j        	                    d	|          d
z   }|j        ||         
                    dd          |_        nG|j        |j        	                    d          |j        	                    d          dz            |_        |j        r|j        }n|j        }d                    d |                                D                       |_        t          |           |j        S )zConvert LaTeX math code to MathML with LaTeXML__.

    Comprehensive macro support but **very** slow.

    __ http://dlmf.nist.gov/LaTeXML/
    )latexml-z--preload=amsmathz--preload=amssymbz--inputencoding=utf8--Tr   
c              3      K   | ]E}|                     d           s*|                     d          s|                     d          A|V  FdS zError:zWarning:zFatal:N
startswith.0lines     r   	<genexpr>zlatexml.<locals>.<genexpr>n   s{       #A #AD&*ooh&?&?#A&*ooj&A&A#A '+ooh&?&?#A4 #A #A #A #A #A #Ar   )latexmlpostr-   z--nonumbersectionsz--format=html5z--omitdoctypez--noscanz--nocrossrefz--nographicimagesz--nopictureimagesz--nodefaultresourcesr.   z<table class="ltx_equationgroupz</table>   ltx_equationgroupzborderless align-center<mathr"      c              3      K   | ]E}|                     d           s*|                     d          s|                     d          A|V  FdS r1   r2   r4   s     r   r7   zlatexml.<locals>.<genexpr>   sp       = ="&//(";";="&//*"="== #'//(";";=t = = = = = =r   )document_templater   r$   r%   r   join
splitlinesr   r   r&   r#   )	r'   r(   args1result1args2result2startstop_msg_sources	            r   r,   r,   T   s     E "N9h$G$GGInU),0t= = =G~ A #A #AGN4M4M4O4O #A #A #A A A '  E nU'.,0t= = =G N ABBE{{~"":u55a7 d
3;;!:< < !(;(;G(D(D(/(;(;I(F(Fq(H)I J ~ %nnYY = =0F0F0H0H = = = = =GN '>r   c           
         g d}t          j        |t          | |          dd          }|j        |j                            d          |j                            d          dz            |_        g }|j        r|j                                        }|                    t          j	        d|d                              |                    t          j
        dd	                    |d
d                                        |                    t          j	        dd	                    |dd                   dg                     t          ||           |j        S )zQConvert LaTeX math code to MathML with pandoc__.

    __ https://pandoc.org/
    )pandocr   z--from=latexTr   r<   r"   r=   r   r   r/         Nr   r	   r   )r$   r%   r   r   r&   r   rA   appendr   r   literal_blockr@   r   )r'   r(   r   r   r   liness         r   rJ   rJ      sY   
  D ^Dy((K(K+/d< < <F M&-"4"4W"="="(-"4"4Y"?"?"A#B CFM G} >((**ur5844555u*2tyyqs/D/DEEFFFur499U122Y+?+?0:|= = = 	> 	> 	>&'****=r   c                    g d}t          | |          } 	 t          j        || ddd          }n!# t          $ r}t	          |          d}~ww xY w|j        |j                            d          |j                            d          dz            |_        |r |j                            d	d
          |_        d                    d |j	        
                                D                       |_	        t          |           |j        S )z{Convert LaTeX math code to MathML with TtM__.

    Aged, limited, but fast.

    __ http://silas.psfc.mit.edu/tth/mml/
    )ttmz-Lz-rTz
ISO-8859-1)r   r   r    encodingNr<   r"   r=   z<math xmlns=z<math display="block" xmlns=r/   c              3   Z   K   | ]&}|                     d           |dd         dz   V  'dS )z****    Nr   r2   r4   s     r   r7   zttm.<locals>.<genexpr>   sS       ; ;"&!%!9!9;d122hn ; ; ; ; ; ;r   )r   r$   r%   UnicodeEncodeErrorr   r   r&   r#   r@   r   rA   r   )r'   r(   r   r   errs        r   rQ   rQ      s;     D y(33II/3$)57 7 7    nn M&-"4"4W"="="(-"4"4Y"?"?"A#B CFM N--n.LN NII ; ;*0-*B*B*D*D; ; ; ; ;FM &=s   0 
AA		A__main__uR   \frac{\partial \sin^2(\alpha)}{\partial \vec r}\varpi \mathbb{R} \, \text{Grüße}z<!DOCTYPE html>
<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en" lang="en">
<head>
<title>test external mathml converters</title>
</head>
<body>
<p>Test external converters</p>
<p>
z	latexml: ,zttm: mathbbmathbfzblahtexml: zpandoc: r   z</p>z<p>latexml:</p>T)r(   z<p>ttm:</p>z<p>blahtexml:</p>z<p>pandoc:</p>z</main>
</body>
</html>z
\sinc \phy$)F)__doc__r$   docutilsr   docutils.utils.mathr   r   r?   r   r   r,   rJ   rQ   __name__exampleprintr#   buggyrV   r   nodeastext r   r   <module>rf      sE              9 9 9 9 9 9 9 9  #% . . . ."!) !) !) !)HB B B BJ   @   F z6G 
E     
E
)ggg&&
)
)
)***	E
=##gooh99::
=
=
=>>>	E
-		'**
-
-
-...	E
'VVG__
'
'
'(((	E&MMM	E
	E'''D
)
)
)***	E-	E##gooh11D
A
A
ABBB	E
	E))Gd
+
+
+,,,	E
	E&&4
(
(
()))	E
%&&&E	! 	ff\\\\""##### ! ! !c


ckK 	! 	!DE$++--    	! 	! 	! 	! 	! 	!!K s   %E? ?GAGG