
    bn                     Z    d 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	e
      Zy
)zLaTeX Exporter class    )default)Config)resolve_references)Highlight2Latex   )TemplateExporterc                        e Zd ZdZdZ ed      d        Z ed      d        ZdZ fdZ	e
 fd	       Zd fd
	Z fdZ x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                      y)Nz.tex selfs    ;/usr/lib/python3/dist-packages/nbconvert/exporters/latex.py_file_extension_defaultz%LatexExporter._file_extension_default   s        template_namec                      y)Nlatexr   r   s    r   _template_name_defaultz$LatexExporter._template_name_default   s    r   
text/latexc              #   R   K   t         |          E d {    dt        f y 7 w)Nr   )superdefault_filtersr   )r   	__class__s    r   r   zLatexExporter.default_filters%   s)     7*,,,#%788 	-s   '%'c           	      z    t        dg diddiddiddiddiddid      }|j                  t        |          |S )Ndisplay_data_priority)r   zapplication/pdfz	image/pngz
image/jpegzimage/svg+xmlztext/markdownz
text/plainenabledT)NbConvertBaseExtractOutputPreprocessorSVG2PDFPreprocessorLatexPreprocessorSphinxPreprocessorHighlightMagicsPreprocessor)r   merger   default_config)r   cr   s     r   r'   zLatexExporter.default_config)   sc     , .
" /8->(14'8&/%6'0$&7094/@!
( 	
&'r   c                    |j                   j                  di       }|j                  d|j                  dd             }| j                  j                  dt        ||             }| j	                  d|       t        |   ||fi |S )Nlanguage_infopygments_lexernamehighlight_code)r+   parent)metadatagetfiltersr   register_filterr   from_notebook_node)r   nb	resourceskwlanginfolexerr-   r   s          r   r3   z LatexExporter.from_notebook_nodeB   s}    ;;???B7-x||FD/IJ))oU4P
 	-~>w)"i>2>>r   c                 x    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   s     r   r:   z!LatexExporter._create_environmentL   sH    g13 */&',$,1)*/'+0().&r   )N)__name__
__module____qualname____doc__export_from_notebookr   r   r   output_mimetyper   propertyr'   r3   r:   __classcell__)r   s   @r   r
   r
      sp     #  _  #O9  0? r   r
   N)rE   	traitletsr   traitlets.configr   nbconvert.filters.filter_linksr   nbconvert.filters.highlightr   templateexporterr   r
   r   r   r   <module>rO      s(      # = 7 .G$ Gr   