
    <h                         S r SSKJr  SSKrSSKrSSKrSSKrSSKJr  SSK	r	SSK
Jr  SSKJrJr  SSKJr  SSKJr  SS	KJrJrJr   " S
 S\5      r SS\4S jjrSS jrSS jrS rS rSrSS jrg)zTools for handling LaTeX.    )BytesION)encodebytes)Path)find_cmdFindCmdError
get_config)SingletonConfigurable)ListBoolUnicodec                       \ rS rSrSrS r\" \" 5       SS/SS9R                  SS	9r	\
" SS
S9R                  SS	9r\" / SQSS9R                  SS	9r\" SS9R                  SS	9rSrg)	LaTeXTool   z3An object to store configuration of the LaTeX tool.c                     [        5       $ )Nr   )selfs    iC:\Users\julio\OneDrive\Documentos\Trabajo\Ideas Frescas\venv\Lib\site-packages\IPython/lib/latextools.py_config_defaultLaTeXTool._config_default   s
    |    
matplotlibdvipnga  Preferred backend to draw LaTeX math equations. Backends in the list are checked one by one and the first usable one is used.  Note that `matplotlib` backend is usable only for inline style equations.  To draw  display style equations, `dvipng` backend must be specified. )helpT)configzmUse breqn.sty to automatically break long equations. This configuration takes effect only for dvipng backend.)amsmathamsthmamssymbbmziA list of packages to use for dvipng backend. 'breqn' will be automatically appended when use_breqn=True.zKAdditional preamble to use when generating LaTeX source for dvipng backend. N)__name__
__module____qualname____firstlineno____doc__r   r   r   tagbackendsr   	use_breqnpackagespreamble__static_attributes__r   r   r   r   r      s    = 	L(+H
 #T#
  C
 #T#
	  .F
 #T#
	  
 #T#
 r   r   sc                    [        U [        5      (       d   e[        R                  5       R                  nUc  US   nX&;  a  gUS:X  a  [
        nOUS:X  a  [        nUR                  S5      (       a  [        U5      S:X  a^   SR                  SR                  [        R                  " US	S S
5       Vs/ s H  n[        [        US5      5      PM     sn5      5      nO5[        SR                  U5      5      eO[        SR                  U5      5      eU" XXE5      n
U(       a  U
(       a  [        U
5      n
U
$ s  snf ! [         a   n	[        SR                  U5      5      U	eSn	A	ff = f)a(  Render a LaTeX string to PNG.

Parameters
----------
s : str
    The raw string containing valid inline LaTeX.
encode : bool, optional
    Should the PNG data base64 encoded to make it JSON'able.
backend : {matplotlib, dvipng}
    Backend for producing PNG data.
wrap : bool
    If true, Automatically wrap `s` as a LaTeX equation.
color : string
    Foreground color name among dvipsnames, e.g. 'Maroon' or on hex RGB
    format, e.g. '#AA20FA'.
scale : float
    Scale factor for the resulting PNG.
None is returned when the backend cannot be used.

Nr   r   r   #   zRGB {}          zInvalid color specification {}.zNo such backend {0})
isinstancestrr   instancer&   latex_to_png_mpllatex_to_png_dvipng
startswithlenformatjointextwrapwrapint
ValueErrorr   )r+   encodebackendr=   colorscaleallowed_backendsfxebin_datas              r   latex_to_pngrI   <   s^   . a ))+44"1%&,	H	C  5zQ]$OOCHH6>mmE!"Iq6Q6S6Q KLc#a*o6Q6S -T UE
 !!B!I!I%!PQQ ! .55g>??%'H(x(O6S! ]$%F%M%Me%TU[\\]s*   2D> 5D9D> 9D> >
E(E##E(c                     SSK JnJnJn  SSKJn  SSKJn  U R                  SS5      n U(       a  SR                  U 5      n  UR                  SS	9n	S
U-  n
[        5       nUR                  S5      nUR                  U SU	S9u  pn  nUR                  US-  US-  4S9nUR!                  SX-  X	US9  UR#                  U5        UR%                  XSSS9  UR'                  5       $ ! [         a     g f = f! [(        [*        U4 a     g f = f)Nr   )figurefont_managermathtext)backend_agg)ParseFatalExceptionz$$$z${0}$   )sizex   pathH   )dpiprop)figsize)fontpropertiesrB   pngT)rV   r:   transparent)r   rK   rL   rM   matplotlib.backendsrN   	pyparsingrO   ImportErrorreplacer:   FontPropertiesr   MathTextParserparseFiguretextFigureCanvasAggsavefiggetvaluer?   RuntimeError)r+   r=   rB   rC   rK   rL   rM   rN   rO   rW   rV   bufferparserwidthheightdepth_figs                     r   r6   r6   o   s   ==31
 	
		$AOOA***3Ek ((0%+\\!$\%G"uammURZ"$=m>ENA%H##C(FEtD  )  * &9: s$   C% B!C5 %
C21C25D	D	c                     [        S5        [        S5        S n[        R                  S:X  a8  [        R
                  " 5       nU=R                  [        R                  -  sl         [        [        R                  " 5       5      nSnSnSnUR                  U5      R                  SSS	9 n	U	R                  [        X5      5        S S S 5        [        R                  " SS
SSU/U[        R                   [        R                   US9  [#        SU-  5      n
[        R                  " SSSS[%        U
5      SSSSSUUSU/U[        R                   [        R                   US9  UR                  U5      R                  S5       n	U	R'                  5       sS S S 5        [(        R*                  " U5        $ ! [         a     g f = f! , (       d  f       GN= f! , (       d  f       O3= f! [        R,                   a     [(        R*                  " W5        g f = f [(        R*                  " U5        g ! [(        R*                  " W5        f = f)Nlatexr   ntztmp.texztmp.dviztmp.pngwutf8)encodingz-halt-on-errorz-interaction	batchmode)cwdstdoutstderrstartupinfo   z-Ttightz-Dz-z9z-bgTransparentz-oz-fgrb)r   r   osname
subprocessSTARTUPINFOdwFlagsSTARTF_USESHOWWINDOWr   tempfilemkdtempjoinpathopen
writelines	genelatex
check_callDEVNULLroundr4   readshutilrmtreeCalledProcessError)r+   r=   rB   rC   rz   workdirtmpfiledvifileoutfilerE   
resolutions              r   r7   r7      s    K	ww$ ,,.z>>>.x'')*g&++C&+AQLL1+, B 	&WM%%%%#	
 3;'
J  %%%%#)	
. g&++D1Q668 21
 	go   BAF 21(( g 2
 	ggss   F/ 'AG" *F?B:G" ?G	G" /
F<;F<?
G	G" 
GG" H* G" "H6H* HH* *Ic                     [        S5        [        R                  " SU /[        R                  [        R                  S9nUR	                  5       u  p#UR                  5       R                  SS5      $ ! [         a     gf = f)z5Invoke kpsewhich command with an argument `filename`.	kpsewhich)rx   ry   rt   r_   N)r   r   PopenPIPEcommunicatestripdecoder   )filenameprocrx   ry   s       r   r   r      sr    (#??:??<  ++-||~$$VY77 s   A0A3 3
B ?B c              #     #    [         R                  5       nU=(       a    UR                  =(       a    [        S5      nSv   UR                  nU(       a  US/-   nU H  nSR                  U5      v   M     Sv   UR                  (       a  UR                  v   Sv   U(       a  Sv   U v   Sv   OU(       a  S	R                  U 5      v   OU v   S
v   g7f)z+Generate LaTeX document for dvipng backend.z	breqn.styz\documentclass{article}breqnz\usepackage{{{0}}}z\pagestyle{empty}z\begin{document}z\begin{dmath*}z\end{dmath*}z$${0}$$z\end{document}N)r   r5   r'   r   r(   r:   r)   )bodyr=   ltr   r(   packs         r   r   r      s     				B<R\\<i&<E
$${{Hwi'#**400 
	{{kk

	%%

s   CCz-<img src="data:image/png;base64,%s" alt=%s />c                 X    [        U SS9R                  S5      nU(       a
  [        X!4-  $ g)zRender LaTeX to HTML with embedded PNG data using data URIs.

Parameters
----------
s : str
    The raw string containing valid inline LateX.
alt : str
    The alt text to use for the HTML.
T)r@   asciiN)rI   r   _data_uri_template_png)r+   altbase64_datas      r   latex_to_htmlr      s1     q.55g>K%+);;; r   )FNFBlack      ?)r   r   )image) r$   ior   r   r   r   r   base64r   r<   pathlibr   IPython.utils.processr   r   traitlets.configr	   traitlets.config.configurabler
   	traitletsr   r   r   r   r4   rI   r6   r7   r   r   r   r   r   r   r   <module>r      sw    
  	       8 ' ? ) )"% "L JM0
0f<;|
2 N <r   