AsciiDoc je v současné době jazyk s nejširší podporou v rámci Courses.
Mimo rozsáhlé možnosti formátování umožňuje například použití proměnných, bloků podmíněného překladu apod.
Tato stránka obsahuje výčet základních a nejčastěji používaných elementů.
Kompletní syntaxe je k naleznutí v oficiální dokumentaci.
Soubory AsciiDoc ukládejte s příponou .adoc.
Název stránky v navigaci je určen pomocí elementu titulek (viz bod 1 sekce Metadata a atributy).
Metadata a atributy
Každé stránce lze zadefinovat různé proměnné (atributy), kterými můžete ovlivnit např. titulek stránky, vzhled atp.
Ukazková stránka může výpadat následovně:
= Anotace 1
:toc: 2
:imagesdir: ./media/ 3
:garant-predmetu: doc. Kevin Flynn 4
Předmět se zabývá základními principy života.
Garantem předmětu je {garant-predmetu}. 5
Název stránky. Každá stránky musí mít právě jeden název. Pod tímto názvem je zároveň zobrazena v navigaci.
Zapnutí zobrazení Obsahu (lze vypnout neuvedením tohoto řádku).
Cesta k adresáři s obrázky (není nutné využívat). Více viz Obrázky.
Obrázky ukládejte do složky k tomu určené[1], v opačném případě by došlo k automatickému přidání obrázku jako samostatné stránky do postranní navigace.
Volitelné[2] – V záhlaví stránky určete složku ve které má AsciiDoc hledat obrázky.
Provedete tak pomocí :imagesdir: <relativní cesta ke složce>.
Viz třetí bod sekce Metadata a atributy.
Příklady vložení obrázku:
Název příkladu
Zadaný text
Obyčejný obrázek
image::obrazek.jpg[Alternativní text]
Obrázek s titulkem
.Toto je titulek, který bude zobrazen společně s obrázkem
image::obrazek.jpg[Alternativní text]
Obrázek se zarovnáním
image::obrazek.jpg[Alternativní text, align=left]
Mezi další atributy, kterými lze vykreslení obrázků modifikovat patří:
Kód lze psát jednořádkový – například `text` bude vykresleno jako text.
Víceřádkový kód viz následující příklad:
[source,c]
----
airplane_t *strip = NULL;
strip = (airplane_t *) malloc(n * sizeof(*strip));
long int j = 0;
for (long int i = 0; i < n; i++)
if (abs(P[i].x - midPoint.x) < d)
strip[j] = P[i], j++;
----
Bude vykresleno jako:
airplane_t *strip = NULL;
strip = (airplane_t *) malloc(n * sizeof(*strip));
longint j = 0;
for (longint i = 0; i < n; i++)
if (abs(P[i].x - midPoint.x) < d)
strip[j] = P[i], j++;
Řádek [source,<jazyk>] se stará o zvýraznění syntaxe. Za <jazyk> lze dosadit libovolný jazyk.
Vynecháním tohoto řádku nebude u kódu zvýrazněna syntaxe.
Speciální případ použití přepínací lišty je uvnitř seznamu, viz následující příklad.
. Vyplňte následující pole:
+
[tabbed]
Server příchozí pošty::
* Protokol: `IMAP`
* Server: `{mail-imap}`
* Port: `{mail-port-imap}`
* Zabezpečení spojení: `SSL/TLS`
* Způsob ověření: `OAuth2`
Server odchozí pošty::
* Protokol: `SMTP`
* Server: `{mail-smtp}`
* Port: `{mail-port-smtp}`
* Zabezpečení spojení: `STARTTLS`
* Způsob ověření: `OAuth2`
+
Pokud se v nabídce způsobu ověření neobjevuje možnost `OAuth2`, stiskněte nejprve btn:[Znovu otestovat].
Poté pokračujte btn:[Hotovo].
. Ve vyskakovacím okně se přihlaste `<username>@**cvut.cz**` a xref:../../accounts/index.adoc[heslem ČVUT].
Bloky (admonitions)
Důležité:
Toto je blok obsahující důležitou informaci. Název bloku je IMPORTANT.
Upozornění:
Toto je blok obsahující informaci, kterou je potřeba si pozorně přečíst. Název bloku je CAUTION.
Varování:
Toto je blok obsahující důrazné varování o hrozícím nebezpečí. Název bloku je WARNING.
Následuje ukázka jednořádkového bloku. Místo NOTE lze dosadit libovolný typ bloku, viz názvy výše.
Zdrojový kód
NOTE: Toto je blok obsahující poznámku. Název bloku je `NOTE`.
Výsledek
Bloky mohou být také víceřádkové, místo IMPORTANT lze dosadit libovolný typ bloku, viz názvy výše.
Zdrojový kód
[IMPORTANT]
====
Toto je blok obsahující důležitou informaci.
- název bloku je `IMPORTANT`
- je víceřádkový
- a může obsahovat i složitější struktury (jako např. tento seznam)
====
Výsledek
Důležité:
Toto je blok obsahující důležitou informaci.
název bloku je IMPORTANT
je víceřádkový
a může obsahovat i složitější struktury (jako např. tento seznam)
Stejně tak může mít blok vlastní titulek.
Zdrojový kód
[TIP]
.Toto je blok s titulkem
====
Další text bloku.
====
Na konkrétní poznámku pod čarou se lze vícekrát odkázat.
Vytvořte poznámku pomocí footnote:<id poznamky>[<text poznamky>].
Na existující poznámku se můžete odkázat pomocí footnote:<id poznamky>[].
<id poznamky> nahraďte libovolným identifikátorem poznámky.
Abychom na stránce mohli používat matematické výrazy a formule zadávané pomocí La/TeX syntaxe, musíme správně nastavit stem atribut dokumentu na hodnotu latexmath.
Toho snadno docílíme následovně:
= Stránka s matematickými výrazy 1
:stem: latexmath 2
Název dokumentu/stránky.
Nastavení atributu stem na hodnotu latexmath.
Courses k finální sazbě matematických výrazů používají KaTeX.
Jedná se o nástroj umožňující zobrazovat matematické výrazy zadané pomocí matematické La/TeX syntaxe na webu.
Původně byl tento nástroj vytvořen pro Khan Academy.
KaTeX nepodporuje úplně všechny matematické možnosti a balíčky známé z La/TeXu, resp. AMSTexu, ale jeho možnosti budou pro většinu uživatelů a problémů naprosto dostatečné.
Přesný seznam podporovaných maker a prostředí je uveden v dokumentaci KaTeXu.
Rovnice v textu
K vytvoření matematických výrazů vyskytujících se přímo v textu (inline math) lze použít makro stem.
Třeba bychom chtěli diskutovat vlastnosti funkce f(x)=sin(x) nebo se bavit o posloupnosti (n+1)n=1∞.
Zdrojový kód takovéto věty s matematickými výrazy vypadá takto:
Třeba bychom chtěli diskutovat vlastnosti funkce stem:[f(x) = \sin(x)]
nebo se bavit o posloupnosti stem:[(n+1)_{n=1}^\infty].
Makro stem je tedy prakticky ekvivalentní LaTeX matematickému módu ohraničenému dvěma symboly $.
Musíme si zde ovšem dát pozor na uzavírací hranatou závorku označující nepovinné parametry některých LaTeX maker, například třetí odmocninu ze dvou, 32, správně zadáme pomocí
stem:[\sqrt[3\]{2}] 1
Všimněte si \] místo ].
Samostatné rovnice
K vysázení větší rovnice, která vyžaduje osamostatnění na vlastním řádku, použijeme blok ohraničený čtyřmi + symboly (obsah tohoto bloku se nijak nemodifikuje a posílá se rovnou KaTeXu; passthrough block) se stylem stem.
Například rovnici
Takovýto blok tedy odpovídá standardnímu nečíslovanému LaTeX prostředí equation*, resp, LaTeX matematickému módu ohraničenému \[ a \].
Často ovšem potřebujeme vysázet více rovnic najednou a chceme je pěkně zarovnat.
K tomu můžeme použít prostředí aligned.
Následující soustavu dvou rovnic o dvou proměnných
K zarovnání rovnic používáme symbol & a k oddělení rovnic \\.
V KaTeXu je vedle makra aligned k dispozici ještě jedno makro známé z AMSTexu, gathered, které umožňuje sazbu víceřádkových vycentrovaných rovnic bez zarovnání, např.
Využití gathered makra k vycentrování víceřádkové rovnice.
K zalomení rovnice využíváme \\.
Další matematické tipy a triky
Odkazy na rovnice
V matematickém textu bývá zvykem se odkazovat na některé (očíslované) rovnice.
KaTeX/AsciiDoc/Course Pages však přímo nepodporují ekvivalent LaTeX maker label a eqref, resp. ref.
Můžeme si ale celkem snadno pomoci, protože KaTeX podporuje tag makro.
Příslušný blok, obsahující rovnici na kterou se chceme odkazovat, označíme pomocí id, rovnici přidáme tag a v odkazu na ní použijeme AsciiDoc makro xref.
Například následující rovnici
V rovnici (1) (odkaz vytvořen pomocí xref:#eq1[(1)]) pozorný čtenář jistě rozpoznává Newtonovu formuli.
Zvýraznění částí rovnic
K upozornění čtenáře na důležité části rovnice můžeme využít svorky (makro underbrace) nebo i barvy (makro color), např. v rovnici
△(acbd)−1=ad−bc1(d−c−ba).
jsme matici na levé straně označili trojúhelníčkem (△) a výraz ve jmenovateli na pravé straně červenou barvou.
Použitý kód je následující:
[stem]
++++
\underbrace{ 1
\begin{pmatrix}
a & b \\
c & d
\end{pmatrix}^{-1}
}_{\triangle}
=
\frac{1}{\color{red}ad-bc} \begin{pmatrix} 2
d & -b \\
-c & a
\end{pmatrix}.
++++
Makro underbrace.
Makro color.
Definice, věty a důkazy
Ve formálnějších matematických textech bývá zvykem typograficky oddělovat důležité části jako Definice, Věty, atp.
V LaTeXu k tomuto účelu existuje známý balíček amsthm.
V AsciiDocu/Courses můžeme k takovémuto typografickém oddělení použít například pojmenovaný blok určený pro citaci.
Následuje jedna konkrétní ukázka tohoto přístupu.
Základní věta algebry
Každý polynom stupně n∈N má nejvýše n komplexních kořenů.
Kód, kterým jsme toto zvýraznění vytvořili je následující:
.Základní věta algebry 1
[[Veta1]] 2
____ 3
Každý polynom stupně stem:[n \in \mathbb{N}] má nejvýše stem:[n] komplexních kořenů.
____
Titulek.
id, pomocí kterého se můžeme na větu v textu odkazovat.
Blok ohraničený čtyřmi podtržítky.
K slavnostnímu označení konce důkazu se v matematické literatuře většinou používá Halmosův náhrobek□, či čtvereček.
Ten můžeme vytvořit pomocí KaTeXu kódem stem:[\square].
Alternativně lze samozřejmě použít obyčejnou textovou zkratku Q.E.D.
Diagramy
Generátor course-pages zaintegrovává generátor diagramů Kroki.
Generátor tak umožňuje vykreslovat nejrůznější druhy diagramů jako například WaveDrom, Graphviz a mnohé další.
Tak jako například u zdrojového kódu je kód diagramu potřeba umístit do bloku a nad blok je do hranatých závorek potřeba umístit typ diagramu.