Kdyz jsem zkusil nekolik verzi balicku lettersp* (viz prilozene zdrojaky),
tak se sice prolozene pismo objevilo, ale nechtelo se mrcha zalomit a
psalo to ten prolozeny text do jednoho nekonecneho radku. Balicek
letterspace.sty mi dokonce hlasi "Argument of \m@kespaceexplicit has an
extra }.". (BTW: Maji se tady opravdu psat obe ty tecky?)
Kdysi jsem zkousel i makro \prostrkej od pana Olsaka (TeXbook naruby,
TBN). To sice zalamovalo radky, ale nekdy taky ne. Tedka mi to hlasi na
^^X neznamy znak (viz chybovy vypis dole; Nevite nekdo co s tim?), takze
ho ani nemuzu vyzkouset. Soubor prostrkej.sty obsahuje presne radky
189-206 z TBN str. 106. Drive jsem to delal pro EmTeX a ted pro pocesteny
tetex-1.0.7-66 (RedHat Linux 9).
V TBN mi pak p. Olsak radi, ze pokud bych chtel i deleni slov, musim na to
jit pres virtualni fonty, kteryzto pojem je pro mne jako vlasovy vstavac.
Predem dekuji za rady, napady, popr. nasmerovani,
JH
---------------------------------------------------------------------------
$ cslatex Prolozene.tex && dvips Prolozene
This is TeX, Version 3.14159 (Web2C 7.3.1)
(/usr/share/texmf/web2c/il2-cs.tcx)
(Prolozene.tex
LaTeX2e <2001/06/01>
Loading CZ hyphenation patterns: Pavel Sevecek, v3, 1995
Loading SK hyphenation patterns: Jana Chlebikova, 1992
(/usr/share/texmf/tex/latex/base/article.cls
Document Class: article 2001/04/21 v1.4e Standard LaTeX document class
(/usr/share/texmf/tex/latex/base/size10.clo)) (prostrkej.sty
! Text line contains an invalid character.
l.4 ...oup\let\pp=\relax\let\next=\strk \strk#1^^X
}
? x
No pages of output.
Transcript written on Prolozene.log.
Jan Holub wrote:
> V TBN mi pak p. Olsak radi, ze pokud bych chtel i deleni slov, musim na to
> jit pres virtualni fonty, kteryzto pojem je pro mne jako vlasovy vstavac.
ani nemusi byt virtualni, Karel Horak ma prolozene cs fonty pod nazvem csrr
zcela nevirtualni. Proste vzal cmr10.mf a zmenil nektere parametry.
Podrobneji by mohl napsat on sam, pripadne i poslat prislusne fonty.
Problem je, ze byste musel rici, ktere fonty chcete prostrkat. Jen z rodiny
CS, nebo nejake postscriptove?
Mejte se,
Stepan Kasal
Podstata reseni je v tom, ze se mezi znaky prida nejaka dodatecna mezera.
To ovsem pusobi znacne problemy pri dalsim zpracovani odstavce, protoze
se ztraci informace o slovu jako celku. Pokud by melo fungovat i
automaticke deleni slov, t.j. treti pruchod algoritmem radkoveho
zlomu, muselo by to byt nejake velice sofistikovane makro.
Naproti tomu, pokud jsou ty zvetsene mezery mezi znaky soucasti
metriky fontu, TeX je vubec nevnima a vsechny jeho algoritmy zlomu
funguji normalne bez jakychkoliv problemu. Proto je reseni pomoci
virtualniho fontu mnohem cistsi, snadnejsi a pro rutinni pouzivani
prostrkaneho textu asi jedine vhodne.
Nedovedu si ted vybavit, jestli je nekde v ceske literature podrobnejsi
popis tvorby virtualniho fontu, treba nekdo napovi.
Neni mne prilis jasne, proc Vase instalace odmita znak ^^X, ale mozna
novejsi verze LaTeXu tyhle znaky definuji z nejakeho duvodu
jako nedovolene (catcode 15). Petr Olsak obvykle ve svych makrech
pouziva ^^X jako "ostatni znak" (catcode 12), ktery se nikdy
nevyskytne ve zpracovavanem textu. Priradi se na konec a pak se
testem na nej ukoncuje zpracovani parametru. Zkuste ho nahradit
nejakym jinym "ostatnim" znakem, ktery se ve vasich prostrkanych textech
urcite nevyskytne, a pritom nebude chapan jako nedovoleny.
Treba znak " (uvozovky) by se v beznych TeXovych zdrojacich take nemel
vyskytovat.
S pranim uspechu,
Lubos Kloc
Jan Holub wrote:
> Dobry den,
> potreboval bych do textu dostat prolozene pismo. Vim, ze se mu ma clovek
> vyhnout, ale v mem pripade je to zavedena konvence.
>
> Kdyz jsem zkusil nekolik verzi balicku lettersp* (viz prilozene zdrojaky),
> tak se sice prolozene pismo objevilo, ale nechtelo se mrcha zalomit a
> psalo to ten prolozeny text do jednoho nekonecneho radku. Balicek
> letterspace.sty mi dokonce hlasi "Argument of \m@kespaceexplicit has an
> extra }.". (BTW: Maji se tady opravdu psat obe ty tecky?)
>
> Kdysi jsem zkousel i makro \prostrkej od pana Olsaka (TeXbook naruby,
> TBN). To sice zalamovalo radky, ale nekdy taky ne. Tedka mi to hlasi na
> ^^X neznamy znak (viz chybovy vypis dole; Nevite nekdo co s tim?), takze
> ho ani nemuzu vyzkouset. Soubor prostrkej.sty obsahuje presne radky
> 189-206 z TBN str. 106. Drive jsem to delal pro EmTeX a ted pro pocesteny
> tetex-1.0.7-66 (RedHat Linux 9).
>
> V TBN mi pak p. Olsak radi, ze pokud bych chtel i deleni slov, musim na to
> jit pres virtualni fonty, kteryzto pojem je pro mne jako vlasovy vstavac.
>
> K odpovedi se jaksi nikdo nema, tak bych zkusil alespon nekolik obecnych
> poznamek, protoze jsem plainista a v baliccich LaTeXu se moc nevyznam.
>
LaTeXove balicky to v principu delaji stejne jako makro Petra Olsaka z
TBN.
> Podstata reseni je v tom, ze se mezi znaky prida nejaka dodatecna mezera.
> To ovsem pusobi znacne problemy pri dalsim zpracovani odstavce, protoze
> se ztraci informace o slovu jako celku. Pokud by melo fungovat i
> automaticke deleni slov, t.j. treti pruchod algoritmem radkoveho
> zlomu, muselo by to byt nejake velice sofistikovane makro.
Natolik sofistikovane makro si nedovedu predstavit.
> Naproti tomu, pokud jsou ty zvetsene mezery mezi znaky soucasti
> metriky fontu, TeX je vubec nevnima a vsechny jeho algoritmy zlomu
> funguji normalne bez jakychkoliv problemu. Proto je reseni pomoci
> virtualniho fontu mnohem cistsi, snadnejsi a pro rutinni pouzivani
> prostrkaneho textu asi jedine vhodne.
> Nedovedu si ted vybavit, jestli je nekde v ceske literature podrobnejsi
> popis tvorby virtualniho fontu, treba nekdo napovi.
>
Urcite v TST. PL by se dal jednoduchym skriptem prevest na VPL, zvetsily
by se sirky znaku, zustal by kerning, musely by se vyhazet ligatury, a
pokud by vadilo, ze zvetsena mezera by se vkladala vzdy za znak, pridal by
se posun na vycentrovani. Da se to napsat v libovolnem skriptovacim jazyce
za par minut.
> Neni mne prilis jasne, proc Vase instalace odmita znak ^^X, ale mozna
> novejsi verze LaTeXu tyhle znaky definuji z nejakeho duvodu
> jako nedovolene (catcode 15). Petr Olsak obvykle ve svych makrech
Uvedomte si, ze jen nekolika znakum prirazuje kategorii tex, zbytek se
nastavuje ve formatu. Je prirozene, ze laTeX nastavi neco jinak nez plain.
Ja jsem si zminene makro z TBN ulozil do souboru proklad.tex a na jeho
zacatek jsem pripsal \catcode 24=12
Zdenek Wagner
e-mail: wag...@cesnet.cz
see also http://hroch486.icpf.cas.cz/wagner/
http://icebearsoft.euweb.cz
Problem s odmitani znaku ^^X byl opravdu v tom, ze tedka je v LaTeXu ^^X v
kategorii zakazanych znaku. Zmena kategorie na "ostatni znak" pomohla.
Prozatim jsem vystacil s makrem p. Olsaka, nicmene uvnitr nelze pouzit
dalsi makro, takze treba "\`A la garre" a "A \textbf{byl} to gol" pusobi
problemy. To budu resit jinak. Horsi je to s nemoznosti deleni slov. Tam
se asi casem budu muset priklonit k jednomu s nasledujicich reseni:
1. virtualni font, o kterem p. Kloc tvrdi, ze
> funguji normalne bez jakychkoliv problemu. Proto je reseni pomoci
> virtualniho fontu mnohem cistsi, snadnejsi a pro rutinni pouzivani
> prostrkaneho textu asi jedine vhodne.
> Nedovedu si ted vybavit, jestli je nekde v ceske literature podrobnejsi
> popis tvorby virtualniho fontu, treba nekdo napovi.
Pokud by mi nekdo mohl doporucit nejakou peknou ucelenou literaturu o
tvorbe a pouziti vitrualniho fontu a to jak cesky tak anglicky, bych bych
mu tez povdecen.
2. vzit si nejaky font a upravit jeho metriku.
Ani u jednoho reseni zatim nevim, co me ceka, tak se necham prekvapit.
Jan Holub
> Prozatim jsem vystacil s makrem p. Olsaka, nicmene uvnitr nelze pouzit
> dalsi makro, takze treba "\`A la garre" a "A \textbf{byl} to gol" pusobi
> problemy. To budu resit jinak. Horsi je to s nemoznosti deleni slov. Tam
> se asi casem budu muset priklonit k jednomu s nasledujicich reseni:
>
Tucne pismo je problem, to se da resit jedine pomoci \prostrkej{A
}\textbf{\prostrkej{byl}}\prostrkej{ to gol!}. \`A la garre se da napsat
prolozene, pokud pouzijete font s kodovanim T1 nebo XL2, kde \`A je jako
jediny znak. Vyresi se to timto trikem:
\edef\mujtext{\`A la garre}
\expandafter\prostrkej\expandafter{\mujtext}
>
> 1. virtualni font, o kterem p. Kloc tvrdi, ze
>
> > funguji normalne bez jakychkoliv problemu. Proto je reseni pomoci
> > virtualniho fontu mnohem cistsi, snadnejsi a pro rutinni pouzivani
> > prostrkaneho textu asi jedine vhodne.
> > Nedovedu si ted vybavit, jestli je nekde v ceske literature podrobnejsi
> > popis tvorby virtualniho fontu, treba nekdo napovi.
>
> Pokud by mi nekdo mohl doporucit nejakou peknou ucelenou literaturu o
> tvorbe a pouziti vitrualniho fontu a to jak cesky tak anglicky, bych bych
> mu tez povdecen.
>
V cestine zkuste Typograficky system TeX on Petra Olsaka, anglicky napr.
http://www.cl.cam.ac.uk/users/rf/pstex/virtualfonts.htm, pripadne napiste
na Google "virtual fonts" a vyleze Vam pres 7000 odkazu (zdaleka ne
vsechny jsou uzitecne).
>
> 2. vzit si nejaky font a upravit jeho metriku.
>
To bych radsi resil virtualnim fontem.
>
>
>
> 1. virtualni font, o kterem p. Kloc tvrdi, ze
>
> > funguji normalne bez jakychkoliv problemu. Proto je reseni pomoci
> > virtualniho fontu mnohem cistsi, snadnejsi a pro rutinni pouzivani
> > prostrkaneho textu asi jedine vhodne.
Nie som si tak uplne isty, ci to bude skutocne fungovat. Zdalo sa mi, ze
napr. dviscr neulozi kazde pismeno tam kam ma, ale jednoducho ich do riadka
nasype a ulozia sa
podla sirok .pk fontov. Cize ked som text vysadil uzkymi pismenami a potom
ich nahradil sirokymi .pk fontami neprekryvali sa, ale sa predlzil riadok.
Zda sa mi, ze vyrobit virtualny font, alebo upravit metriku je viacmenej to
iste.
Inac som virtualne fonty uz vyrabal. Je to strasne jednoduche. Ich .pl
varianty
su na prvy pohlad zrozumitelne a su takmer totozne s metrikami, len su tam
este mapovacie prikazy. Vo Vasom pripade zrejme treba len zvacsit sirku
pismen. Kam, sa ale potom presne posadi realne uzsie pismeno je mi
zahadou. Rozhodne napiste pre vsetkych ked to budete mat hotove.
Vela uspechov praje
A. Surda
> > Nedovedu si ted vybavit, jestli je nekde v ceske literature podrobnejsi
> > popis tvorby virtualniho fontu, treba nekdo napovi.
>
> Pokud by mi nekdo mohl doporucit nejakou peknou ucelenou literaturu o
> tvorbe a pouziti vitrualniho fontu a to jak cesky tak anglicky, bych bych
> mu tez povdecen.
>
>
> 2. vzit si nejaky font a upravit jeho metriku.
>
>
Jen me tak napadlo, nepomohlo by:
\prostrkej{A {\bfseries byl} to gol!}?
V plainu by to s \bf takhle slo, ale nevim jestli v tom NFSS nema
i takto nekde schovane makro s parametrem.
Lubos Kloc
> Jen me tak napadlo, nepomohlo by:
> \prostrkej{A {\bfseries byl} to gol!}?
>
> V plainu by to s \bf takhle slo, ale nevim jestli v tom NFSS nema
> i takto nekde schovane makro s parametrem.
>
Pokud si zapnete \tracingmacros, dost se zdesite, co vse \bfseries
vyprodukuje. Ja bych to radeji nepokousel.
> Lubos Kloc
> Nie som si tak uplne isty, ci to bude skutocne fungovat. Zdalo sa mi, ze
> napr. dviscr neulozi kazde pismeno tam kam ma, ale jednoducho ich do riadka
> nasype a ulozia sa
dviscr je dost stary program, je mozne, ze nema dobre udelanou podporu
virtualnich fontu. Zkuste prohnat DVI programem dvicopy, tim se
virtualnich fontu zbavite a mely by tam vzniknout explicitni prikazy pro
ulozeni znaku na presne pozice.
> podla sirok .pk fontov. Cize ked som text vysadil uzkymi pismenami a potom
> ich nahradil sirokymi .pk fontami neprekryvali sa, ale sa predlzil riadok.
>
> Zda sa mi, ze vyrobit virtualny font, alebo upravit metriku je viacmenej to
> iste.
>
Neni. Ovladace nejsou povinny cist TFM u skutecnych (nevirtualnich) fontu,
protoze dostatek informaci je ve fontu samotnem, zatimco TeX nezna tvary
pismen ani VF, ale jen TFM. Pokud upravite jen metriku, bude TeX pri
zalamovani pracovat s jinymi udaji nez DVI ovladac. Konkretne dviscr,
dvipm, dvidot a dvihplj vubec nectou metriky, dvips metriky vyzaduje.
Jan Holub wrote:
> 1. vf
> 2. vzit si nejaky font a upravit jeho metriku.
Nechapu, proc neuvadite jako moznost upravy parametru v *.mf souboru,
jak to delal dr. Horak. To je, pokud vim, zmena nekolika malo cisel
a jednoho identifikatoru v souboru cmr10.mf.
ALe vyzaduje to chytit Horaka, a to neni lehke. ;-)
Nebo potrebujete nutne ps fonty?
Stepan
Zdenek Wagner wrote:
> \edef\mujtext{\`A la garre}
> \expandafter\prostrkej\expandafter{\mujtext}
mne by pripadalo jednodussi
\edef\mujtext{\noexpand\prostrkej{\`A la garre}}
\mujtext
Zdravim,
Stepan Kasal
Zdenek Wagner wrote:
>> automaticke deleni slov, t.j. treti pruchod algoritmem radkoveho
>> zlomu, muselo by to byt nejake velice sofistikovane makro.
>
> Natolik sofistikovane makro si nedovedu predstavit.
coz o to, predstavit si ho dokazu, ale psat bych ho nechtel.
Nejprve TeX donutite slovo rozdelit, pak na prislusna mista vlozite \-.
V TBN je myslim priklad jak vysadit odstavec s naznacenymi misty zlomu.
spociva to tusim v tom, ze se udela hsize 0 a pak vznikne vbox, kde
kazdy zlomek slova je na zvlastni radce.
V tom prikladu v TBN se to jen pospojuje a vytiskne, v nasem pripade bychom
ovsem museli zjistit, kde ve slove nastal zlom. To bychom udelali tak,
ze bychomvzali $i$ pocatecnich pismen slova (i=1,2,3,...), pridali delici
znamenko a porovnali sirku boxu. Tak bychom odlomili prvni kousek a
pokracovalo by se s dalsim. Pak lze vzit kousky, dat mezi ne \- a je to.
Vsadim se, ze tabulky v LaTeXu jsou mnohem horsi magie nez tohle.
Stepan
>
> On Wed, 21 Apr 2004, Anton Surda wrote:
>
> > Nie som si tak uplne isty, ci to bude skutocne fungovat. Zdalo sa mi, ze
> > napr. dviscr neulozi kazde pismeno tam kam ma, ale jednoducho
> ich do riadka
> > nasype a ulozia sa
>
> dviscr je dost stary program, je mozne, ze nema dobre udelanou podporu
> virtualnich fontu. Zkuste prohnat DVI programem dvicopy, tim se
> virtualnich fontu zbavite a mely by tam vzniknout explicitni prikazy pro
> ulozeni znaku na presne pozice.
>
Nie to som mal na mysli. Tvrdim, ze dviscr neumiestnuje pismena na miesta,
ktore mu urcil TeX. Ked si vytvorim novy font csur10.tfm totozny s csr10.tfm
a csur10.pk totozny a csbx10.pk
tak vo vzniknutom texte sa nebudu prilis siroke pismena prekryvat, ale
jednoducho len pretecu riadky a text bude v podstate vyzerat ako keby bol
sadzany pomocou csbx10.tfm.
Preto podla mna mozu vybuchnut aj predtym spominane triky prestrkanym
textom. Pripadne
rozne ovladace by mohli dat rozne vysledky. Nemali by sa pekne zmenit uz
metafontove zdrojaky?
Zdravi
Anton Surda
Myslim, ze tady dochazi k nedorozumeni. TeX neurcuje explicitne v DVI
polohu kazdeho znaku. Ovladace si ctou posunuti aktualniho bodu sazby
primo z fontu, pripadne to mohou cist z TFM. V praxi je to jedno,
protoze ty rozmery MUSI byt stejne. Zakladni podminkou
funkcnosti kazdeho (i virtualniho) fontu je, ze metricke informace
ve fontu i v TFM jsou identicke.
Vas csur10 tedy neni TeXovsky font, ale paskvil ktery ma ve fontu
jine rozmery nez v TFM. Nemuze proto radne fungovat.
Zmenu metriky fontu NELZE provest jen zmenou TFM, takze pokud jste chtel
rici tohle, mate samozrejme pravdu.
S pozdravem,
Lubos Kloc
> Nie to som mal na mysli. Tvrdim, ze dviscr neumiestnuje pismena na miesta,
> ktore mu urcil TeX. Ked si vytvorim novy font csur10.tfm totozny s csr10.tfm
> a csur10.pk totozny a csbx10.pk
Vy jste nevytvoril font, ale pouze metriku k neexistujicimu fontu. TeX
nepozna, ze font neexistuje, protoze cte pouze metriku, o nic jineho se
nezajima. Za predpokladu, ze za znakem nenasleduje kerning ani mezera,
vlozi TeX do DVI prikaz, ktery znamena: "na aktualni pozici sazby vloz
pismeno X z fontu Y a posun aktualni pozici sazby vpravo o sirku pismene".
Dviscr pak presne splni tento prikaz. Sirka pismene je ulozena v *.pk,
takze neni duvod, proc by ovladac mel cist tfm. Jine je to v pripade
virtualnich fontu. Odpovidajici vf i tfm maji stejne metricke informace.
TeX si precte pouze metriku a vklada do DVI prikazy stejneho typu. Ovladac
nenajde font, ale najde vf, kde jsou metricke informace i navod, jak se
virtualni pismeno slozi ze skutecnych objektu. Zde ovladac zjisti, ze
pozadovana sirka je jina nez sirka znaku v pk, proto vlozi odpovidajici
mezeru.