- Questo topic ha 9 risposte, 2 partecipanti ed è stato aggiornato l'ultima volta 16 anni, 6 mesi fa da
Bistek.
-
CreatoreTopic
-
9 Marzo 2010 alle 14:05 #42877::
Il seguente codice compila perfettamente.
Nel pdf lettere nella prima riga sono testo corsivo, quelle della seconda sono simboli matematici:`\documentclass[a4paper]{article}
%\usepackage[italian]{babel}
\usepackage{mathspec}\setmathsfont(Digits,Latin,Greek){Adobe Garamond Pro}
\setmainfont{Adobe Garamond Pro}
\pagestyle{empty}\begin{document}
\centering
\textit{defgh}
\begin{equation}
de”fgh
\end{equation}
\end{document}`In particolare si può notare come le virgolette davanti alla “f” nell’equazione vengano usate per correggere la spaziatura tra i caratteri in modalità matematica, come spiegato nel manuale di mathspec.Se si toglie il commento davanti a babel invece questa correzione non avviene e nel pdf compaiono le virgolette.
Immagino sia un problema simile a questo, causato dall’uso che babel fa delle virgolette nella versione italiana. È possibile rammendare questo comportamento?🙂
LuCa
-
CreatoreTopic
-
AutoreRisposte
-
-
9 Marzo 2010 alle 15:36 #42878::
Il seguente codice compila perfettamente.
Nel pdf lettere nella prima riga sono testo corsivo, quelle della seconda sono simboli matematici:`\documentclass[a4paper]{article}
%\usepackage[italian]{babel}
\usepackage{mathspec}\setmathsfont(Digits,Latin,Greek){Adobe Garamond Pro}
\setmainfont{Adobe Garamond Pro}
\pagestyle{empty}\begin{document}
\centering
\textit{defgh}
\begin{equation}
de”fgh
\end{equation}
\end{document}`In particolare si può notare come le virgolette davanti alla “f” nell’equazione vengano usate per correggere la spaziatura tra i caratteri in modalità matematica, come spiegato nel manuale di mathspec.Se si toglie il commento davanti a babel invece questa correzione non avviene e nel pdf compaiono le virgolette.
Immagino sia un problema simile a questo, causato dall’uso che babel fa delle virgolette nella versione italiana. È possibile rammendare questo comportamento?🙂
LuCa`%\usepackage[italian]{babel}% NON con XeLaTeX
\usepackage{polyglossia}
\setmainlanguage{italian}`
Ciao
Enrico
-
9 Marzo 2010 alle 15:50 #42879
-
10 Marzo 2010 alle 13:27 #42880::
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
-
10 Marzo 2010 alle 15:18 #42881::
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\shorthandoff{“} dopo \begin{document}, se usi solo l’italiano.
Ciao
Enrico
-
10 Marzo 2010 alle 16:25 #42882::
\shorthandoff{“} dopo \begin{document}, se usi solo l’italiano.
Ciao
EnricoNo, non funziona.
\shorthandoff non viene definito da Polyglossia e pertanto quando compilo con xelatex dà errore. Per ovviare a questo ho provato a mettere \AtBeginDocument{\shorthandoff{“}} nel blocco di testo che viene processato durante la compilazione con pdflatex, ma in questo caso non si ha il comportamento voluto. È come se venisse ignorata la ridefinizione`\catcode`\”=\active
\def”{\ifmmode\relax\else\origquote\fi}` Nel pdf compaiono le virgolette presenti nell’ambiente matematico che dovrebbero venir sostituite da \relax .`\documentclass[a4paper]{article}
\input ifxetex.sty\ifxetex
% CODICE PER XELATEX
\usepackage{mathspec}
\usepackage{polyglossia}
\setmainlanguage{italian}
\setmathsfont(Digits,Latin,Greek){Adobe Garamond Pro}
\setmainfont[Mapping=tex-text]{Adobe Garamond Pro}\else
% CODICE PER PDFLATEX
\usepackage[utf8]{inputenc}
\usepackage[T1]{fontenc}
\usepackage[italian]{babel}\let\origquote=”
\catcode`\”=\active
\def”{\ifmmode\relax\else\origquote\fi}
\AtBeginDocument{\shorthandoff{“}}
\fi\begin{document}
\centering
\textit{de”fgh}
\begin{equation}
de”fgh
\end{equation}
\end{document}`:)
LuCa
-
10 Marzo 2010 alle 18:04 #42883::
\shorthandoff{“} dopo \begin{document}, se usi solo l’italiano.
Ciao
EnricoNo, non funziona.
\shorthandoff non viene definito da Polyglossia e pertanto quando compilo con xelatex dà errore. Per ovviare a questo ho provato a mettere \AtBeginDocument{\shorthandoff{“}} nel blocco di testo che viene processato durante la compilazione con pdflatex, ma in questo caso non si ha il comportamento voluto. È come se venisse ignorata la ridefinizione`\catcode`\”=\active
\def”{\ifmmode\relax\else\origquote\fi}` Nel pdf compaiono le virgolette presenti nell’ambiente matematico che dovrebbero venir sostituite da \relax .`\documentclass[a4paper]{article}
\input ifxetex.sty\ifxetex
% CODICE PER XELATEX
\usepackage{mathspec}
\usepackage{polyglossia}
\setmainlanguage{italian}
\setmathsfont(Digits,Latin,Greek){Adobe Garamond Pro}
\setmainfont[Mapping=tex-text]{Adobe Garamond Pro}\else
% CODICE PER PDFLATEX
\usepackage[utf8]{inputenc}
\usepackage[T1]{fontenc}
\usepackage[italian]{babel}\let\origquote=”
\catcode`\”=\active
\def”{\ifmmode\relax\else\origquote\fi}
\AtBeginDocument{\shorthandoff{“}}
\fi\begin{document}
\centering
\textit{de”fgh}
\begin{equation}
de”fgh
\end{equation}
\end{document}`:)
LuCaE \ifxetex lo butti? 🙂
`\begin{document}
\ifxetex\else
\shorthandoff{“}
\fi`
Ciao
Enrico
-
11 Marzo 2010 alle 8:45 #42884::
E \ifxetex lo butti? 🙂
`\begin{document}
\ifxetex\else
\shorthandoff{“}
\fi`
Ciao
Enrico🙁 no, non funziona ancora. Questo codice:`\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}\else
\usepackage[utf8]{inputenc}
\usepackage[T1]{fontenc}
\usepackage[italian]{babel}\let\origquote=”
\catcode`\”=\active
\def”{\ifmmode\relax\else\origquote\fi}\fi
\pagestyle{empty}\begin{document}
\ifxetex\else
\shorthandoff{“}
\fi\centering
\textit{de”fgh}
\[
de”fgh
\]
\end{document}`
compilato con pdflatex produce:

Invece dovrebbe produrre:

LuCa
-
11 Marzo 2010 alle 9:03 #42885::
E \ifxetex lo butti? 🙂
`\begin{document}
\ifxetex\else
\shorthandoff{“}
\fi`
Ciao
Enrico🙁 no, non funziona ancora.
E certo che non funziona: metti troppo presto la definizione di ” attivo e \shorthandoff{“} lo disattiva. Diamo anche una buona ripulita:
`\documentclass[a4paper]{article}
\usepackage{ifxetex}\ifxetex
\usepackage{mathspec}
\usepackage{polyglossia}
\setmainlanguage{italian}
\setmathsfont(Digits,Latin,Greek){Hoefler Text}
\setmainfont[Mapping=tex-text]{Hoefler Text}
\else
\usepackage[utf8]{inputenc}
\usepackage[T1]{fontenc}
\usepackage[italian]{babel}
\fi\DeclareRobustCommand\activequote{\ifmmode\else”\fi}
\pagestyle{empty}\begin{document}
\ifxetex\else
\shorthandoff{“}
\catcode`\”=\active
\let”\activequote
\fi\centering
\textit{de”fgh}
\[
de”fgh
\]
\end{document}`
Ciao
Enrico
-
11 Marzo 2010 alle 9:10 #42886
-
-
AutoreRisposte
- Devi essere connesso per rispondere a questo topic.