
    BPc                         d Z ddlZddlZddlmZ ddlmZmZmZ ddlm	Z	m
Z
mZ ddlmZ ddlmZ  G d d	eej                  Zed
k    r e                                             dS dS )z)
Generate Latex via a PDF using pdflatex
    N)TempDirMixin)ProgramRunErrorcallinkscape)load_svgShapeElementDefs)convert_unit)inkex_gettextc                   $    e Zd ZdZd Zd Zd ZdS )PdfLatexz
    Use pdflatex to generate LaTeX, this whole hack is required because
    we don't want to open a LaTeX document as a document, but as a
    generated fragment (like import, but done manually).
    c                 d   |                     dt          d           |                     dt          d                    d dD                                  |                     dt          d	           |                     d
ddg           |                     dt          j        d           d S )Nz	--formulezN\(\displaystyle\frac{\pi^2}{6}=\lim_{n \to \infty}\sum_{k=1}^n \frac{1}{k^2}\))typedefaultz
--preamble c              3   "   K   | ]
}d | dV  dS )z\usepackage{ams}N ).0is     */usr/share/inkscape/extensions/pdflatex.py	<genexpr>z)PdfLatex.add_arguments.<locals>.<genexpr>2   s?        ./)A)))         )mathsymbfontsz--font_size
   z--pagebasicadvanced)choicesz--standaloneT)add_argumentstrjoinintinkexBoolean)selfparss     r   add_argumentszPdfLatex.add_arguments)   s    e 	 	
 	
 	

 	GG  3L     	 	
 	
 	
 	-c2>>>(Wj,ABBB.u}dKKKKKr   c              #     K   t           j                            | j        d          }t           j                            | j        d          }t           j                            | j        d          }t	          |d          5 }|                     |           d d d            n# 1 swxY w Y   	 t          d|| j        dd           n# t          $ r|}t          j	        t          d          d	z              t          j	        |j                            d
                              dd	                     t          j                    d }~ww xY wt          ||dddd           t           j                            |          s@t           j                            |          }t           j                            |          r|}t	          |d          5 }t%          |                                          }t)          dd          | j        j        z  }| j        j        s|| j        j        dz  z  }|D ]}	t5          |	t6                    r't          j        |          |	j        z  |	_        |	V  >t5          |	t<                    rR|	D ]O}
|
                    d| j                                                    | j        j!        "                    |
           P	 d d d            d S # 1 swxY w Y   d S )Nz	input.texz	input.pdfz
output.svgwpdflatexT)output_directoryhalt_on_erroroldiez0An exception occurred during LaTeX compilation: 
utf8z
   svgzEselect-all;page-fit-to-selection;clone-unlink-recursively;vacuum-defs)export_filenamepdf_pagepdf_popplerexport_typeactionsr1ptpxr   )scale)	backlinks	blacklist)#ospathr#   tempdiropenwrite_latexr   r   r%   errormsg_stdoutdecodereplaceAbortExtensionr   isfilebasenamer   getrootr
   r3   r<   options
standalone	font_size
isinstancer   	Transform	transformr	   set_random_idsget_idsdefsappend)r'   tex_filepdf_filesvg_filefhlerrfnr3   r<   child	def_childs              r   generatezPdfLatex.generate:   se     7<<k::7<<k::7<<l;;(C   	"CS!!!	" 	" 	" 	" 	" 	" 	" 	" 	" 	" 	" 	" 	" 	" 	"	)!%"      	) 	) 	)N1OPPSWWXXXN3:,,V44<<VTJJKKK&(((	)
 	$7
	
 
	
 
	
 
	
 w~~h'' 	!!(++Bw~~b!! (C   	8C,4SMM,A,A,C,CC -->E<* 5/"44 8 8e\22 
8&+oE&B&B&BU_&TEOKKKKt,, 8%* 8 8	 "00&*dh6F6F6H6H 1    ,,Y77778	8 	8 	8 	8 	8 	8 	8 	8 	8 	8 	8 	8 	8 	8 	8 	8 	8 	8s>   B$$B(+B(0C
 

EA7EEDK**K.1K.c           	          | j         j        rd| j         j         ddz   }nd}|                    d| d| j         j         d| j         j         d           |                                 d	S )
z%Takes a formula and wraps it in latexz\documentclass[fontsize=zpt, z$class=scrreprt, preview]{standalone}z\documentclass{minimal}z%% processed with pdflatex.py
r0   z
\begin{document}
z
\end{document}
N)rM   rN   rO   writepreambleformuleflush)r'   streamdocclasss      r   rC   zPdfLatex.write_latexu   s    <" 	2HDL,BHHH89 H
 2H	   	  	
 	
 	
 	r   N)__name__
__module____qualname____doc__r)   r_   rC   r   r   r   r   r   "   sO         L L L"98 98 98v    r   r   __main__)rj   r?   r%   
inkex.baser   inkex.commandr   r   r   r   r   r	   inkex.unitsr
   inkex.localizationr   rE   GenerateExtensionr   rg   runr   r   r   <module>rr      s   (  
			  # # # # # # 9 9 9 9 9 9 9 9 9 9 . . . . . . . . . . $ $ $ $ $ $ 1 1 1 1 1 1e e e e e|U4 e e eP zHJJNN r   