
    k7i)                        S r SSKJr  SrSSKJr  SSKJr  SSKJ	r	   " S S\R                  5      r
 " S	 S
\R                  5      r " S S\R                  5      rg)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.
    )annotationsreStructuredText)frontend)latex2e)PreambleCmdsc            
          \ rS rSrSrSr SrSrSrSr	\
R                  " \R                  R                  SS	\-  S
/\SS.4SS/S\S.4S9rSS jrSrg)Writer    z9A 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-preamblez
<preamble>)r   r   )templatelatex_preamblec                    [         R                  R                  U 5        U R                  R	                  SS05        [
        U l        g )Nfontencoding )r   r	   __init__settings_defaultsupdateXeLaTeXTranslatortranslator_class)selfs    Y/home/james-whalen/.local/lib/python3.13/site-packages/docutils/writers/xetex/__init__.pyr   Writer.__init__@   s5    %%%~r&:; 1    )r   NreturnNone)__name__
__module____qualname____firstlineno____doc__	supporteddefault_templatedefault_preambleconfig_sectionconfig_section_dependenciesr   filter_settings_specr   r	   settings_specr   __static_attributes__ r"   r    r	   r	       s    CJI'$I $N"> 11$$14DD..8DFC+,$0$467
M2r"   r	   c                     \ rS rSrSr\R                  R                  R                  5       r\R                  0 SS_SS_SS_S	S
_SS_SS_SS_SS_SS_SS_SS_SS_SS_SS_SS_S S!_5        \R                  5        V VVs0 s H  u  pUR                  5       U_M     snnn rS" H  r\\R                  5       	 M     S#rS(S$ jrS% rS&rg's  snnn f ))BabelF   zXLanguage 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
vietnamese)
afzde-ATz
de-AT-1901zen-CAzen-GBzen-NZzen-USzfr-CAz
grc-ibycuszsr-Latnz2Language "%s" not supported by LaTeX (polyglossia)c                    Xl         X l        U R                  U5      U l        0 U l        SU l        SU l        SU l        SU l        g )Nz+Language "%s" not supported by Polyglossia.r   )"rT   rT   )	language_codereporterlanguage_namelanguageotherlanguageswarn_msgquote_indexquotesliteral_double_quote)r   rU   rV   s      r    r   Babel.__init__u   sG    * **=9 E  %(!r"   c           	         SSU R                   -  /nU R                  (       aD  UR                  SSR                  [	        U R                  R                  5       5      5      -  5        SR                  U5      $ )Nz\usepackage{polyglossia}z\setdefaultlanguage{%s}z\setotherlanguages{%s},
)rX   rY   appendjoinsortedkeys)r   setups     r    __call__Babel.__call__   sf    ,+dmm;=LL2&)<)<)A)A)C"DEF Gyyr"   )rX   rU   r]   rY   r[   r\   rV   rZ   Nr#   )r&   r'   r(   r)   r*   r   r5   language_codescopyr   itemslowerkeyrZ   r   rg   r2   ).0kvs   000r    r5   r5   F   sS    ]]11668N 
h
 	h
 	i	

 	h
 	j
 	k
 	g
 	n
 	h
 	j
 	i
 	j
 	j
 	i
  	f!
" 	l#
 * 0>/C/C/EF/Etqaggil/EFN 399;' DH
( ? Gs   Cr5   c                  >   ^  \ rS rSrSrSS jrSSU 4S jjjrSrU =r$ )	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                    SU l         [        R                  R                  X[        5        U R
                  S:X  a  U R                  R                  SS 5        g SU R
                  -  U R                  S'   g )NTutf8	_inputencz\XeTeXinputencoding %s )is_xetexr   LaTeXTranslatorr   r5   latex_encodingrequirementspop)r   documents     r    r   XeLaTeXTranslator.__init__   sb    ((?&(!!+t4.H040C0C/DDk*r"   c                   > [         TU ]  X5      nUR                  S5      (       aO  U R                  (       d  [        R
                  U R                  S'   SU R                  S'   UR                  SS5      $ U$ )zConvert "measure" `length_str` to LaTeX length specification.

XeTeX does not know the length unit px.
Use ``\pdfpxdimen``, the macro holding the value of 1 px in pdfTeX.
This way, configuring works the same for pdftex and xetex.
px_providelengthz#
\DUprovidelength{\pdfpxdimen}{1bp}z\pdfpxdimen)superto_latex_lengthendswithfallback_stylesheetr   providelength	fallbacksreplace)r   
length_strnode	__class__s      r    r   !XeLaTeXTranslator.to_latex_length   sj     W,Z>
t$$++3?3M3M/0#KDNN4 %%dN;;r"   )rv   r#   )N)r   strr$   r   )	r&   r'   r(   r)   r*   r   r   r2   __classcell__)r   s   @r    r   r      s    E r"   r   N)r*   
__future__r   __docformat__docutilsr   docutils.writersr   docutils.writers.latex2er   r	   r5   rw   r   r3   r"   r    <module>r      sS    #"  $ 1#2W^^ #2LA GMM A H// r"   