Cestina v lilypondu

Milan Vancura mvancura at gitus.cz
Tue Jan 28 13:11:36 CET 2003


> > Dobry den,
> >
> > rozchodil jsem pro zenu lilypond a nemohu nikde najit, jak ho donutit sazet
> > \lyrics s ceskymi znaky. Nahradil jsem v scm/fonts.scm vsechna cm na cs,
> > poustim pres latex a nic. Misto \v{r} mam porad preskrtnute o.
> > V archivu konference jsem nic nenasel.
> >
> Lilypond jsem nezkousel, ale zkusim poradit alespon obecne. Samotna zmena
> cm->cs nemusi jeste stacit. Je dulezite, aby TeX videl spravne pismena s
> diakritikou (vice o tom napsal Petr Olsak v clanku "Putovani pismene \v{r}
> z klavesnice na papir"). Musite tedy mit vstupni soubor psan primo s
> diakritikou a na vstupu se musi vse prevest do kodovani fontu, tj. IL2, a
> znaky nesmi byt aktivni, tedy nesmite pouzit inputenc. Pokud jsou totiz

Dekuji vsem za napady, nakonec jsem to vyresil, i kdyz pouze za cenu zmeny
ly2dvi. Pro dalsi budouci uzivatele lilypondu shrnu postup (aby se dal v
archivu konference pozdeji nalezt):

Sazbu v tomto pripade ovlivnuji tri faktory, pricemz ly2dvi vsechny tri samo
natvrdo nastavuje (a tudiz napr. zamenou latex->cslatex se samy nezacnou
pouzivat cs fonty):

1. nazev binarky ("latex")
2. pouzite fonty ("cm*")
3. \usepackage[latin1]{inputenc} v hlavicce vytvareneho latex dokumentu

Problemy 1 a 3 se musi resit zasahem do ly2dvi (je to python skript) nebot
nejsou nijak konfigurovatelne. inputenc se nalezne snadno, slovo latex je nutno
hledat za "cmd = '". Ja jsem volani latex nahradil volanim cslatex a pred
\usepackage[latin1]{inputenc} jsem jednoduse vlozil procento.

Problem 2 se resi v $lilypond_conf_dir/scm/fonts.scm . Je to vlastne tabulka
mapovani fontu z udaju zadavane v lilypondovskem zdrojovem souboru pres
properties jeho objektu na skutecny nazev fontu (podobna myslenka jako NFSS).
Zde jsou dve moznosti - bud defaultni rodinu "roman" prepsat tak, ze nacita cs
fonty misto cm fontu nebo (snad lepe) celou tuto rodinu zkopirovat pod novym
nazvem (napr.  csr). Potom ve zdrojovem souboru piseme napr. nasledujici:

\lyrics {
  \property Lyrics.LyricText \set #'font-family = #'csr

   Ská -- kal pes přes o -- ves
}

Objekty Lyrics bez zmenene property jsou vysazeny samozrejme puvodnim cmr.

Poznamka na zaver: podle dokumentace to ze zacatku vypada, ze lze
standardnimi postupy lilipondu (nastavenim properties) zmenit inputenc a
pripadne pridat dalsi \usepackage. Neni tomu tak. Predne ly2dvi neumi pridat
\usepackage s parametrem (v []) a druha chyba je, ze jednotliva volani
\usepackage jsou od sebe oddelana dvojici znaku "\n" misto prechodu na novy
radek, takze takto vygenerovany latexovsky zdrojak vubec nelze prelozit.

Stejne tak podle dokumentace by melo jit v property primo nastavit jmeno fontu
(napr. csr10) a nemuset menit fonts.csm. Ani toto nefunguje.

Vseobecne doporucuji v pripade potizi pouzivat ly2dvi s parametrem -k (keep
temporary files) ktery zaruci, ze v podadresari ly2dvi/ naleznete mezikroky,
napr. dokument.latex a dokument.tex, ze kterych pak vyrabi dvi, ps a pdf
soubory.

Tot snad veskere poznatky z me nocni mise, preji pekny den.

Milan Vancura

P.S.: Studiem zdrojovych kodu jsem si bohuzel potvrdil mou predchozi domnenku,
ze kvalita kodu utilit kolem lilypondu je v prikrem rozporu s kvalitou jeho
vystupu. Pokud by me nekdo chtel nasledovat a lilypond zkoumat, doporucuji
obrnit se trpelivosti a zivocisnym uhlim :-(




More information about the csTeX mailing list