Na YouTube lze zhlédnout nový celovečerní dokumentární film The Story of VS Code | Official Documentary věnovaný Visual Studio Code.
Farid Abdelnour se v příspěvku na blogu rozepsal o novinkám v nejnovější verzi 26.08.0 editoru videa Kdenlive (Wikipedie). Ke stažení také na Flathubu.
Byla vydána nová stabilní verze 8.2 webového prohlížeče Vivaldi (Wikipedie). Postavena je na Chromiu 152. Přehled novinek i s náhledy v příspěvku na blogu.
Byla vydána nová stabilní verze 4.0 svobodného multiplatformního softwaru pro editování a nahrávání zvukových souborů Audacity (Wikipedie). S rozhraním přepsaným do Qt. Přehled novinek také na YouTube. Ke stažení je oficiální AppImage. Zatím starší verze Audacity lze instalovat také z Flathubu a Snapcraftu.
NVIDIA kupuje Hugging Face za 12,93 miliardy dolarů.
Předobjednat si lze nový jednodeskový počítač Arduino VENTUNO Q s předinstalovaným Ubuntu. S 16 GB LPDDR5 a 64 GB eMMC. Pro lokální LLM, agentní AI, počítačové vidění, robotiku…
Hexpair není nejlepší HEX editor na světě a ani se o to nesnaží. Zato je k dispozici kdykoliv a kdekoliv – všude tam, kde máte svůj Vim. Vznikl jako hobby projekt před pár měsíci a dospěl do stavu, kdy by mohl být užitečný širší komunitě. Přepnout do HEX režimu se dá i uprostřed rozdělané práce: Soubor, který už máte otevřený běžným vim file.md, jedním příkazem přepnete do HEX editoru a dalším příkazem ho můžete vrátit zpět do textu. Kurzor přitom
CERN dlouhodobě používal vlastní sestavení RHEL, ze kterého přešel na CentOS Stream. Federico Vaga a Nikos Tsipinakis ale nyní v přednášce na MiniDebConf Winterthur 2026 popisují plán probíhajícího přechodu na Debian pro řízení akcelerátorů. Důvodem k opuštění CentOS Stream jsou zachování zpětné kompatibility se starším hardwarem, kterou Red Hat narušuje, když tlačí sestavení balíčků pro novější verze architektury (x86-64), a nedostatečné nástroje pro sestavování vlastních balíčků a repozitářů.
UZDoom (Wikipedie), tj. fork GZDoom, byl vydán ve verzi 5.0.0. Videopředstavení na YouTube. Podrobný přehled novinek v Changelogu.
\special tiskovým ovladačům. Je to pravda jen částečně a dnes si
o tom řekneme více.\special a \pdfliteral
\special a \pdfliteralPo expanzi maker klade TeX písmena sazby (která vnímá jako obdélníky-boxy) vedle
sebe do řádků, tyto řádky jsou zase boxy, které klade pod sebe do sloupců. To
jsou také boxy, které jsou seskupeny případně do dalších boxů až vzniká
kompletní sazba strany: box. Mezi boxy strká TeX podle maker a vnitřních
algoritmů mezery různých pružností. Dále je TeX schopen vytvořit černý box
s rozměry, které mohou souviset s rozměry okolní sazby (\hrule
a \vrule). Takové obdélníky, jsou-li velmi tenké a dlouhé, se
používají jako linky, například v tabulkách. Je tedy zřejmé, že s tímto
přístupem je TeX schopen sestavovat pouze černobílou sazbu a svislé nebo
vodorovné linky. Složitější grafiku takto nevytvoříme.
Kromě boxů, linek a mezer je TeX schopen do sazby dávat tzv.
\special, což je bezrozměrná neviditelná „tečka“ v sazbě, která
uvnitř DVI formátu nese textovou informaci. Tuto informaci může napsat přímo autor
dokumentu, ale častěji je tato informace výsledkem expanze maker. Informaci pak
přečte tiskový ovladač, a pokud ji rozumí, vykoná, co se po něm žádá. Například
tam je jazykem ovladače napsáno: „přepni barvu sazby na zelenou“.
Tento koncept umožňuje dodatečně pomocí \special dosáhnout všeho, co
dokáže použité tiskové zařízení, protože v argumentu \special
s tímto zařízením hovoříme jeho vlastním jazykem. Zpočátku, při zrodu
TeXu, bylo mnoho různých jazyků tiskových zařízení, takže argumenty příkazů
\special byly závislé na následné technologii tisku. Později se téměř vše
převádělo na jazyk PostScriptu, který vyvinula firma Adobe. Tento jazyk prodělal
několik verzí a stal se koncem devadesátých let de facto standardem
v počítačové typografii. Konverzi z DVI do PostScriptu obstará program
dvips, který přečte argumenty \special, ve kterých mohou být
přímo low-level příkazy PostScriptu, umožňující řešit jakýkoli grafický
požadavek.
Dnes se častěji setkáme s formátem PDF, který ideově vychází z jazyka
PostScriptu, ale není s ním kompatibilní. Je to také jazyk, kterým je
možno popsat jakýkoli grafický element v dokumentu. K formátu
PDF je možné dojít cestou přes DVI a následným použitím konvertoru
dvipdfm. Argumenty příkazu \special v takovém případě
mohou obsahovat jednoduché PostScriptové konstrukce nebo další speciální
vzkazy, kterým tento konvertor rozumí. To je dokumentováno
například zde.
Druhou možností je vygenerování PDF přímo pdfTeXem. Ten nabízí pro změnu příkaz
\pdfliteral, který funguje analogicky, jako příkaz \special.
Jeho argumentem může být jakýkoli kód z jazyka PDF a bude vložen na to
místo sazby, kde je \pdfliteral použit.
V PostScriptu se na zelenou barvu přepneme pomocí 0 1 0 setrgbcolor
a zpět na černou pomocí 0 setgray. Takže přechodná změna na zelenou
může v TeXovém zdrojovém souboru vypadat takto:
\special{ps: 0 1 0 setrgbcolor}Sazba v zeleném.\special{ps: 0 setgray}
Po vytvoření DVI z této ukázky je možné ověřit, že PostScriptovému \special rozumí nejen konvertor dvips, ale též
program xdvi, který správně zobrazí barvy. Rovněž konvertory
dvipdf* rozumí PostScriptovým specialům a zkonvertují je do
odpovídajícího PDF kódu.
Při přímém použití pdfTeXu vytiskneme zelený nápis pomocí PDF kódů na přepínání
barev: 0 1 0 rg přepne na zelenou a 0 g na černou:
\pdfliteral{0 1 0 rg}Sazba v zeleném.\pdfliteral{0 g}
Autor textu pochopitelně nepíše tyto \special nebo
\pdfliteral do textu přímo, ale použije již hotový balík maker (například
v LaTeXu xcolor, v plainu třeba OPmac). Barvy lze pak přepínat poměrně
přirozeně, například pomocí \color{green}.
PdfTeX dovede vložit obrázek do výstupního PDF přímo, zatímco při cestě sazby
přes DVI se interně používá \special, jehož argument obsahuje odkaz na
obrázek a požadovanou velikost obrázku. O vložení obrázku se pak postará
DVI ovladač. V obou případech autor textu typicky použije nějaké hotové makro.
Například:
% v OPmac
\picw=\hsize \inspic obraz.png
% v LaTeXu
\usepackage{graphicx}
\includegraphics[width=\textwidth]{obraz.png}
PdfTeX umí vložit obrázky formátů png, jpg,
jbig2, pdf. V sazbě pro ně vynechá odpovídající místo,
jako při vložení velkého boxu.
Podle „druhu“ obrázku je třeba volit vhodný formát. Pro fotografie je možný
bitmapový formát se ztrátovou kompresí jpg. Pokud nechceme ztrátu
kvality bitmapového obrázku, použijeme png. Konečně pro čárovou grafiku
(například Jiránkovy kresby perem) je nepochybně nejvhodnější vektorová grafika,
tedy formát pdf. Jiné formáty (např. tif, eps)
je třeba na některý z uvedených formátů překonvertovat.
TeXista je zvyklý „programovat sazbu“ bez toho, aby přímo viděl výsledek. Může ho tedy napadnout a připadá mu přirozené, že by mohl také „programovat obrázky“. Pochopitelně nebude programovat obrázky typu fotografie. Na druhé straně fraktály, grafy, matematické náčrtky atd. jsou dobrými adepty na to vytvářet je pomocí zdrojových kódů. K tomu ale je potřeba programovací jazyk.
První možností je přímo využít jazyk tiskového zařízení, tedy PostScript nebo
PDF. Kód v tomto jazyku stačí napsat do parametru příkazu \special
a máme obrázek naprogramován. Ovšem tyto jazyky jsou příliš nízkoúrovňové
a po světě se nepotuluje příliš mnoho lidí, kteří je plně ovládají.
Z toho důvodu vznikly další jazyky, které kombinují možnosti TeXových maker
a jazyků tiskových ovladačů, nabízejí uživateli „programátorské rozhraní“ na
obrázky a na pozadí pochopitelně vytvoří sadu příkazů \special
s odpovídajícími parametry, které realizují obrázek. Takovým jazykem na obrázky
je například pstricks, který předpokládá, že výstup
povede cestou DVI → PostScript. Dalším obdobným a velmi propracovaným jazykem
je PGF/TikZ. Ten umožňuje navázat nejen
na PostScript, ale podpoří i přímý výstup pdfTeXem do PDF.
Když si prohlédneme ukázky obrázků vytvořené v TikZ, tedy pomocí TeXových maker, těžko budeme nadále tvrdit, že TeX grafiku neřeší.
Pro úplnost uvedu ještě zastaralou možnost tvorby velmi jednoduchých obrázků
přímo v LaTeXu v prostředí picture. Ta je nezávislá na použité
tiskové technologii, protože nabízí jen omezenou sadu grafických prvků, které jsou
obsaženy jako znaky ve speciálním LaTeXovém fontu. Sestavením těchto znaků TeXovými
prostředky vznikají jednoduché obrázky.
Plno TeXistů si také oblíbilo pro programování obrázků použití Metapostu, což je rozšířený jazyk Knuthova Metafontu (původně navrženého na programování znaků fontů) s možností výstupu do PostScriptu. Výstup z Metapostu je možné zpětně zakomponovat do sazby.
Člověk při potřebě vytvořit vektorový obrázek typicky nesedne k textovému
editoru a nezačne obrázek programovat výše popsaným způsobem. Místo toho
použije interaktivní editor na obrázky, například Inkscape, Geogebra nebo něco
podobného. Na tomto místě se sluší upozornit na to, že takové programy často
nabízejí možnost exportu do některého z výše zmíněných programovacích jazyků na
obrázky. Kromě toho si ukážeme jeden způsob, který umožní do TeXových marker či
dokumentu vložit přímo jednoduchou čárovou grafiku vytvořenou Inkscapem. Stačí
tento obrázek uložit jako EPS, sejmout z tohoto výstupu v textovém editoru
část uvozenou q a ukončenou Q a překopírovat ji do
parametru příkazu \pdfliteral. Uvedený úsek je totiž napsaný přímo
v jazyku PDF. Uvedu příklad. V tomto
souboru je EPS výstup jednoduchého smajlíka vytvořený Inkscapem. Do TeXového
zdrojového dokumentu pak můžeme například napsat:
% Definice makra \smajlik:
\def\smajlik{\hbox to1.6cm{\vbox to1cm{}\pdfliteral{
q .1 0 0 .1 0 0 cm
0 214.857 444 -215 re W n
0.701961 g
443.43 107.427 m 443.43 48.099 344.164 0.002 221.715 0.002 c 99.266
0.002 0 48.099 0 107.427 c 0 166.759 99.266 214.857 221.715 214.857 c
344.164 214.857 443.43 166.759 443.43 107.427 c h
443.43 107.427 m f
0 g
194.285 133.713 m 194.285 128.033 176.379 123.427 154.285 123.427 c
132.195 123.427 114.285 128.033 114.285 133.713 c 114.285 139.396
132.195 144.002 154.285 144.002 c 176.379 144.002 194.285 139.396
194.285 133.713 c h
194.285 133.713 m f
317.715 132.572 m 317.715 118.685 304.41 107.427 288 107.427 c 271.59
107.427 258.285 118.685 258.285 132.572 c 258.285 146.459 271.59
157.713 288 157.713 c 304.41 157.713 317.715 146.459 317.715 132.572 c
h
317.715 132.572 m f
0.776471 0 0 RG
15.68 w
1 J
0 j
[] 0.0 d
4 M q 1 0 0 -1 0 214.857132 cm
130.285 130.285 m 130.285 130.285 214.855 201.145 306.285 134.855 c S Q
Q
}\hfil}}
% Použití makra \smajlik:
Aha, tu je smajlík: \smajlik. To je vše.
Tento příklad ukazuje, že je možné vytvořit obrázek interaktivně. Například pro oči smajlíka jsem neprogramoval jejich souřadnice, ale prostě jsem oči umístil v Inkscape „od oka“. Přesto se obrázek stává součástí maker TeXu a není uložen ve speciálním grafickém souboru. Expanzí dodatečných maker navíc lze měnit parametry obrázku (velikost, barvu, prohnutí úsměvu atd.), stačí jen maličko umět jazyk PDF. Úvod do této problematiky je možné najít například v článku Jednoduchá grafika PDF primitivně.
Existují obrázky, které v sobě obsahují text, jehož font by měl korespondovat s fontem okolního textu. Například popisky os, vrcholů a dalších útvarů v učebnici geometrie. Když je sazba kolem v Computer Modern, měly by být tyto popisky také v Computer Modern. V okamžiku, kdy se rozhodneme změnit okolní sazbu třeba na Times, měly by být popisky v Times. Když obrázek dodatečně zmenšíme nebo zvětšíme, neměly by se zmenšovat/zvětšovat popisky, které mají mít stále velikost základního písma. V souvislosti s tím je třeba řešit následující problémy:
Je sice možné pomocí TeXových \hbox, \vbox atd. umístit
text prakticky kamkoli, ale v makru je potřeba TeXu sdělit rozměrové údaje, kam
přesně to má dát. Možnost pokus/omyl je jistým řešením, ale není to moc pohodlné.
Existují tedy i jiné cesty. Například v Metapostu je možno do obrázků
vkládat na poměrně logická místa kotvy, podle kterých se pak dodatečným procesem
TeX – Metapost – TeX k těm kotvám umístí popisky. Nebo v Inkscape je možno
kromě obrázku psát texty přímo v TeXové notaci (například matematické vzorečky)
a pak zvlášť do PDF uložit obrázek bez textů a zvlášť TeXová makra,
která umístí texty na požadovaná místa. Toto řešení je ukázáno například
zde.
Je také možné všelijak kombinovat grafické prvky s textem. Například dekorativní rámeček bude mít rozměry dané množstvím textu, který je tím rámečkem obklopen. Příklady takových interakcí sazba–grafika lze nalézt v již zmíněném článku Jednoduchá grafika PDF primitivně.
Nástroje: Tisk bez diskuse
Tiskni
Sdílej:
% Signature fields
\def\siglist{}
\def\sigfield#1#2#3{\xdef\siglist{\siglist @#1 }\setbox0=\hbox{\special{pdf: bxobj @App#1 width #3bp height #2bp}\special{pdf: content .9 .92 1 rg 0 0 #3 #2 re f}\special{pdf: exobj}}\ht0=0pt\dp0=0pt\wd0=0pt\box0\special{pdf: ann @#1 width #3bp height #\
2bp << /Type /Annot /Subtype /Widget /FT /Sig /T (#1) /F 4 /H /P /P @thispage /AP << /N @App#1 >> >>}\setbox0=\null\ht0=#2bp\wd0=#3bp\box0}
\def\acroform{\special{pdf: obj @AcroForm << /Fields [ \siglist ] /SigFlags 1 >>}\special{pdf: put @catalog << /AcroForm @AcroForm >>}}
\special{pdf:put ...} jinam než do infa nebo hlavního katalogu).
Nicméně přístup pdfTeXu za správný nemám. TeX je značkovací jazyk navržený od počátku s chybou, spočívající v tom, že nerespektuje zásadu, že makra, která neznám, tiše ignoruji. Proto není vhodné implementovat speciální vlastnosti jednoho formátu jako systém maker, ale něčím, co tuto zásadu respektuje, tzn. např. \special s prefixem typu. Když někdo vytvoří Úplně Nový Formát UNF, budou se příkazy pro něj zapisovat jako \special{unf: ...}, a programátoři svá makra rozšíří o podporu tohoto nového formátu tak, že novou definici zapíší za starou, pro PDF.
U pdfTeXu lze sice vytvářet převodní makra - šlo by to ostatně pro XeTeX -, za vážnou vadu návrhu ale pokládám, že tak zůstane zachován "na věky věkův", minimálně v názvu maker, "pdf", ač tento formát může být dávno nahrazen nějakým jiným.
pdfTeX mám tedy za nevhodně koncipován.
--shell=escape a \write18 -- je tak možné třeba spustit gnuplot a vložit výsledek do dokumentu, umí toho využívat např. TikZ.
Obecně mi ovšem grafika přijde jako slabé místo TeXové sazby, a je to podle mě kombinace několika věcí. Jednak je neinteraktivní grafika sama o sobě složitá, zadruhé zrovna markojazyk pro ni není to nejpohodlnější (TikZ, který se to snaží obejít, má překvapivá zákoutí, kde něco nefunguje kvůli expanzi - jednou jsem narazil na mocninu záporného čísla, kde bylo třeba psát {\x}^2 protože x mohlo být záporné a unární minus mělo po expanzi menší prioritu než mocnina; už to myslím opravili), a zatřetí TeX nebyl navržen na to, aby s těmi programy dokázal interagovat -- typu protokol na komunikaci "kotev" pro text, dotazování externího programu na rozměry sazby apod. -- to se řeší obezličkami; osobně jsem to většinou řešil použitím stejného OTF fontu např. v matplotlibu a TeXu, ale ani to ještě není "ono", je třeba mít kolem dokumentu skripty na přegenerování obrázků apod.
\special{ps: 0 1 0 setrgbcolor}Sazba v zeleném.\special{ps: 0 setgray} v sazbě, a co čert nechtěl, slovo Sazba bude na konci jedné stránky, zatímco zbytek barevného textu vyjde na další stránku. Pak se taková jednoduchá makra krásně rozbijí. Obarví nám patičku stránky, zatímco zbytek textu na nové stránce bude černý.
Bude třeba mnoho práce a mnoho přepisování základních maker, než vše začne fungovat tak, jak bychom chtěli.
A co více, takový žlutý text pomocí \special{ps: 1 1 0 setrgbcolor} po vytištění vůbec nemusí vyjít čistě žlutý. Čistou žlutou tiskovou barvu nelze v prostoru sRGB (implicitně použitého mnoha tiskovými zařízeními) nijak vyjádřit. A co hůř, každá tiskárna se s tím popere trochu jinak.