Jiny zpusob visiciho rozdelovniku?

Vit Zyka vit.zyka at seznam.cz
Sat Dec 11 18:26:44 CET 2004



Matous Jan Fialka wrote:
> On 11/12/04 16:47 +0100 or thereabouts, Vit Zyka wrote:
>
>>Matous Jan Fialka wrote:
>>
>>>>>v TBN jsem se docetl, ze spojovnik, ma-li "viset" ven ze sazby pri
>>>>>rozdeleni
>>>>>slova, se musi predefinovat v metrikach fontu. Resp. musi se predefinovat
>>>>>ten zastupnej znak na pozici 156. Zajimalo by mne, proc se mi nedari ho
>>>>>vystrcit ven stejne jako treba tu tecku a carku? Jak na to? Proc je nutne
>>>>>zasahnout do metrik fontu u znaku na pozici 156, kdyz u tecky ani carky
>>>>>to
>>>>>nutne neni? Opravdu to nejde udelat bez zasahu do te metriky? Rad bych se
>>>>>tomu z ruznych duvodu vyhnul.
>>>>>
>>>>>Dekuji predem za vysvetleni cele problematiky, nemam v tom jaksi jasno, a
>>>>>uvitam napady, ktere by me oprostily od nutnosti menit tu metriku.
>>>>
>>>>Jednim tipem je prejit na pdfTeX (treba i s generovanim dvi),
>>>>a zacit vyuzivat vymozenosti primitivu \pdfprotrudechars, \lpcode a
>>>>\rpcode.
>>>>To Vam umozni nezavisle na metrice definovat kolik
>>>>promile sirky standardni sirky znaku bude prostrceno
>>>>"ven z tiskoveho zrcadla", pokud se dany znak vyskytne
>>>>na levem (\lpcode) a pravem (\rpcode) okraji.
>>>
>>>dekuji za podnetny tip, clanek si urcite prectu. Zel na PdfTeX
>>>pravdepodobne
>>>neprejdu, nebot PDF nepouzivam.
>>
>>Castym omylem (zvlaste konzervativnich uzivatelu) je domnenka, ze pdfTeX
>>slouzi POUZE ke generovani PDF. Neni to pravda: pri \pdfoutput=0 je (mel
>>by) byt 100% kompatibilni s TeXem az na to, ze mate k dispozici nekolik
>>primitivu navic. Mikrotypograficke rozsireni se zavesenou interpunkci k
>> nim patri.
>>
>>Kdo jiz pouziva TeXLive 2004, tak (la)texuje VZDY pdfetexem, at spousti
>>pdftex, tex, latex, csplain, pdfcsplain, cslatex, ...
>>
>>
>>>Spis by me zajimalo, proc mi ten znak 156 nejde vystrcit ven. Mozna to mam
>>>jen blbe napsane. Hexa to je 9c (printf "%x" 156), takze zkousim toto:
>>>
>>>\hyphenchar\font=156
>>>\newdimen\wbla \setbox0=\hbox{\char"9c} \wbla=\wd0
>>>\def\bla{\char"9c\kern\-wbla \kern\wbla} \catcode`^^9c=13 \let^^9c=\bla
>>
>>Zde je preklep          ^^
>>ale vysledek neovlivni. Domnivam se, ze \discretionary{\hyphenchar}{}{},
>>ktere se automaticky vlozi na misto zlomu, nenastavuje kategorii znaku.
>>Hyphenchar tedy neni aktivni.
>>
>>Zde je minimalni ale uplna verze pro testovani. Reseni se zavesenou
>>interpunkci pomoci pdfTeXu je na konci testu.
>>
>>------------------------------------
>>\hsize=7cm
>>
>>\hyphenchar\font=156
>>\newdimen\whyph \setbox0=\hbox{\char156} \whyph=\wd0
>>\def\prothyph{\char156\kern-\whyph \kern\whyph} \catcode`\^^9c=13
>>\let^^9c=\prothyph
>>
>>\def\protcomma{,\kern-\whyph \kern\whyph} \catcode`^^2c=13
>>\let^^2c=\protcomma
>>
>>% manually
>>Coming back to the use of typefaces in
>>electronic publishing: many of the new typog^^9c raphers
>>receive their knowledge and\dots
>>
>>% original
>>Coming back to the use of typefaces in
>>electronic publishing: many of the new typographers
>>receive their knowledge and\dots
>>
>>% protrude pomoci pdfTeXu (vypocet spravne hodnoty zaveseni
>>% nechavam za domaci ukol: 1000=1em)
>>\pdfprotrudechars=2
>>\rpcode\font`\^^9c=300
>>Coming back to the use of typefaces in
>>electronic publishing: many of the new typographers
>>receive their knowledge and\dots
>>
>>\input zapf
>>
>>\end
>>-------------------------------------------
>
> Dekuji za naprosto vycerpavajici vyklad, ale neni mi stale jasne jedna vec

Ten vyklad neni vycerpavajici, uvedl jsem jen domnenku vysvetleni. Ted
mne napadlo si kategorii vypsat a ukazuje se, ze jsem se mylil:
   \message{<hyph:\expandafter\the\expandafter\catcode\hyphenchar\font>}
vypise
   <hyph:13>
Tak nevim, mozna to nekdo vysvetli, ja se ted musim venovat necemu jinemu.

> vzhledem v zatim uvedenemu. Zaprve: dela pri vypnuti outputu do PDF
> pdfcsplain skutecne naprosto to same co csplain (az na ty nove primitivy
> samosebou)? A druha otazka souvisi s nasledujicim kusem zdrojaku:

Tezko rici, nevim ted presne, jak dopadne trip test, ale myslim, ze
rozdily jsou jen v poctech primitiv a vysledna sazba bude navlas stejna.
Tot na urovni zakladni sazby bez pouziti specialu. Budete-li vsak
pouzivat ruzna rozsireni pomoci \special u klasickeho TeXu a \pdf...
primitiva u pdfTeXu, pak se vysledky mohou lisit. Asi nejvyznamnejsim
prikladem je zlamani hyperlinku: TeX je nezlame (dlouhe url budou trcet
z bloku sazby), pdfTeX je dokaze zlamat. Je treba si tedy uvedomit, ze
pouziti LaTeXoveho hyperref baliku dava dva ruzne vystupy podle
zvoleneho backendu.

> \hyphenchar\font=156
> \newdimen\whyph \setbox0=\hbox{\char156} \whyph=\wd0
> \def\prothyph{\char156\kern-\whyph \kern\whyph} \catcode`\^^9c=13
> \let^^9c=\prothyph
>
> \let\oldhyphenchar\hyphenchar \def\hyphenchar{\catcode`\^^9c=13\char156}
>
> Proc to nefunguje, kdyz TeX vklada na miste zlomu
> \discretionary{\hyphenchar}{}{} ?
>
> Takhle by preci mel vlozit na miste zlomu:
>
> \catcode`\^^9c\char156\kern-\whyph \kern\whyph
>
> ale zjevne udela neco jineho. Kde je vubec nadefinovano makro

Discretionary se v miste zlomu vklada jen v pripade, ze \hyphenchar je v
intervalu <0,255>.

> \discretionary? V plainu jsem ho nenasel, takze typuju, ze to bude asi

Je to primitivum TeXu. Viz TBN.

S pozdravem Vitek Zyka



More information about the csTeX mailing list