o
    i                     @   sh   d Z ddlZddlmZ ddlmZ ddlmZ ddlm	Z	 ddl
mZ dd	lmZ G d
d deZdS )zLaTeX Exporter class    N)default)Config)resolve_references)Highlight2Latex)ConvertExplicitlyRelativePaths   )TemplateExporterc                       sr   e Zd ZdZdZeddd Zeddd Zd	Z fd
dZ	e
 fddZd fdd	Z fddZ  ZS )LatexExporteraL  
    Exports to a Latex template.  Inherit from this class if your template is
    LaTeX based and you need custom transformers/filters.
    If you don't need custom transformers/filters, just change the
    'template_file' config option.  Place your template in the special "/latex"
    subfolder of the "../templates" folder.
    LaTeXfile_extensionc                 C      dS )Nz.tex selfr   r   T/var/www/edux/Edux_v2/venv/lib/python3.10/site-packages/nbconvert/exporters/latex.py_file_extension_default      z%LatexExporter._file_extension_defaulttemplate_namec                 C   r   )Nlatexr   r   r   r   r   _template_name_default!   r   z$LatexExporter._template_name_default
text/latexc                 #   s     t   E dH  dtfV  dS )zGet the default filters.Nr   )superdefault_filtersr   r   	__class__r   r   r   '   s   zLatexExporter.default_filtersc              	      s^   t dg diddiddiddiddiddiddid}t jr-t j }|| |}|S )Ndisplay_data_priority)r   zapplication/pdfz	image/pngz
image/jpegzimage/svg+xmlztext/markdownz
text/plainenabledT)NbConvertBaseExtractAttachmentsPreprocessorExtractOutputPreprocessorSVG2PDFPreprocessorLatexPreprocessorSphinxPreprocessorHighlightMagicsPreprocessor)r   r   default_configcopymerge)r   cc2r   r   r   r$   ,   s    
zLatexExporter.default_configNc           
         s   |j di }|d|dd}| jdt|| d}| d| |r-|di dnd}|r7tj|nt }| jd	t	|| d
}	| d	|	 t
 j||fi |S )zConvert from notebook node.language_infopygments_lexernameNhighlight_code)r*   parentmetadatapath!convert_explicitly_relative_paths)	texinputsr-   )r.   getfiltersr   register_filterosr/   abspathgetcwdr   r   from_notebook_node)
r   nb	resourceskwlanginfolexerr,   nb_pathr1   r0   r   r   r   r8   I   s   
z LatexExporter.from_notebook_nodec                    s2   t   }d|_d|_d|_d|_d|_d|_|S )Nz((*z*))z(((z)))z((=z=)))r   _create_environmentblock_start_stringblock_end_stringvariable_start_stringvariable_end_stringcomment_start_stringcomment_end_string)r   environmentr   r   r   r?   ^   s   
z!LatexExporter._create_environment)N)__name__
__module____qualname____doc__export_from_notebookr   r   r   output_mimetyper   propertyr$   r8   r?   __classcell__r   r   r   r   r	      s    

r	   )rJ   r5   	traitletsr   traitlets.configr   nbconvert.filters.filter_linksr   nbconvert.filters.highlightr   nbconvert.filters.pandocr   templateexporterr   r	   r   r   r   r   <module>   s    