o
    g                     @   s   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 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    N)frontendnodesutilswriters	languages)latex2ec                   @   sl   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 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))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                 C   s&   t j|  | jddi t| _d S )Nfontencoding )r   r	   __init__settings_defaultsupdateXeLaTeXTranslatortranslator_class)self r   ]/home/ubuntu/cloudmapper/venv/lib/python3.10/site-packages/docutils/writers/xetex/__init__.pyr   B   s   
zWriter.__init__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   r	   #   s*    r	   c                   @   s   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d e
 D ZdD ]Zee = q.dd Zd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                 C   s   g | ]
\}}|  |fqS r   )lower).0kvr   r   r   
<listcomp>c   s    zBabel.<listcomp>)
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   )"rK   rK   )	language_codereporterlanguage_namelanguageotherlanguageswarn_msgquote_indexquotesliteral_double_quote)r   rL   rM   r   r   r   r   t   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},r   )rO   rP   appendr%   sortedkeys)r   setupr   r   r   __call__   s   
zBabel.__call__N)r   r    r!   r"   r   r+   language_codescopyr   dictitemskeyrE   r   rZ   r   r   r   r   r+   H   s2    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   )r"   __docformat__osos.pathredocutilsr   r   r   r   r   docutils.writersr   r	   r+   rc   r   r   r   r   r   <module>   s   %A