Re: XeTeX, mathspec e Babel

#42880
Up
0
Down
::


Bene.
Risolto questo problema preliminare veniamo al sodo. 🙂

Vorrei avere un documento che si può compilare contemporaneamente con pdflatex e con xelatex.
Visto che alcune parti del preambolo devono essere diverse mi sono fatto aiutare dal pacchetto “ifxetex”, caricato alla tex-way per altri motivi.
Il problema si pone quando il pacchetto mathspec mi constringe ad introdurre le virgolette per correzioni di spaziatura nelle formule: tali virgolette non dovrebbero esserci quando compilo con pdflatex.
Dopo aver litigato abbondantemente con babel sono arrivato al seguente risultato:`\documentclass[a4paper]{article}
\input ifxetex.sty
\ifxetex
\usepackage{mathspec}
\usepackage{polyglossia}
\setmainlanguage{italian}
\setmathsfont(Digits,Latin,Greek){Adobe Garamond Pro}
\setmainfont[Mapping=tex-text]{Adobe Garamond Pro}

\let\origtilde=~
\let\origquote=”
\catcode`\~=\active
\def~#1{\ifmmode\origquote#1\else\origtilde#1\fi}

\else
\usepackage[utf8]{inputenc}
\usepackage[T1]{fontenc}
\usepackage[italian]{babel}

\let\origtilde=~
\catcode`\~=\active
\def~{\ifmmode\relax\else\origtilde\fi}
\fi

\begin{document}
\centering
\textit{de~fgh}
\begin{equation}
de~fgh
\end{equation}
\end{document}`In pratica utilizzo la tilde invece che le virgolette nel codice (non ha altri usi nel modo matematico giusto?) e ridefinisco questa come fosse le virgolette nel caso si compili con xelatex e come fosse un bel \relax nel caso si compili con pdflatex.
Secondo voi è un approcio che può funzionare?

Esiste un modo alternativo per non passare attraverso la definizione della ~, ridefinendo direttamente ” ?

🙂
LuCa

Go to top