o
    tf                     @   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.
    ZLaTeXZfile_extensionc                 C      dS )Nz.tex selfr   r   b/var/www/html/software/conda/envs/catlas/lib/python3.10/site-packages/nbconvert/exporters/latex.py_file_extension_default      z%LatexExporter._file_extension_defaultZ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 )NZdisplay_data_priority)r   zapplication/pdfz	image/pngz
image/jpegzimage/svg+xmlztext/markdownz
text/plainenabledT)ZNbConvertBaseZExtractAttachmentsPreprocessorZExtractOutputPreprocessorZSVG2PDFPreprocessorZLatexPreprocessorZSphinxPreprocessorZ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.Zlanguage_infopygments_lexernameNhighlight_code)r   parentmetadatapath!convert_explicitly_relative_paths)	texinputsr!   )r"   getfiltersr   Zregister_filterosr#   abspathgetcwdr   r   from_notebook_node)
r   nb	resourceskwZlanginfolexerr    Znb_pathr%   r$   r   r   r   r+   I   s   
z LatexExporter.from_notebook_nodec                    s2   t   }d|_d|_d|_d|_d|_d|_|S )Nz((*z*))z(((z)))z((=z=)))r   _create_environmentZblock_start_stringZblock_end_stringZvariable_start_stringZvariable_end_stringZcomment_start_stringZcomment_end_string)r   environmentr   r   r   r0   ^   s   
z!LatexExporter._create_environment)N)__name__
__module____qualname____doc__Zexport_from_notebookr   r   r   Zoutput_mimetyper   propertyr   r+   r0   __classcell__r   r   r   r   r	      s    

r	   )r5   r(   Z	traitletsr   Ztraitlets.configr   Znbconvert.filters.filter_linksr   Znbconvert.filters.highlightr   Znbconvert.filters.pandocr   Ztemplateexporterr   r	   r   r   r   r   <module>   s    