Ceske uvozovky a deleni slov

Petr Olsak olsak at math.feld.cvut.cz
Wed Nov 28 11:35:41 CET 2001


On Tue, 27 Nov 2001, Marek Pomp Katedra Mat. PrF wrote:

> > Je rada ruznych reseni (uz zminene \uv{...} bohuzel likviduje kerning),
> > J. Tkadlec
>
> Mohli byste mne nekdo poucit kde (jak a proc uz se da pak domyslet)
> mizi kerning pri pouziti \uv{...} predpokladal jsem kerningovy par
> napr. A\crqq resp \clqq V, ale na nic takoveko jsem nenarazil.
> Marek Pomp

Otazka ma dve casti:
1. proc mizi kerning pri pouziti \uv,
2. proc neni kerning mezi A\crqq.

ad 1:
to je zavisle na definici makra \uv. Pokud definujete

  \chardef\clqq=kod znaku s levou uvozovkou
  \chardef\crqq=kod znaku s pravou uvozovkou
  \def\uv#1{\clqq#1\crqq}

pak zadny kerning nemizi. V csplainu jsou \clqq a \crqq definovany jako
kody uvozovek podle csfontu, ALE je tam jiny \def\uv:

  \def\uv{\bgroup\aftergroup\closequotes\leavevmode\clqq\let\next=}
  \def\closequotes{\unskip\crqq\relax}

coz je definice, ktera se snazi o to, aby v argumentu \uv mohly byt
verbatim konstrukce (tj. zmeny kategorii). Toto makro nici kern
s levou uvozovkou (je tam mezi temi znaky prikaz \let\next=
na zlikvidovani oteviraci svorky). To by se dalo obejit pomoci
\afterassigment, ale s pravou uvozovkou to timto zpusobem nebude kernovat
nikdy, i kdyz bych odstranil \unskip v definici \closequotes.

Z duvodu zpetne kompatibility si nemohu dovolit v nove verzi plainu
definovat \uv proste \def\uv#1{\clqq#1\crqq}, aby zacaly fungovat kerny
z obou stran. Jednoduse proto, ze existuji dokumenty v csplainu, ktere se
opiraji o definici \uv a maji uvnitr verbatim konstrukce. Tyto dokumenty
by v takove nove verzi csplainu prestaly fungovat, a to nesmim dopustit.

Proto vsem, kdo chce dodrzet kerningy z obou stran, radim na zacatek
dokumentu napsat \def\uv#1{\clqq#1\crqq} a tim predefinovat vnitrni
definici csplainu. Kdo to udela, tomu bude take jasne, ze v argumentu \uv
nesmi pouzit verbatim konstrukce.

Makro \uv v csLaTeXu a v czech.sty melo jeste bohatsi a spontannejsi
vyvoj, takze veci jsou jeste komplikovanejsi. Nicmene i zde by v zasade
pomohlo nekam nahoru napsat \def\uv#1{\clqq#1\crqq}.

ad 2: Zda kernuje A\crqq zalezi na fontu. Pokud jde o csfont, pak tyto dva
znaky nekernuje. Viz tftopl csr10 | less (znaky O 376 a O 377). Z duvodu
zpetne kompatibility asi nebude kernovat nikdy, protoze doplnovanim novych
kernu do pouzivaneho fontu by vznikly verze, ktere zpusobi zcela jine
zalomeni dokumentu v budoucnu, nez v casech minulych.  A tomu se chci
vyhnout. Zvlaste u fontu, ktery je jakymsi "etalonem" pro cestinu v TeXu a
prebira veskere vlastnosti od CM fontu, tj. i tu vlastnost, ze je zmrazen
jeho vyvoj.

Vytka pana Tkadlece, ze by se z estetickych duvodu mel v ramci stejne
sirky znaku posunout jen obraz uvozovky v csfontech je prijatelna a mozna
k tomu dojde.

Nicmene: pokud se nekdo zacne zamyslet nad takovymi "vlasovymi problemy"
v pismu, ktere pouziva, pak mu jednoznacne radim: pouzijte jiny font,
ktery muze prinest daleko vetsi estetickou hodnotu nez csfont. Pokud ale
mate potrebu pouzit zrovna statickou antikvu a zrovna Computer Modern a
nelibi se Vam nektere kerny, udelejte si vlastni variantu tohoto fontu a
nazvete si jej jinak. TeX je otevreny system a toto umoznuje.

Petr Olsak





More information about the csTeX mailing list