dvips
Cejka Rudolf
xcejka00 at fee.vutbr.cz
Wed Apr 8 20:55:56 CEST 1998
Libor Hendrych (lhen3203 at ss1000.ms.mff.cuni.cz) wrote:
: Setkal jste se uz nekdo pri pouziti programu dvips32.exe (resp.
: dvips16.exe) dodavanem s instalaci emtexu s chybou:
: ! error while unpacking; more bits than required?
Ano, mne uz tento problem take trapi hodne dlouho. Uz pred delsi dobou
jsem na toto tema diskutoval s panem Olsakem. A jak tak koukam, udelal jsem
chybu, ze jsem se na teto konferenci o nicem nezminil...
Petr Olsak wrote:
: ... dvips 5.78 obsahuje stejnou chybu, jako dvips 5.66a sireny ve web2c
: 7.0. Jde o to, ze nepredpoklada, ze by fonty vkladane povelem
: %*Font: (takovy komentar vytvari METAPOST) mohly byt
: virtualizovane.
Diky teto odpovedi jsem se konecne podival do zdrojovek dvips.
A jak tak (zase) koukam, udelal jsem druhou chybu, ze jsem se nepodival driv.
Me zavery po kratsim profoukavani zdrojovek:
(Zavery jsou NEOVERENE a BEZ ZARUKY. Je mozne, ze jsem jeste na nektere
zpusoby prace MetaPostu zapomnel...)
** Driv jsem si take myslel, ze chyba je spise jen na strane dvips.
Velky podil na problemech ma ale i mpost.
** Prvni pripad zdrojovky *.mp, kdy nastane chyba:
draw btex \font\c=cmr10\c Ahoj clovicku etex;
Preklad skonci u dvitomp - predpokladam, ze dvitomp neumi pracovat
s virtualnimi fonty (coz cmr10 je).
** Druhy pripad zdrojovky *.mp, kdy nastane chyba:
draw "Ahoj nazdar" infont "cmr10";
Preklad skonci sice az u dvips, ale chyba je jiz na strane mpostu, ktery
nacita primo tfm. O existenci virtualnich fontu nema ani paru.
Takze pokud nahodou nekdo chce v mpostu pouzivat virtualni fonty, ktere
obsahuji znaky slozene z vice kousku, ma asi smulu. A vse nechat na dvips
take nelze - mpost musi mit informaci o velikosti sazenych znaku, coz
zjisti pouze z virtualniho fontu...
: Cesta k naprave (zatim provizorni) je dvoji:
: Bud nahradite text "%*Font: cmr.." za text "%*Font: csr.." v kazdem
: pouzitem eps souboru, nebo vyhodite z podstromu texmf/fonts/vf
: cely adresar cm2cs.
Mazat adresar cm2cs mi pripada zbytecne krute :-). Ja to resim tak, ze
kdyz chci prelozit *.mp s odkazy na cm fonty, nastavim promennou shellu
VFFONTS na aktualni adresar (+ export VFFONTS).
: Tento "bug-report" jsem uz nekolikrat posilal Rokickemu a Berrymu.
: Odpovedel mi Sebastian Rahtz: pry skutecnost, ze fonty volane pres
: komentar %*Font nemohou byt virtualizovane je "feature" a nikoli "bug".
: Nesdilim s nim stejny nazor. Bylo by potreba, aby i ostatni uzivatele,
: kteri nekdy videli hlasku "error while unpacking; more bits than
: required?" dali najevo, ze se jim to nelibi. Jen tak asi panove, kteri se
: > staraji o vyvoj dvips, prijdou na to, ze se nejedna o "feature", ale o
: "bug". Cim vice uzivatelu si bude stezovat na adresach
: Tomas Rokicki <rokicki at cs.stanford.edu>
: Karl Berry <kb at mail.tug.org>
: Sebastian Rahtz <Sebastian.Rahtz at cl.cam.ac.uk>
: tim lepe. Jine reseni zatim nevidim.
Takze nez nastane "bombardovani" autoru ohledne chyby v dvips:
Jako hlavni zpravu o chybe je potreba napsat, ze mpost a dvitomp (a jeste
neco?) neumeji pracovat s virtualnimi fonty. A v pripade, ze by mpost do
svych vystupnich souboru neukladal jiz prime odkazy na skutecne fonty,
pak druha chyba je nejspis i v dvips (ale treba take ne, ja nevim).
Moc se omlouvam, asi bych jim to mel poslat primo, ale kdyz uz jsme u chyb
v dvips: Program afm2tfm prepocitava vysky znaku (napr. "d") jako vysku
daneho znaku s nejakym akcentem (napr. "\v{d}") minus vyska akcentu (napr.
hacek). Pro cestinu se to projevuje hlavne tak, ze znaky "d" a "t" po
konverzi maji spatnou vysku a neni mozne je v TeXu ani rozumne oramovat.
(Puvodni zamer byl asi ten, aby sly vsechny znaky dobre akcentovat, jenze
to se preci v TeXu resi jinak, nez zmenou vysky znaku, ze?)
Uvadim maly patch pro dvipsk-5.66a (pro nove verze by se snad moc nelisil),
ktery pri zapnutem prepinaci "-L" vypne prepocitavani vysek znaku.
... Stale nevim, co na prepocitavani vysek znaku rikate vsichni ostatni, ale
podle meho nazoru je to take dost velika chyba.
... Dopis a patch bych rad poslal sam, jenze uz jednou mi Rokicki neodpovedel
vubec a sam ted do konce skolniho roku bych mel delat uplne jine veci.
Proto moc prosim, kdo bude psat o chybe mpost/dvips, pripojte i toto:
Prevelike diky.
----------------------------------------------------------------------
--- afm2tfm.c
***************
*** 1153,1158 ****
--- 1153,1159 ----
/* For TeX we want to compute a character height that works properly
* with accents. The following list of accents doesn't need to be complete. */
+ int changeheights = 1 ;
/*
* We only do this if the xheight has a reasonable value.
* (>50)
***************
*** 1164,1171 ****
{
register char **p;
register struct adobeinfo *aci, *acci ;
! if (xheight <= 50 || *(ai->adobename + 1)) return (ai->ury) ;
! /* that was the simple case */
for (p=accents; *p; p++) /* otherwise we look for accented letters */
if (0 != (aci=findadobe(*p))) {
strcpy(buffer,ai->adobename) ;
--- 1165,1172 ----
{
register char **p;
register struct adobeinfo *aci, *acci ;
! if (!changeheights || xheight <= 50 || *(ai->adobename + 1))
! return (ai->ury) ; /* that was the simple case */
for (p=accents; *p; p++) /* otherwise we look for accented letters */
if (0 != (aci=findadobe(*p))) {
strcpy(buffer,ai->adobename) ;
***************
*** 1477,1482 ****
--- 1478,1484 ----
\n\
-c REAL use REAL for height of small caps made with -V [0.8]\n\
-e REAL widen (extend) characters by a factor of REAL\n\
+ -L leave original character heights\n\
-O use octal for all character codes in the vpl file\n\
-p ENCFILE read/download ENCFILE for the PostScript encoding\n\
-s REAL oblique (slant) characters by REAL, generally <<1\n\
***************
*** 1578,1583 ****
--- 1580,1589 ----
break ;
case 't':
outenname = argv[3] ;
+ break ;
+ case 'L':
+ changeheights = 0 ;
+ arginc = 1 ;
break ;
case 'O':
forceoctal = 1 ;
----------------------------------------------------------------------
----------------------------------------------------------------------
Rudolf Cejka, VUT Brno (Fakulta Informatiky)
E-mail: xcejka00 at stud.fee.vutbr.cz
WWW: http://www.stud.fee.vutbr.cz/~xcejka00
More information about the csTeX
mailing list