Nápověda:Vzorce

Z Wikiverzity

Souhrn návodů ke vkládání matematických, fyzikálních, chemických a dalších vzorců do stránek Wikiverzity.

Nápovědy na jiných wikiprojektech[editovat]

Úvod[editovat]

Vzorce se na projektech Wikimedia vkládají třebmi různými způsoby. Jedním z nich je sázecí jazyk LaTeX v prostředí rozšíření Math, druhým je za použí značek wikikódu a třetí specializované šablony.

Syntaxe, převzatá ze sázecího programu TeX, případně LaTeX, resp. w:AMS-LaTeX. V mašině MediaWiki to zajišťuje mw:Extension:Math, která by měla být nainstalována na všech projektech nadace Wikimedia. Tato extense volá nástroj Mathoid, který vygeneruje neviditelný text v w:MathML a zároveň obrázek se vzorcem ve formátu SVG, který je pak zobrazen uživatelovým browserem. Pokud má nějaký uživatel problémy se zobrazováním SVG, může si ve svých preferencích nastavit generování obrázků ve formátu PNG.

Pokud bychom si chtěli ve Firefoxu zobrazit vygenerovaný kód MathML, museli bychom si do Firefoxu nainstalovat add-on Native MathML (Frédéric Wang). Abychom si to mohli dále někam napastovat, musíme si nainstalovat ještě další extensi MathML Copy (Frédéric Wang).

Při zápisu vzorce do wikitextu uzavřeme jeho zdrojový řádek mezi tagy <math> ... </math>.

Příklad:

Vzorec pro výpočet kořenů kvadratické rovnice

zapíšeme jako:

<math>x_{1,2} = \frac{-b \pm \sqrt{b^2 - 4ac}}{2a}</math>

ve wikikódu. Ve vizuálním editoru stačí zadat <math načež nám vyskočí okno, kam můžeme kód LaTeX zadat. K tomuto oknu se jde ve vizuálu doklikat přes Vložit:Matematický vzorec.

K obrázku je defaultně přidružený text, obsahující právě zdrojový řádek (např. pro nevidomé, kteří obrázky nevidí). Jiný text můžeme vložit pomocí attributu alt, např:

<math alt="Vzorec pro výpočet kořenů kvadratické rovnice">x_{1,2} = \frac{-b \pm \sqrt{b^2 - 4ac}}{2a}</math>

To fungovalo u obrázků PNG, ale jak to vypadá, teď už to nějak nefunguje:

Další základní poznatky:

  • V zápise vzorců můžeme používat pouze ASCII znaky – všechny jiné znaky (např. diakritiku) musíme zapisovat jako entity TeXu.
  • Podporovaná je pouze omezená část ze všech možností TeXu (protože předtím ten náš zdroj ještě zpracuje externí validátor a konvertor mw:Texvc)
  • Všechna písmena se sází italikou, což je dobré pro algebraické, fyzikální aj. veličiny. Číslice se sází stojatě. Pokud chceme vložit nějaký stojatý text, musíme ho uvést jako \mbox{...} anebo \mathrm (neboli roman). V případě \mbox{...} na tomto místě může text teoreticky obsahovat i diakritiku (tj. unicode), ovšem často pak dochází k tomu, že použitý font taková písmenka neobsahuje a v lepším případě jsou pak nahrazena písmenky z jiného fontu. Proto je asi lepší používat původní TeXovou syntaxi pro akcenty, ale pouze v případě použití \mathrm, kde zase přímé použití diakritiky hodí syntaktickou chybu (viz příklady níže).

Další syntaktickou možností je využít parsovací funkci #tag: {{#tag:math|...}}, což může být versatilnější způsob, protože vložený text ... je nejprve expandován a pak se teprve interpretuje jako kód TeXu – tím pádem může obsahovat parametry, proměnné, parsovací funkce a šablony. Pokud bychom v takovém případě ale chtěli do textu zahrnout dvojité závorky {{...}}, museli bychom je oddělit mezerami. Stejně tak pro zobrazení svislítka bychom museli použít {{!}}.

Jinak dostatek příkladů pro různé vzorce, symboly, značky atd. najdeme na výše uvedených odkazech, takže není nutné se opakovat.

Test[editovat]

Různé příklady, na kterých si ověříme různé problémy.

Fonty, diakritika atp.[editovat]

<math>\|f\| = \inf \{ K \in \langle 0,+\infty) : |f(x)| \leq K \|x\| \mbox{ pro každé } x \in X \}</math>

(v řádku nám skáčou písmenka s diakritikou)


<math>\|f\| = \inf \{ K \in \langle 0,+\infty) : |f(x)| \leq K \|x\| \mbox{ pro ka\check{z}d\acute{e} } x \in X \}</math>

Nelze pochopit (syntaktická chyba): {\displaystyle \|f\| = \inf \{ K \in \langle 0,+\infty) : |f(x)| \leq K \|x\| \mbox{ pro ka\check{z}d\acute{e} } x \in X \}}

(syntaktická chyba, protože v \mbox{...} nemůžeme používat TeXovskou syntaxi pro akcenty


<math>\|f\| = \inf \{ K \in \langle 0,+\infty) : |f(x)| \leq K \|x\| \mathrm{ pro každé } x \in X \}</math>

Nelze pochopit (syntaktická chyba): {\displaystyle \|f\| = \inf \{ K \in \langle 0,+\infty) : |f(x)| \leq K \|x\| \mathrm{ pro každé } x \in X \}}

(syntaktická chyba, protože v \mathrm{...} zase nemůžeme používat přímou diakritiku v unicode


<math>\|f\| = \inf \{ K \in \langle 0,+\infty) : |f(x)| \leq K \|x\| \mathrm{ pro kazde } x \in X \}</math>

(V \mathrm{...} mezery ztrácí svůj význam, takže se nám vše slije dohromady)


<math>\|f\| = \inf \{ K \in \langle 0,+\infty) : |f(x)| \leq K \|x\| \mathrm{ pro\ kazde\ } x \in X \}</math>

(V \mathrm{...} jsme museli všechny mezery vložit pomocí \ )


<math>\|f\| = \inf \{ K \in \langle 0,+\infty) : |f(x)| \leq K \|x\| \mathrm{ pro\ ka\check{z}d\acute{e}\ } x \in X \}</math>

(Konečně se nám to zobrazuje tak, jak chceme – i když zápis české věty je celkem komplikovaný a písmenka s nabodeníčky také nejsou zcela ideální.)