Základy systému ConTeXt

Z Wikiknih

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 | editovat zdroj]

  • 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 | editovat zdroj]

  • \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 | editovat zdroj]

  • \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 | editovat zdroj]

Číslování stránek[editovat | editovat zdroj]

  • \setuppagenumbering[location=footer] – nastaví, aby se čísla stránek zobrazovala v zápatí

Velikost stránky[editovat | editovat zdroj]

  • \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 | editovat zdroj]

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 | editovat zdroj]

  • \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 | editovat zdroj]

  • \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.

Odsazení prvního řádku odstavce[editovat | editovat zdroj]

  • \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 | editovat zdroj]

Řádkování[editovat | editovat zdroj]

  • \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 | editovat zdroj]

  • \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[editovat | editovat zdroj]

Zvýrazňování[editovat | editovat zdroj]

  • \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 | editovat zdroj]

  • \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 | editovat zdroj]

  • ~ – 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 | editovat zdroj]

  • \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 | editovat zdroj]

  • \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ší[editovat | editovat zdroj]

Tabulka obsahu[editovat | editovat zdroj]

  • \completecontent

Rejstřík[editovat | editovat zdroj]

  • \index{prvek rejstříku}

Pozadí[editovat | editovat zdroj]

  • \setuptextbackground[parametr1,parametr2,parametr3]
    • frame=off
    • backgroundcolor=green
    • location=paragraph
    • leftoffset=.5\bodyfontsize
    • rightoffset=.5\bodyfontsize
  • \starttextbackground a \stoptextbackground

Uvozovky[editovat | editovat zdroj]

Ač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 | editovat zdroj]

  • \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[editovat | editovat zdroj]

Kýž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 | editovat zdroj]

  • "\unit[Ounce]{oz}{}" – pak "15.6 \Ounce" v textu dá výstup "15.6 oz (číslo a jednotka budou od nerozdělitelné).

Sekce[editovat | editovat zdroj]

  • \setupsectionblock [1..] [2.,.=.,.] – nastavení stylu sekce
    • 1 – IDENTIFIER
    • 2 – number = yes no
      • page = yes right
      • before = COMMAND
      • after = COMMAND

Skrytý text[editovat | editovat zdroj]

  • \starthiding\stophiding – Zapne ingorování textu mezi příkazy.

Definice a nastavení hlavičky[editovat | editovat zdroj]

  • \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 | editovat zdroj]

  • \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 | editovat zdroj]

  • \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[editovat | editovat zdroj]

Použ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 | editovat zdroj]

  • \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 číslo 5, jež vyvolá vysázení námi definovaného znaku namísto implicitního puntíku.

Obrázek[editovat | editovat zdroj]

  • \placefigure – varianta obecnějšího \placefloat
    • here – pokud je to možné, umísti obrázek na toto místo
    • force – vynutí umístění obrázku na tomto místě
    • page – umísti obrázek na zvláštní stránku
    • top – umísti obrázek k hornímu okraji stránky
    • bottom – umísti obrázek k dolnímu okraji stránky
    • left – umísti obrázek k levému okraji
    • right – umísti obrázek k pravému okraji
    • margin – umísti obrázek do marginálie

Mezery kolem objektů[editovat | editovat zdroj]

  • \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 | editovat zdroj]