Ho capito. Infatti, con $f”(x)$ la compilazione si blocca. Aspetto fiducioso uno dei tuoi proverbiali incantesimi.
Va modificata la definizione di \pr@m@s, perché occorre fare il confronto con ‘ attivo e non di categoria 12. Versione “definitiva”:
`\makeatletter
\catcode`\'=12
\def\qu@te{'}
\catcode`'=\active
\begingroup
\obeylines\obeyspaces%
\gdef\@resetactivechars{%
\def^^M{\@activechar@info{EOL}\space}%
\def {\@activechar@info{space}\space}%
}%
\endgroup
\protected\def'{\relax
\ifmmode
\expandafter^\expandafter\bgroup\expandafter\prim@s
\else
\expandafter\futurelet\expandafter\@let@token\expandafter\qu@t@
\fi}
\def\qu@t@{%
\ifx'\@let@token
\qu@te\qu@te\expandafter\@gobble
\else
{}\qu@te{}\penalty\@M\hskip\expandafter\z@skip
\fi}
\scantokens\expandafter{%
\expandafter\def\expandafter\pr@m@s\expandafter{\pr@m@s}}
\makeatother`
Occorreva anche rivedere la definizione di \@resetactivechars, per tener conto del nuovo significato di ‘; invece di un \DeclareRobustCommand uso in modo più efficiente le estensioni e-TeX. Così sui file ausiliari l’apostrofo compare come tale. Ovviamente tutto va a pallino se si usa il modulo spagnolo di babel, che rende attivo l’apostrofo. 🙁 Ma questa caratteristica può essere disabilitata. 🙂Per chi è curioso, \scantokens legge la lista di token che trova come argomento secondo i codici di categoria attuali, come se facesse \input di un file. L’argomento, che si ottiene seguendo tutti gli \expandafter è
`\def\pr@m@s{}`
e adesso, quando TeX legge l’argomento di \scantokens, l’apostrofo è attivo. Così mi evito di copiare la definizione da latex.ltx. 😉Ciao
Enrico
E come per magia, è arrivato l’incantesimo 😀
Funziona perfettamente, anche mettendo lo spagnolo sia come prima lingua sia come seconda lingua. Anche nell’ambiente otherlanguage tutto funziona correttamente. E la stessa cosa vale per la modalità matematica. 😕
Sarebbe bene che gli autori del pacchetto MinionPro integrassero questo codice; così com’è il pacchetto non va. Oppure che ne dici di un mini pacchetto “egMinion”?
Ciao e grazie
Ivan