o
    Nih                     @   sZ   d Z dZddlmZ ddlmZ G dd dejZG dd dejZG d	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    )frontend)latex2ec                   @   sb   e Zd ZdZdZ	 dZdZdZdZe	j
ejjdde d	ged
dfddgdeifdZdd ZdS )Writerz9A writer for Unicode-aware LaTeX variants (XeTeX, LuaTeX))latextexxetexxelatexluatexlualatexzxelatex.texz% Linux Libertine (free, wide coverage, not only for Linux)
\setmainfont{Linux Libertine O}
\setsansfont{Linux Biolinum O}
\setmonofont[HyphenChar=None,Scale=MatchLowercase]{DejaVu Sans Mono}zxetex writer)writerszlatex writers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                 C   s&   t j|  | jddi t| _d S )Nfontencoding )r   r   __init__settings_defaultsupdateXeLaTeXTranslatortranslator_class)self r   S/home/ubuntu/.local/lib/python3.10/site-packages/docutils/writers/xetex/__init__.pyr   <   s   
zWriter.__init__N)__name__
__module____qualname____doc__	supporteddefault_templatedefault_preambleconfig_sectionconfig_section_dependenciesr   filter_settings_specr   r   settings_specr   r   r   r   r   r      s*    r   c                   @   s   e Zd ZdZejj Zei dddddddd	d
ddddddddddddddddddddddd  d!d" e	 D Zd#D ]Z
ee
 = qLd$d% Zd&d' Zd(S ))Babelz`Language specifics for XeTeX.

    Use `polyglossia` instead of `babel` and adapt settings.
    copcopticdegermanzde-1901ogermandvdivehidsblsorbianz
el-polyton	polygreekfafarsigrcancientgreekkokoreanhsbusorbianzsh-Cyrlserbianzsh-Latncroatiansqalbaniansrththaivi
vietnamesec                 C   s   i | ]	\}}|  |qS r   )lower).0kvr   r   r   
<dictcomp>^   s    zBabel.<dictcomp>)
afzde-ATz
de-AT-1901zen-CAzen-GBzen-NZzen-USzfr-CAz
grc-ibycuszsr-Latnc                 C   s:   || _ || _| || _i | _d| _d| _d| _d| _d S )Nz+Language "%s" not supported by Polyglossia.r   )"rI   rI   )	language_codereporterlanguage_namelanguageotherlanguageswarn_msgquote_indexquotesliteral_double_quote)r   rJ   rK   r   r   r   r   o   s   
zBabel.__init__c                 C   s<   dd| j  g}| jr|ddt| j   d|S )Nz\usepackage{polyglossia}z\setdefaultlanguage{%s}z\setotherlanguages{%s},
)rM   rN   appendjoinsortedkeys)r   setupr   r   r   __call__{   s   
zBabel.__call__N)r   r   r   r   r   r'   language_codescopyr   itemskeyrC   r   rZ   r   r   r   r   r'   B   sR    	
r'   c                   @   s   e Zd ZdZd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                 C   sF   d| _ tj| |t | jdkr| jdd  d S d| j | jd< d S )NTutf8	_inputencz\XeTeXinputencoding %s )is_xetexr   LaTeXTranslatorr   r'   latex_encodingrequirementspop)r   documentr   r   r   r      s   
zXeLaTeXTranslator.__init__N)r   r   r   r   r   r   r   r   r   r      s    r   N)
r   __docformat__docutilsr   docutils.writersr   r   r'   rb   r   r   r   r   r   <module>   s   %B