[cstex] Konflikt mezi babel a mathspec

Pavel Striz striz at fame.utb.cz
Tue Mar 15 10:25:31 CET 2011


Hezké dopoledne,

zajímavé a příjemné odstřelení procesoru hned po ránu. :-D

Nefunguje ani při zapnutí english v babelu, pokud je babel načítán po balíčku mathspec.

Dokumentace mathspec.pdf hovoří o tom (str. 10), že \alpha se automaticky expanduje na {"α}, což je pro ně obecný zápis na vložení kerningu. Je to tam i s ukázkami. Pozn. autor tam píše o nutnosti testů pokud za " není znak, neb je to založené na primitivu \XeTeXcharglyph.

Chování " a \" definují řádky 814 až 850 v mathspec.pdf, str. 28. Tohle však volba  \selectlanguage{czech} předefinovává. Je to poznat tak, že \alpha funguje, pokud obalíme \selectlanguage{czech} i s českým textem do skupiny.

Pracovní řešení by mohlo být, že do těla dokumentu, či za každý příkaz \selectlanguage{czech} při užití více jazyků, si dáte:
\makeatletter \let"=\eu at active@quote \makeatother

To už tak pracné není, neb si lze připravit:
\def\macestina{%
  \selectlanguage{czech}%
  \makeatletter \let"=\eu at active@quote \makeatother%
  }
a všude místo \selectlanguage{czech} jen píšete \macestina.

K dlouhodobému řešení této situace se netroufám vyjádřit, neb " má svůj význam u volby czech/slovak, a tu jsem právě pracovně eliminoval. Možná by stálo za hřích nahlédnout na everymath a \let"=\eu at active@quote lokálně aktivovat jen při vstupu do matematického režimu. S touto nutností se určitě řada TeXistů již setkala.

S pozdravy PS



-----Původní zpráva-----
Od: cstex-bounces+striz=fame.utb.cz at cs.felk.cvut.cz [mailto:cstex-bounces+striz=fame.utb.cz at cs.felk.cvut.cz] za uživatele Pavel Satrapa
Odesláno: 15. března 2011 8:39
Komu: 'Czech and Slovak TeX-related mailing list'
Předmět: [cstex] Konflikt mezi babel a mathspec

Dobrý den,

narazil jsem na problém s řeckými znaky ve vzorcích. Pokud pomocí 
mathspec nastavím OpenType písmo pro řečtinu, XeLaTeX se při zpracování 
na příkazu pro řecký znak zasekne - procesor jede na plno, ale překlad 
stojí na místě, dokud jej člověk nepřeruší.

Problém nejspíš není s fontem - zkoušel jsem dva z různých zdrojů 
(Comenia Serif Pro od Štorma a volný Liberation Serif) a pro oba se 
chová stejně.

Je to jen pro řecké znaky - písmena a číslice ve vzorcích fungují bez 
problémů - a jen při použití \usepackage[czech]{babel}. Přikládám 
minimalistický zdrojový kód, který problém způsobí, a log. Instalace je 
TeX Live 2010 pod Linuxem.

Dá se to obejít, když člověk místo \alpha vloží do zdrojového textu 
přímo příslušný znak v UTF-8, ale raději bych znal nějaké řešení, při 
kterém budou tyto příkazy fungovat jak mají. Nesetkal jste se s tím 
někdo? S Googlem jsem neuspěl...

Přeji všem pěkný den
Pavel Satrapa



___ Information from ESET Mail Security, ver. 5953 (20110314) ___
The message was checked by ESET Mail Security. www.eset.com






More information about the csTeX mailing list