Díky za pěkný článek. Tex je pro mě zatím volbou jen když potřebuju obvykle šablonovitě psaný matematický text v pdfku (používám xetex + makra pana Olšáka), možná xetex zkusím pod vlivem tohoto intra zaměnit luatexem - občas se může nějakej skriptík hodit.
Jednou bych si chtěl ve svém psaní udělat pořádek - všechno psát v jednom značkovacím jazyku, ve kterém bych měl absolutní kontrolu nad výstupem do pdfka, převést to snadno bez velkých změn do 'odt' a s většími změnami (v zájmu web-zvyklostí) do html. Asciidoc řeší suprově to html, kontrolu nad pdf výstupem má naopak dle mého strašnou. Luatex s citlivým výstupem do asciidocu, s možností využívat ascdoctorove pluginy pro diagramy a prezentace ... bude možná nejblíž mému ideálu ;-)
Záleží na požadavcích a také na tom, o jaké dokumenty se jedná. S Asciidocem se pojí jeden potenciálně velký problém - ztrácí se informace o sémantice, i když sémantické značky teoreticky jde připojit (to už se ovšem krása Asciidocu poněkud ztrácí). Já bych pro hodně strukturované texty, které mají vydržet delší dobu, klidně použil DocBook, pro hladkou sazby LaTeX (ale tady jde čistě o osobní volbu a určitě se najde x důvodů, proč to někomu nebude vyhovovat).
Pokud používáte OPMac, na převod do HTML jsem v rámci semestrálky u pana Olšáka napsal skriptík v Ruby, který by měl pomoci (aspoň trochu): https://rubygems.org/gems/opmac2html
Samotný TeX se už moc nepoužívá? To bude nejspíš neznalost. Samotný TeX se používá, pokud potřebuješ sázet na poněkud profesionálnější úrovni. Všechny možné xxxTeXy jsou jen berličkou pro ty, co nechtějí studovat detaily TeXu. Obvykle dobře poslouží, pokud se použijí tak, jak jsou, ale běda, jak je zapotřebí je nějak přiohýbat. Obvykle obsahují spoustu věcí, které nepotřebuji, a nějakou maličkost, kterou potřebuji jinak, činí velmi komplikovanou.
Začínal jsem kdysi na LaTeXu, ale při psaní diplomky jsem narazil na jeho možnosti a dnes používám plain TeX. Sice to chce si s tím na začátku trochu víc pohrát a hlubší seznámení, ale pak se s tím dělá lépe než s nadstavbovými balíčky maker. Obvykle potřebuji zlomek toho, co nabízejí tyto balíčky, a jsem schopen si to napsat sice jednoúčelověji, ale zato nesrovnatelně jednodušeji a přesně tak, jak potřebuji.
Pokud potřebuješ napsat nějaký matematický či technický článek, tak postačí nějaký balíček. Ale pokud je třeba vytvářet třeba datasheety, aby vypadaly trochu na úrovni, nebo uživatelskou příručku ke koukání, tak rozhodně doporučuji vytvořit si sadu vlastních maker nad plain TeXem. (mimochodem plainTeX je taky sada maker nad úplně čistým TeXem, ale dá se s ní lépe pracovat než s většími a „inteligentnějšími” sadami)
Děkuji za zajímavý článek a těším se na další díly. Mám takovou laickou otázku. Když běžně používám XeLaTeX (prezentace i kratší i delší texty) a jsem s tím spokojen, a zároveň neumím Lua, co by mi přechod na LuaTeX přinesl? Sice nemám k dispozici skripty (ale zmíněné příklady využití mi nejspíš chybět nebudou), nicméně mám dostatek balíčků. Třeba Beamer nebo BibTeX jsou skvelé. A jak složité je případně zkonvertovat zdroje z XeLaTeXu do LuaTeXu?
a=1 b=10 print(a) for i=a,b do print(i) end
tady vypadl ten if ...
Jestli se nepletu, tak před Lua se zkoušel Perl a Python, než to bylo prohlášeno za slepou uličku. perltex
je stále součásti texlive. Zkoušek jsem první demonstrační příklad přepsat do perltexu a nebyl to problém. Ale tuším, že lualatex
bude lépe propojen s TeXem a těším se, že to uvidím v dalších dílech.
PS. či dnes již poněkud méně populární jazyky Perl tohle se mě lehce dotklo :)
Ah omlouvam se, if skutecne vypadl :/
Ad luatex: ano, jedna vec je primo do dokumentu generovat skriptem nejaka data (napriklad tabulky), ovsem az s callback funkcemi, ktere se volaji napriklad ve chvili, kdy se TeX rozhodne rozdelit slovo, to dostava trosku jinou dimenzi. Doufam, ze se k tomu co nejdrive dostaneme.
S tim Perlem to nebylo mysleno nijak zle, jen jsem vychazel z grafu
Ty by mely odrazet popularitu (mezi programatory), ovsem samozrejme to nereflektuje napriklad stav, kdy je nejaky Perl skript pouzivan 24/7 nekolika miliony uzivatelu :)
Aha, tak se divam, ze zajimavejsi je porovnani Perl versus Lua:
https://www.openhub.net/languages/compare?utf8=%E2%9C%93&measure=commits&language_name[]=lua&language_name[]=-1&language_name[]=perl&language_name[]=-1&language_name[]=-1&commit=Update
perltex je iba LaTeXový preprocesor...
luatex nie je viazaný na LaTeX, ale ako skutočná náhrada za pdftex. Umožnuje nádherne meniť to čo aktuálne ma TeXový prekladač v rukách a internom stave. Pekný príklad je balík luaotfload, ktorý umožnuje načítať písma rôznych formátov (nie len v OTF) pre TeX. Zaujímavé je tiež definovať si nové makro, ktorého expanzia zavolá lua funkciu. A môže napr. brať nasledujúce tokeny (za makrom) a spracovať s nimy ako zachce.
zapasim s jednym problemom a mozno budete vediet poradit:
pripravujem sablonu zaverecnych prac pre nasich studentov, v ktorej pouzivam premennu title na nastavenie nadpisu prace, teda napr. takto:
\title{Toto je mocny nadpis}
v pripade, ze je nadpis dlhsi, je mozne nadpis zalomit sposobom:
\title{Toto je mocny nadpis \\ cez dva riadky}
neskor v praci ale potrebujem hodnotu tejto premennej pouzit v jednom riadku bez zalomenia. teda - potrebujem odstranit oba znaky \\
a nijak sa mi to nedari. ich vyznam by som potreboval potlacit len na jednej stranke. skusal som spravit search'n'replace cez luatex, ale stale bez vysledku.
aktualne to riesim cez primitivu na zalamovanie
\def\br{\\}
kde potom nadpis vyzera takto:
\title{Toto je mocny nadpis \br cez dva riadky}
tuto primitivu potom na danej stranke uz len nastavim na
\def\br{}
a po jej zobrazeni zasa naspat. ale aj tak by ma zaujimalo, ci a ako je toto mozne vyriesit cez luatex.
Moc nechápu, proč se v ukázce maker TeX(u) vyhýbáte použití parametrů a místo toho používáte nehorázný trik s \aftergroup, \let s pro přezávorkování do nového bloku. Psal bych to jednoduše takto:
\def\itemnum{\advance\licount by1 \llap{\the\licount.\enspace}}
\def\listend{\smallskip\noindent\ignorespaces}
\def\li#1{\noindent\itemnum#1\par}
\def\nlist#1{{\licount=0 \par\nobreak \advance\leftskip\parindent #1\listend}}
Možná ale vámi uvedený způsob nějaké přednosti má, jen přesně netuším jaké?
Díky za článek, škoda že jsem o tom LuaTeXu nevěděl před cca rokem. To jsem začal přepisovat jednu výpočetní zprávu do provázané kombinace Octave + (plain)TeX. Možná by to přes ten LuaTeX bylo jednodušší, takhle mám docela komplikovaný scénář jak to počítám. Na druhou stranu ale pochybuji, že by mi Lua umožňovala tak snadno počítat se statistikou a hlavně s maticovým počtem, jako Octave. Na druhou stranu zase nic tak extra maticového nedělám, to by se dalo implementovat určitě také.
Hlavní tělo zprávy mám v plain TeXu s vlastním relativně jednoduchým stylem. Do těla pak TeX inputuji samostatné soubory, které obsahují výstupy výpočtů s TeX formátováním v latin2 kódování a hlavně těla tabulek s vypočítanými výsledky.
Výpočty provádím v Octave, který zapíše (vždy přepíše) do těch samostatných souborů výsledky formátované v TeXu. Pak to ještě proženu přes iconv z utf8 (výstup z Octave) do latin2 pro input do TeXu.
A celé to drží pohromadě ve správném pořadí aby se na nic nezapomnělo a nic nepřeskočilo přes make.
octave ...
iconv ...
tex ...
Je to dost variabilní, ale je to takový hodně programátorský přístup. Výhoda je, že celá sekvence výpočtů je opravdu konzistentní, opakovatelná a relativně řiditelně modifikovatelná na změnu vstupních hodnot a postupu výpočtu.
Provádím ty výpočty opakovaně v průběhu několika let, pokaždé pro mírně pozměněné vstupy i postupy výpočtu. Ale je fakt, že k tomuto řešení jsem dospěl postupným vývojem v průběhu asi deseti let. Začínal jsem s výpočty v Excelu + výsledky manuálně přenášené do TeXu. Pak jsem začal tu Excel část přenášet jednak do Open Office, jednak některé věci do Octave. Na některé typy výpočtů se spíše hodí funkční přístup než tabulkový, až jsem postupně ten tabulkový prakticky zcela opustil.
Respektive dělám si teď v tabulkách jen rychlé nezávislé dílčí kontroly a odhady, když se mi něco nezdá, nebo potřebuji jen dílčí věc bez komplexní definice zadání. Postupně opouštím/přepisuji i to manuální přenášení výsledků z octave do TeXu. Jsem ve fázi, že cca 1/2 výsledků z octave sypu do samostatných input souborů. Zbytek mi ještě stále přes stdout padá do sběrného souboru odkud to pak dokopírovávám do TeXu. Ale mám ambice, že do konce roku už budu vše mít přes inputy a tím odpadnou kopírovací chyby a pracnost.