Základy systému ConTeXt
ConTeXt je typografický systém, vytvořený coby nástavba na známý jazyk TeX. Neboť je někdy velice těžké najít při sazbě dokumentu tímto jazykem příkaz pro požadovanou funkci, bude užitečné sem některé často potřebované uvést. Příklady budou zaměřeny především na využití ConTeXtu v kombinaci s převaděčem XeTeX. Dokument nemá za cíl naučit uživatele jako ConTeXt používat, jde jen o pomůcku při užívání.
Kompilace dokumentu
editovat- Je nutno mít na linuxovém systému nainstalovány balíčky context a xetex.
- Zdrojový soubor by měl mít příponu „tex“.
- Kompilaci provedeme příkazem "texmfstart texexec –xtx jménosouboru", při stále chybě zkusíme ještě předtím spustit "texexec –make –xtx cz".
Nastavení dokumentu
editovat- \enableregime[utf] % Umožňuje užívat kódování utf-8, při použití XeTeXu netřeba
- \mainlanguage[cs] % Nastavuje hlavní jazyk dokumentu.
- \language % Přepíná jazyky v těle dokumentu.
- \setupbodyfont[csr] % Pomůže, pokud se ztrácejí znaky s diakritikou.
- \setupcolors[state=start] % Zapne používání barev.
- \usemodule[units] % Umožňuje užívat jednotky SI.
- \input spec-tst % Umožní používat utf-8 také v pdf-metadatech.
- \setupinteraction [parametr1,parametr2,parametr3]
- state=start, % Zapne interaktivitu dokumentu
- title={První pokus}, % Nastaví titul v pdf-metadatech.
- author={Josef Svoboda}, % Nastaví autora v pdf-metadatech.
- subtitle={zkouška}, % Nastaví podtitul v pdf-metadatech.
- keyword={pokus, zkouška} % Nastaví klíčová slova v pdf-metadatech.
- \usetypescript[berry][8r]
- \definetypeface[bookman][rm][serif][bookman][default][encoding=ec]
- \definebodyfont[Gentium]
- \setmainfont{Gentium}
- \definetypeface[Gentium][rm][Xserif][Gentium]
- \setupbodyfont[Gentium, 12pt]
- \setupbodyfont[12pt]
- \setupbodyfontenvironment[default][em=italic]
- \placebookmarks[chapter,section,subsection][chapter,section]
- \setupinteractionscreen[option=bookmark]
\starttext a \stoptext – Definice zpracovávaného textového pole (dokument bude sázen jen mezi těmito značkami).
Rozčlenění dokumentu
editovat- \startfrontmatter až \stopfrontmatter – "\chapter" vytváří nečíslovaná záhlaví v obsahu.
- \startbodymatter až \stopbodymatter – "\chapter" vytváří číslovaná záhlaví v obsahu.
- \startbackmatter až \stopbackmatter – "\chapter" vytváří nečíslovaná záhlaví v obsahu.
- \startappendices až \stopappendices – záhlaví mohou býti sázena jinak, kupř. "\chapter" může užívat písmena.
Stránky
editovatČíslování stránek
editovat- \setuppagenumbering[location=footer] – nastaví, aby se čísla stránek zobrazovala v zápatí
Velikost stránky
editovat- \setuppapersize[A5][A4] – stránka a5, tiskne se na papír a4
- \setuplayout[parametr1=hodnota1,parametr2=hodnota2] – nastavuje všechny velikosti na stránce
- backspace=1.2cm
- width=middle
- bottom=1cm
- topspace=1.2cm
- header=0.7cm
- footer=0.7cm
- marking=on
- leftmargindistance=0.3cm
- rightmargindistance=0.3cm
- footerdistance=0.5cm
- height=27.1cm
- grid=yes
- \showframe – ukáže rozložení oblastí stránky
- \showsetups – vypíše rozměry prvků rozložení stránky
Odstavce
editovat- Zajištění mezery alespoň 1 em na konci posledního řádku odstavce
\parfillskip=1em plus 1fil
- Zajištění, aby poslední řádek odstavce nebyl kratší než odstavcová zarážka prvního řádku
* \parfillskip=\hsize * \advance\parfillskip by -1.5\parindent * \advance\parfillskip by 0pt minus \parfillskip * \advance\parfillskip by 0pt minus -1em
Makro zřejmě TeXu, v ConTeXtu nutno prověřit funkčnost
Zarovnání
editovat- \midaligned{xxx}
- \startalignment[center] a \stopalignment
- \dontleavehmode – Někdy písmeno s diakritikou či uvozovka apod. na začátku odstavce zcela rozruší zarovnání a chová se podivně (údajně jen při použití písma, které diakritické znaky skládá, nemajíc tato písmena jako celky, př. Computer Modern). Vložení tohoto příkazu před problematické slovo pomůže.
- Zarovnání textu můžeme dosáhnout také použitím výplní:
- text začátku řádku \hfill text u pravého okraje – vyplnění řádku vodorovnou mezerou
- \vfill – text za příkazem výplňové svislé mezery bude na stránce umístěn dole
Zúžený úsek
editovat- \setupnarrower[left=1cm,middle=3em,right=4mm] – definice odsazení
- \startnarrower[right,middle,left] až \stopnarrower – oblast odsazení
- Funguje i bez předchozího nastavení
\setupnarrower
, v takovém případě left, middle a right užívána implicitní hodnota, pro všechny parametry stejná. Parametry left a right odsazují na dané straně, middle odsadí o zadanou či implicitní hodnotu z obou stran. Při kombinaci parametrů je výsledné odsazení součtem zadané či implicitní hodnoty pro onu stranu a middle.
- Funguje i bez předchozího nastavení
Odsazení prvního řádku odstavce
editovat- \setupindenting[parametr] – Nastavuje odsazení prvního řádku odstavce.
- yes – bezprostředně následující odstavec se odsadí
- always – všechny následující odstavce se odsadí
- no/not – bezprostředně následující odstavec se neodsadí
- never – žádný následující odstavec se neodsadí
- first – odsadí se i první řádky prvních odstavců (př. po nadpisu)
- next – neodsadí se první řádky prvních odstavců
- small medium big – velikost odsazení
- normal odd even – odsazuje všechny nebo jen liché či sudé odstavce
- DIMENSION – vlastní velikost odsazení
- \indenting[] – Zapne v těle textu odsazení první řádky odstavce.
- yes – bezprostředně následující odstavec se odsadí
- always – všechny následující odstavce se odsadí
- no/not – bezprostředně následující odstavec se neodsadí
- never – žádný následující odstavec se neodsadí
- first – odsadí se i první řádky prvních odstavců (př. po nadpisu)
- next – neodsadí se první řádky prvních odstavců
Svislé mezery
editovatŘádkování
editovat- \setupwhitespace[parametr] – Nastaví meziřádkové mezery.
- none
- small medium big – automaticky dle velikosti písma
- DIMENSION
- line – jakoby vložený prázdný řádek
- fixed fix –
- \whitespace či \nowhitespace – Změna mezer uvnitř dokumentu, funguje jen pokud jsou mezery globálně zapnuty.
Meziodstavcové mezery
editovat- \blank[parametr] – Vložení meziodstavcové mezery (neužívej \vskip). Pokud bez parametru, užije výchozí hodnotu, asi ze "\setupwhitespace"
- n*small n*medium n*big – automaticky dle velikosti písma (big = 2*medium = 4*small)
- force – zajistí účinnost i na začátku stránky
- nowhite back white
- disable reset
- line halfline formula
- fixed flexible
Písmo
editovatZvýrazňování
editovat\em
– Vysází zvýrazněný text, použije sám italickou korekci (úpravu mezer mezi znaky tak, aby esteticky vyhovovala). Implicitně využívá skloněné písmo, nikoli kurzívu. Jde o přepínač, nikoli příkaz, zadáváme tedy například{\em xxx}
, nikoli\em{xxx}
- \setupbodyfontenvironment[default][em=italic] – Nastaví pro \em implicitně kurzívu.
- \os – Vysází minuskové číslice.
Kapitálky
editovat- \setupcapitals[title=yes,sc=yes] – Nastaví, že kapitálky v textu budou pravé (větší než velká písmena) a bude tomu tak i v nadpisech.
Vodorovné mezery
editovat- ~ – nedělitelná mezera
- \, – zúžená mezera
- \definehspace[mez][1.2em] – Definice horizontální mezery nazvané "mez".
- \hspace[mez] – Vložení oné předtím definované mezery do textu. Nelze zadat velikost přímo zde, bez předchozí definice.
Velikost písma
editovat- \setupbodyfont – globální nastavení písma
- \switchtobodyfont[] – lokální změna písma (nemá vliv na velikost v záhlaví a zápatí)
- 6pt
- 24pt
- small
- big
- global
Příklady
editovat\midaligned{\sc\switchtobodyfont[18pt]{Patitul knihy}}
- Nápis bude vysázen vystředěně, kapitálkami, implicitním písmem dokumentu ve velikosti 18 pt
Další
editovatTabulka obsahu
editovat- \completecontent
Rejstřík
editovat- \index{prvek rejstříku}
Pozadí
editovat- \setuptextbackground[parametr1,parametr2,parametr3]
- frame=off
- backgroundcolor=green
- location=paragraph
- leftoffset=.5\bodyfontsize
- rightoffset=.5\bodyfontsize
- \starttextbackground a \stoptextbackground
Uvozovky
editovatAčkoli lze sázet přímo uvozovky v UTF-8, je lépe užívat logické značení. Typ uvozovek je pak zvolen dle nastaveného jazyka, lze jej i redefinovat.
- \quote{xxx} – jednoduché uvozovky
- \quotation{xxx} – běžné dvojité uvozovky
- \startquotation a \stopquotation – Pro sazbu citací. Vytvoří odstavec odsazený na obou stranách, bez zarážky prvního řádku, s vysícími uvozovkami (umístěnými mimo textovou oblast).
Dělení slov
editovat- \lefthyphenmin=3 – definuje minimální velikost zůstavší části slova
- \righthyphenmin=4 – definuje minimální velikost oddělené části slova
- \showhyphens{nejvyšší} – program ve výpisu ukáže, kde všude by rozdělil slovo, při zkoušení nefunguje
- \hyphenation{ab-bre-via-tion} – zadání možností dělení slova
Zvláštní znaky
editovatKýžený znak | Kód v módu verbatim | Kód v běžném módu |
---|---|---|
# | \type{#} | \# |
$ | \type{$} | \$ |
& | \type{&} | \& |
% | \type{%} | \% |
+ | \type{+} | $+$ |
− | \type{-} | $-$ |
= | \type{=} | $=$ |
< | \type{<} | $<$ |
> | \type{>} | $>$ |
[ | \type{[} | $[$ |
] | \type{]} | $]$ |
{ | $\{$ | |
〈 | \langle | |
〉 | \rangle | |
% | \percent | |
‰ | \permille |
Definice měrné jednotky
editovat- "\unit[Ounce]{oz}{}" – pak "15.6 \Ounce" v textu dá výstup "15.6 oz (číslo a jednotka budou od nerozdělitelné).
Sekce
editovat- \setupsectionblock [1..] [2.,.=.,.] – nastavení stylu sekce
- 1 – IDENTIFIER
- 2 – number = yes no
- page = yes right
- before = COMMAND
- after = COMMAND
Skrytý text
editovat\starthiding
až\stophiding
– Zapne ingorování textu mezi příkazy.
Definice a nastavení hlavičky
editovat- \definehead[1…][2…]
- 1 – IDENTIFIER (jméno nové hlavičky)
- 2 – SECTION – Jméno hlavičky, po které zdědí vlastnosti, kupříkladu chapter; dále pak vlastnosti upravujeme pomocí "\setuphead".
- \setuphead [1.,.] [2.,.=.,.]
- 1 – SECTION (př. chapter, section, subsection)
- 2
- style = normal bold slanted boldslanted type cap small…
- COMMAND
- textstyle = normal bold slanted boldslanted type cap small...
- COMMAND
- numberstyle = normal bold slanted boldslanted type cap small...
- COMMAND
- color = IDENTIFIER
- textcolor = IDENTIFIER
- numbercolor = IDENTIFIER
- number = yes no
- ownnumber = yes no
- page =
- left – hlavička navrchu sudé stránky
- right – hlavička navrchu liché stránky
- yes – hlavička navrchu nové stránky
- continue =
- yes – Když sekce bezprostředně následuje kapitolu, bude na téže stránce ačkoli page=yes.
- no – Ač sekce bezprostředně následuje kapitolu, nebude při page=yes na téže stránce
- header = none empty high nomarking
- text = none empty high nomarking
- footer = none empty high nomarking
- before = COMMAND
- inbetween = COMMAND
- after = COMMAND
- alternative = normal inmargin middle TEXT
- hang = none broad fit line NUMBER
- command = \...#1#2
- numbercommand = \...#1
- textcommand = \...#1
- deepnumbercommand = \...#1
- deeptextcommand = \...#1
- prefix = + - TEXT
- placehead = yes no empty
- incrementnumber = yes no LIST FILE
- resetnumber = yes no
- file = IDENTIFIER
- expansion = yes no command
- margintext = yes no
- inherits from \setupheads
Nastavení číslování u číslovaných nadpisů
editovat- \setupheads [.,.=.,.] – Stojí v deklarační oblastí souboru.
- sectionnumber = yes NUMBER no
- alternative = normal margin middle TEXT paragraph
- separator = TEXT
- stopper = TEXT
- align = inner outer left right middle normal no yes
- aligntitle = yes float no
- tolerance = verystrict strict tolerant verytolerant stretch
- indentnext = yes no
- command = \...#1#2
- margin = DIMENSION
Odkazy
editovat- \in{1..}{2..}[3..] – Vysází číslo sekce či obrázku.
- 1 – TEXT před číslem sekce (OPTIONAL)
- 2 – TEXT za číslem sekce (OPTIONAL)
- 3 – REFERENCE (nač se odkazujeme)
- \about[1..] – Vysází jméno sekce v uvozovkách.
- 1 – REFERENCE (nač se odkazujeme)
- \at{1..}{2..}[3..] – Vrátí stránku odkazu.
- 1 – TEXT před číslem stránky (OPTIONAL)
- 2 – TEXT za číslem stránky (OPTIONAL)
- 3 – REFERENCE (nač se odkazujeme)
Seznamy
editovatPoužitelné parametry pro nastavení:
- packed – žádná vodorovná mezera mezi položkami
- continue – číslování začne tam, kde skončilo v předchozím výčtu (pro proložení výčtů textem)
- inmargin – umístí symboly číslování do okraje
- atmargin – umístí symboly číslování těsně ke kraji
- text – odstavcové číslování, formátuje položky jako běžící text (odrážky/číslování i uprostřed odstavce, vyjdou-li tak)
- intro – pevně spojí seznam s uvozující větou (větou před seznamem), aby nebyly rozděleny stránkovým zlomem
- standard – default setup
- joinedup – žádné odsazení před a po bloku položek
- paragraph – no white space before an itemization
- n*serried – nastavuje vodorovnou mezeru po symbolu číslování, čím větší „n“, tím menší mezera, nakonec posunuje číslo/odrážku až do textu a něm
- n*broad – horizontální mezera mezi značkou a textem, čím větší „n“, tím větší mezera
- stopper – umístí ukončení značka (implicitně „.“)
- columns – two columns
- three, four, five – užito spolu s "columns" dá daný počet slouců
- R – I, II, III…
- r – i, ii, iii…
- KR – I, II, III… (v kapitálkách)
- KA – totéž jako KR
- A – A, B, C…
- a – a, b, c…
- AK – A, B, C… (v kapitálkách)
- n – 1, 2, 3…
- m – 1, 2, 3… (minuskové číslice)
- g – malá písmena alfabety
- G – velká písmena alfabety
- 1 – puntíky
- 2 – pomlčky
- 3 – hvězdičky
- 4 – trojúhelníky prázdné s hrotem k textu
- 5 – malé kroužky
- 6 – střední kroužky
- 7 – velké kroužky
- 8 – čtverečky prázdné
Definice vlastního symbolu
editovat\definesymbol[5][$\clubsuit$]
- Příkaz zadefinuje vlastní znak pro odrážky užívané pro uvození položek seznamu. Číslo
5
je zde identifikátorem, ve druhé závorce následuje znak, který je identifikátoru přiřazen coby hodnota. V následném příkazu\startitemize
uvedeme jako parametr znaku odrážky číslo5
, jež vyvolá vysázení námi definovaného znaku namísto implicitního puntíku.
- Příkaz zadefinuje vlastní znak pro odrážky užívané pro uvození položek seznamu. Číslo
Obrázek
editovat\placefigure
– varianta obecnějšího\placefloat
here
– pokud je to možné, umísti obrázek na toto místoforce
– vynutí umístění obrázku na tomto místěpage
– umísti obrázek na zvláštní stránkutop
– umísti obrázek k hornímu okraji stránkybottom
– umísti obrázek k dolnímu okraji stránkyleft
– umísti obrázek k levému okrajiright
– umísti obrázek k pravému okrajimargin
– umísti obrázek do marginálie
Mezery kolem objektů
editovat- \startlinecorrection až \stoplinecorrection – Koriguje nepěkné výsledky meziodstavcových mezer, jaké se někdy vyskytují kolem tabulek či obrázků, třeba užívat jen v případě nutnosti.
Externí odkazy
editovat- http://wiki.contextgarden.net – Oficiální stránka systému ConTeXt
- http://www.root.cz/serialy/context – Seriál o ConTeXtu na www.root.cz
- http://en.wikipedia.org/wiki/ConTeXt – Článek na anglické Wikipedii