LaTeX z Cwebu? (Bylo: zvetseni sirky odstavce)

Jan Dvorak dvorakj at tarzan.math.jyu.fi
Wed Nov 1 17:02:24 CET 1995


Zdenek Wagner pise (v odpoved na dotaz Josefa Kroba):

[...... o zmenach sirky textu ]

> vzoreckem. Bezne to pouzivam ve spojeni s CWEBem (pro normalni text
> potrebuji prostor pro marginal notes, ale pro rejstrik a obsah chci vyuzivat
> plnou sirku papiru, pricemz rejstrik je ve dvou sloupcich). Takove makro
> pouzivam vzdy ve vertikalnim rezimu v jednosloupcove sazbe, pri zmena sirky
> behem vicesloupcove sazby by asi zpusobila zverstva.

Prosim napovezte mne tapajicimu, jak mozno prinutit CWEB k vystupu
v LaTeXu? (2e?) Je na to nejake prostredi, do ktereho se cely vystup
vlozi, nebo se delaji nejake zmeny (predpokladam, ze dosti podstatne)
v souboru cwebmac.tex?


Kdyz uz jsme se dostali k CWEBu a ja mam zrovna nejaky casek nazbyt....
Shrnu sve zkusenosti -- a zajimaly by mne nazory/zkusenosti ostatnich.
Rekl bych, ze to sem patri, nebot nejvetsi koncentrace cesky hovoricich
literarnich programatoru je pravdepodobne okolo tohoto listu.

Presvedciv se o vyhodach *dobre* dokumentovanych programu, prezentovanych
ve sledu toku myslenek, zacal jsem asi pred pul rokem experimentovat
s CWEBem v jazyce C. Zrovna pred tydnem jsem velmi ocenil, ze jsem si
psal poradnou dokumentaci.... Ted se snazim literarne programovat v C++.
Sve poznatky bych shrnul zhruba nasledovne:

:1:  V C++ se zmenene poradi kusu kodu vyuziva hlavne v deklaracich trid,
t.j. pri specifikaci rozhrani objektu. Hlavne tam je treba si mnohe ujasnit,
a mnohe komentovat. Naopak pri vlastni implementaci uz poradi definic metod
neni dulezite, vse jiz bylo deklarovano. Jazyk samotny vede ke kompaktnimu
kodu metod, ktere je mozno zapsat v jedinem useku (pri dobre OO analyze
problemu!). Protoze to hlavni -- co ma metoda delat -- uz bylo vysvetleno
v deklaraci rozhrani, jsou komentare pred/v implementaci co platne hlavne
pri vysvetlovani nejakeho ne uplne pruhledneho algoritmu.

:2:  Z jedineho WEBovskeho souboru (.ww) mi TANGLE vygeneruje jak hlavicku
(.hh), tak implementaci (.cc). Zde se nazory asi budou lisit; ja mam rad vse,
co spolu souvisi, pohromade. Pouzivam Makefile, a tak jsem musel vyresit
to, aby se mi nekompiloval cely projekt, kdykoli zmenim neco jenom
v implementacni casti. Delam to tak, ze vsechny hlavickove soubory
se porovnavaji s jejich zalohou, vzniklou pri minule kompilaci.
Nedoslo-li ke zmene v hlavicce, udelam touch na nejake datum
v davne minulosti a tim odriznu rekompilaci toho,
co by se jinak diky tedo hlavicce rekompilovalo.

:3:  Ze vsech systemu pro literarni programovani, ktere jsem okoukl,
(jeste FunnelWEB, NoWEB a Tango-Weevil) vysazi CWEB & plainTeX bezkonkurencne
nejlepsi vystup. Takrka dokonaly je pro jazyk C, v C++ se obcas vyskytnou
rusive prvky. Snad nejvice rusive pusobi vlozeni vertikalni mezery
po deklaraci lokalni promenne -- to lze v C++ delat i uprostred prikazu.
Take neni zcela trivialni prinutit jej spravne interpretovat hlavicku definice
pretizeneho operatoru new nebo delete. Chce to trochu zkusenosti s @[ a @].

:4:  Neni to sice prilis casto, ale cas od casu bych kus literarniho kodu
rad vlozil do nejake publikace. Ty ale pisi v LaTeXu2e, coz nehodlam menit.
Na druhe strane, kvalita vystupu tech literarne programovacich systemu,
o kterych vim, ze podporuji LaTeX, se mi jevi jako nedostatecna (cituji
jednoho sveho kamarada: skromnost je blbost ;-) . (Tim nerikam, ze by byly
uplne spatne. Podpora vice programovacich jazyku vsak vetsinou znamena,
ze se delaji kompromisy v kvalite vystupu.)

Proto ve mne poznamka pana Wagnera o kombinaci CWEBu a LaTeXu vyvolala
zajem a zvedavost. A take by me moc zajimaly nazory ostatnich.


         S pozdravem
                         @<pavoukum zdar@>@;

                                                  Jan Dvorak
--
                                                                           ,,
  Jan Dvorak  ( http://www.karlin.mff.cuni.cz/~dvorakj/ )                 /..\
                                                                          \--/
    They sometimes forget to write in the operation instructions:        +/  \+
    The ON switch is an OFF one as well. It's convenient to know...       \__/
                                                                         _/  \_



More information about the csTeX mailing list