
     Ic                         d Z dZddlZddlZddlZddlZddlmZmZmZm	Z	m
Z
 ddlmZ  G d dej                  Z G d d	ej                  Z G d
 dej                  ZdS )z
XeLaTeX document tree Writer.

A variant of Docutils' standard 'latex2e' writer producing LaTeX output
suited for processing with the Unicode-aware TeX engines
LuaTeX and XeTeX.
reStructuredText    N)frontendnodesutilswriters	languages)latex2ec            	           e Zd ZdZdZ	 dZd                    g d          ZdZdZ	 e
j        ej        j        dd	ez  d
geddfddgdeif          Zd ZdS )Writerz9A writer for Unicode-aware LaTeX variants (XeTeX, LuaTeX))lxtexxetexxelatexluatexlualatexzxelatex.tex
)z;% Linux Libertine (free, wide coverage, not only for Linux)z\setmainfont{Linux Libertine O}z\setsansfont{Linux Biolinum O}zD\setmonofont[HyphenChar=None,Scale=MatchLowercase]{DejaVu Sans Mono}zxetex writer)r   zlatex writerszlatex2e writerfont_encodingzTemplate file. Default: "%s".z
--templatez<file>)defaultmetavarzUCustomization by LaTeX code in the preamble. Default: select "Linux Libertine" fonts.z--latex-preambler   )templatelatex_preamblec                     t           j                            |            | j                            ddi           t
          | _        d S )Nfontencoding )r	   r   __init__settings_defaultsupdateXeLaTeXTranslatortranslator_class)selfs    ?lib/python3.11/site-packages/docutils/writers/xetex/__init__.pyr   zWriter.__init__B   sB    %%%%%~r&:;;; 1    N)__name__
__module____qualname____doc__	supporteddefault_templatejoindefault_preambleconfig_sectionconfig_section_dependenciesr   filter_settings_specr	   r   settings_specr    r!   r    r   r   #   s        CCCI'$yy " " "   $N# 2H1$14DD..8DDFC+,"$457
 
 
M2 2 2 2 2r!   r   c                   &   e Zd ZdZej        j                                        Ze                    dddddddd	d
ddddddd            e	d e
                                D                       ZdD ]Zee                                = d Zd ZdS )Babelz`Language specifics for XeTeX.

    Use `polyglossia` instead of `babel` and adapt settings.
    copticgermanogermandivehilsorbian	polygreekfarsiancientgreekusorbianserbiancroatianalbanianthai
vietnamese)copdezde-1901dvdsbz
el-polytonfagrchsbzsh-Cyrlzsh-Latnsqsrthvic                 @    g | ]\  }}|                                 |fS r.   )lower).0kvs      r    
<listcomp>zBabel.<listcomp>c   s(    OOOfq!AGGIIq>OOOr!   )
afzde-ATz
de-AT-1901zen-CAzen-GBzen-NZzen-USzfr-CAz
grc-ibycuszsr-Latnc                     || _         || _        |                     |          | _        i | _        d| _        d| _        d| _        d| _        d S )Nz+Language "%s" not supported by Polyglossia.r   )"rR   rR   )	language_codereporterlanguage_namelanguageotherlanguageswarn_msgquote_indexquotesliteral_double_quote)r   rS   rT   s      r    r   zBabel.__init__t   sT    * **=99 E  %)!!!r!   c           	          dd| j         z  g}| j        rO|                    dd                    t	          | j                                                            z             d                    |          S )Nz\usepackage{polyglossia}z\setdefaultlanguage{%s}z\setotherlanguages{%s},r   )rV   rW   appendr(   sortedkeys)r   setups     r    __call__zBabel.__call__   s|    ,+dm;= 	GLL2&)<)A)A)C)C"D"DEEF G G Gyyr!   N)r"   r#   r$   r%   r	   r0   language_codescopyr   dictitemskeyrK   r   rb   r.   r!   r    r0   r0   H   s          ]16688N  ! "#&"!""!$!
 
   ( TOO8L8L8N8NOOOPPN ) ) 399;;''
) 
) 
)         r!   r0   c                       e Zd ZdZd ZdS )r   z
    Generate code for LaTeX using Unicode fonts (XeLaTex or LuaLaTeX).

    See the docstring of docutils.writers._html_base.HTMLTranslator for
    notes on and examples of safe subclassing.
    c                     d| _         t          j                            | |t                     | j        dk    r| j                            dd            d S d| j        z  | j        d<   d S )NTutf8	_inputencz\XeTeXinputencoding %s )is_xetexr	   LaTeXTranslatorr   r0   latex_encodingrequirementspop)r   documents     r    r   zXeLaTeXTranslator.__init__   ss    ((x???&( 	E!!+t44444.H040C/DDk***r!   N)r"   r#   r$   r%   r   r.   r!   r    r   r      s2         E E E E Er!   r   )r%   __docformat__osos.pathredocutilsr   r   r   r   r   docutils.writersr	   r   r0   rm   r   r.   r!   r    <module>rx      s  "  # 				  				  ? ? ? ? ? ? ? ? ? ? ? ? ? ? $ $ $ $ $ $"2 "2 "2 "2 "2W^ "2 "2 "2J>  >  >  >  > GM >  >  > BE E E E E/ E E E E Er!   