Sazba textu české lidové písně „Když jsem já sloužil“ pomocí modulu l3seq jazyka expl3
Zpravodaj Československého sdružení uživatelů TeXu, Tome 33 (2023) no. 3-4, pp. 153-164
Cet article a éte moissonné depuis la source Czech Digital Mathematics Library

Voir la notice de l'article

Jazyk plain TeX vznikl pro sazbu knih a turingovsky úplným programovacím jazykem se stal až na konci svého vývoje. Zatímco příprava textu dokumentů a úpravy vzhledu jsou v plain TeXu přímočaré, programování naráží na chybějící základní datové struktury a na odloženou expanzi maker, která neodpovídá běžnému vyhodnocování v moderních imperativních jazycích. Ve stroji LuaTeX je možné programovat také v imperativním programovacím jazyce Lua. Jazyk Lua sice zmíněnými neduhy plain TeXu netrpí, ale komunikace mezi TeXem a Luou není přímočará a při předávání dat dochází ke ztrátě důležitých informací, jako jsou kategorie TeXových znaků. Programovací jazyk expl3 nabízí zlatou střední cestu a umožňuje uživatelům programovat v TeXu způsobem, na který jsou zvyklí z moderních imperativních programovacích jazyků. V tomto článku představuji modul l3seq jazyka expl3, který poskytuje datovou strukturu seznamu. Možnosti modulu demonstruji na sazbě textu české lidové písně Když jsem já sloužil. Implementaci v jazyce expl3 porovnávám s implementací v plain TeXu.
Jazyk plain TeX vznikl pro sazbu knih a turingovsky úplným programovacím jazykem se stal až na konci svého vývoje. Zatímco příprava textu dokumentů a úpravy vzhledu jsou v plain TeXu přímočaré, programování naráží na chybějící základní datové struktury a na odloženou expanzi maker, která neodpovídá běžnému vyhodnocování v moderních imperativních jazycích. Ve stroji LuaTeX je možné programovat také v imperativním programovacím jazyce Lua. Jazyk Lua sice zmíněnými neduhy plain TeXu netrpí, ale komunikace mezi TeXem a Luou není přímočará a při předávání dat dochází ke ztrátě důležitých informací, jako jsou kategorie TeXových znaků. Programovací jazyk expl3 nabízí zlatou střední cestu a umožňuje uživatelům programovat v TeXu způsobem, na který jsou zvyklí z moderních imperativních programovacích jazyků. V tomto článku představuji modul l3seq jazyka expl3, který poskytuje datovou strukturu seznamu. Možnosti modulu demonstruji na sazbě textu české lidové písně Když jsem já sloužil. Implementaci v jazyce expl3 porovnávám s implementací v plain TeXu.
@article{10_5300_2023_3_4_153,
     author = {Star\'y Novotn\'y, V{\'\i}t},
     title = {Sazba textu \v{c}esk\'e lidov\'e p{\'\i}sn\v{e} {{\quotedblbase}Kdy\v{z}} jsem j\'a slou\v{z}il{\textquotedblleft} pomoc{\'\i} modulu l3seq jazyka expl3},
     journal = {Zpravodaj \v{C}eskoslovensk\'eho sdru\v{z}en{\'\i} u\v{z}ivatel\r{u} TeXu},
     pages = {153--164},
     year = {2023},
     volume = {33},
     number = {3-4},
     doi = {10.5300/2023-3-4/153},
     language = {cs},
     url = {http://geodesic.mathdoc.fr/articles/10.5300/2023-3-4/153/}
}
TY  - JOUR
AU  - Starý Novotný, Vít
TI  - Sazba textu české lidové písně „Když jsem já sloužil“ pomocí modulu l3seq jazyka expl3
JO  - Zpravodaj Československého sdružení uživatelů TeXu
PY  - 2023
SP  - 153
EP  - 164
VL  - 33
IS  - 3-4
UR  - http://geodesic.mathdoc.fr/articles/10.5300/2023-3-4/153/
DO  - 10.5300/2023-3-4/153
LA  - cs
ID  - 10_5300_2023_3_4_153
ER  - 
%0 Journal Article
%A Starý Novotný, Vít
%T Sazba textu české lidové písně „Když jsem já sloužil“ pomocí modulu l3seq jazyka expl3
%J Zpravodaj Československého sdružení uživatelů TeXu
%D 2023
%P 153-164
%V 33
%N 3-4
%U http://geodesic.mathdoc.fr/articles/10.5300/2023-3-4/153/
%R 10.5300/2023-3-4/153
%G cs
%F 10_5300_2023_3_4_153
Starý Novotný, Vít. Sazba textu české lidové písně „Když jsem já sloužil“ pomocí modulu l3seq jazyka expl3. Zpravodaj Československého sdružení uživatelů TeXu, Tome 33 (2023) no. 3-4, pp. 153-164. doi: 10.5300/2023-3-4/153

[1] Novotný, Vít: Vysokoúrovňové jazyky pro TeX. Zpravodaj CSTUGu. 2022, 32(1–4), 35–48. Dostupné z DOI: 10.5300/2022-1-4/35. | DOI

[2] The LaTeX Project: The expl3 package and LaTeX3 programming. [online]. CTAN, 2023-08-29 [cit. 2023-10-05]. Dostupné z: https://tug.ctan.org/macros/latex/contrib/l3kernel/expl3.pdf

[3] The LaTeX Project: The LaTeX3 interfaces. [online]. CTAN, 2023-08-29 [cit. 2023-10-05]. Dostupné z: https://tug.ctan.org/macros/latex/contrib/l3kernel/interface3.pdf

[4] Starý Novotný, Vít: Nápadovník jmen pro tvůrčí psaní v LuaTeXu. Zpravodaj CSTUGu. 2023, 33(1–2), 3–38. Dostupné z DOI: 10.5300/2023-1-2/3. | DOI

[5] Hroudová, Eva: Když jsem já sloužil. [online]. ProMaminky.cz, 2015-06-20 [cit. 2023-08-13]. Dostupné z: https://www.promaminky.cz/pisnicky/lidove-36/kdyz-jsem-ja-slouzil-287

[6] Starý Novotný, Vít: Sazba textu české lidové písně „Když jsem já sloužil“ pomocí modulu l3seq jazyka expl3: Release The latest version. [online]. GitHub, 2023-09-10 [cit. 2023-09-10]. Dostupné z: https://github.com/Witiko/typesetting-czech-folksong-with-l3seq/releases/tag/latest

[7] Olšák, Petr: OpTeX: Format Based on Plain TeX and OPmac. [online]. CTAN, 2023-05-25 [cit. 2023-09-18]. Dostupné z: https://mirrors.ctan.org/macros/optex/doc/optex-doc.pdf Verze 1.12.

Cité par Sources :