DTP1. (příprava textu pomocí počítače) Kapitola 10 / TEX



Podobné dokumenty
Co by uživatel L A TEXu

DMX512 PC Control Stručný návod k použití programu Verze 1.0 Copyright 2007 Dokumentace: Ing. Jaroslav Nušl

Algoritmizace a programování

Odstavcová sazba Zpracování textů na počítači

Poruchy modul pro rychlé hlášení poruch z provozu.

Milníky vývoje vědy a kultury. vynález písma vynález knihtisku počítačová sazba

Střední průmyslová škola strojnická Olomouc, tř.17. listopadu 49

MS Word 2007 REVIZE DOKUMENTU A KOMENTÁŘE

František Hudek. červen ročník. Nastavení myši, místní a jazykové nastavení.

Algoritmizace a programování

Příručka pro práci s dataloggerem Labquest 2. Zapínání a domácí obrazovka

JAK ZVLÁDNOUT E-LEARNINGOVÝ KURZ

Ruční úprava dělení v TeXu (1)

Digitální učební materiál

TIP: Pro vložení konce stránky můžete použít klávesovou zkratku CTRL + Enter.

Konverze textových formátů

EncTEX. možnost překódování vstupu v TEXu

Lidé komunikují prostřednictvím dokumentů připravovaných elektronicky.

ZADÁNÍ: ÚVOD: SCHÉMA:

1 Seznámení s Word 2010, karty, nejčastější činnosti. 2 Tvorba dokumentu

Předmluva 1 Typografická konvence použitá v knize 2. 1 Úvod do Wordu Popis obrazovky 7 Popis panelu nabídek 9 Zadávání příkazů 10

Lidé komunikují prostřednictvím dokumentů připravovaných elektronicky.

Soubory a databáze. Soubor označuje množinu dat, která jsou kompletní k určitému zpracování a popisují vybrané vlastnosti reálných objektů

Vítězslav Bártl. prosinec 2013

Logické řízení výšky hladiny v nádržích

NÁVOD K OBSLUZE MODULU VIDEO 64 ===============================

Ozubené řemeny XLH. Ozubené řemeny s palcovou roztečí. Provedení XL, L, H, XH, XXH. Konstrukční charakteristiky. Rozměrové charakteristiky

Novinky verze ArCon 14 Small Business

Vzdělávací obor: Prvouka

ÚVOD DO HRY PRINCIP HRY

Změna sazby DPH v HELIOS Red po

téma: Formuláře v MS Access

Přechodové moduly pro ŘS SAIA Příručka projektanta

M-10. AU = astronomická jednotka = vzdálenost Země-Slunce = přibližně 150 mil. km. V následující tabulce je závislost doby

DTP1. Digitální grafický výstup. ernobílé grafické objekty. (příprava textu pomocí počítače) Kapitola 8 / Obrázky a rastrování

Rolovací sítě okenní Vyobrazenívýrobku ROLOVACÍ SÍTĚ OKENNÍ

Úprava tabulek v MS Word. Centrum pro virtuální a moderní metody a formy vzdělávání na Obchodní akademii T. G. Masaryka, Kostelec nad Orlicí

Vytvoření nebo odstranění makra Excel

Tranzistory. BI-CiAO Číslicové a analogové obvody 4. přednáška Martin Novotný ČVUT v Praze, FIT,

Lineární algebra. Vektorové prostory

Novinky v programu Majetek 2.06

Digitální učební materiál

Seznámení žáků s pojmem makra, možnosti využití, praktické vytvoření makra.

Výrazy lze též zavést v nečíselných oborech, pak konstanty označuji jeden určitý prvek a obor proměnné není množina čísel.

Uložené procedury Úvod ulehčit správu zabezpečení rychleji

očekávaný výstup Člověk a příroda 2. stupeň P znát základní funkce hlavních orgánů a orgánových soustav rostlin i živočichů ročník 6. č.

PRŮVODCE PRAVIDLY PUBLICITY v projektech spolufinancovaných z Integrovaného operačního programu.

Průmyslová vrata Sekční průmyslová vrata

Technické listy. Rozměry: Stránka č. 1 z 2. Popis Modelu TECNO 500-D-M Nízká židle

Komunikační protokol

LPS2. Sada pro synchronní komunikaci na 1000m s galvanickým oddělením. 15. října 2010 w w w. p a p o u c h. c o m

Rychlý postup k nastavení VoIP telefonu WELL 3130 IF

CL232. Převodník RS232 na proudovou smyčku. S galvanickým oddělením, vysokou komunikační rychlostí a se zvýšenou odolností proti rušení

Spacial. Objevte novou generaci rozváděčů: Spacial SF systém řadových skříní Spacial SM samostatně stojící skříň. univerzálnost čas efektivita služby

GORE-TEX GARMENT CARE INSTRUCTIONS EUROPE

Oborové číslo Hodnocení - část A Hodnocení - část B Hodnocení - část A+B

ASYNCHRONNÍ STROJ. Trojfázové asynchronní stroje. n s = 60.f. Ing. M. Bešta

Průtokové křivky Funkční schémata Technické tabulky 0 0. Uzavírací ventily 50 - T50 1. Šroubení s funkcí 55 2

1 - Prostředí programu WORD 2007

OBEC PETKOVY, okres Mladá Boleslav. Obecně závazná vyhláška obce Petkovy č. 1/2013

Uživatelská dokumentace

materiál č. šablony/č. sady/č. materiálu: Autor: Karel Dvořák Vzdělávací oblast předmět: Informatika Ročník, cílová skupina: 8.

Adresace paměti. 11.přednáška

Business Contact Manager Správa kontaktů pro tisk štítků

B Kvantitativní test. Semestrální práce TUR. Novotný Michal

Vnější vyjímatelné panty - použití

Hypertextový odkaz No.1. Word 2010

7. Silně zakřivený prut

Obsah 1. Grafický manuál firmy 2. Podklady grafického manuálu 3. Varianty loga 4. Logo a logotyp

VYHLÁŠKA ze dne. června 2009 o stanovení podrobností užívání a provozování informačního systému datových schránek

Databázovéa informačnísystémy NÁVRH IMPLEMENTACE 2 KONZISTENCE DATABÁZE

STOLOVÁ DESKA N - N 01. Rok 2010 PRACOVNÍ STOLY. List1

Struktury a obsah výstupních zpráv pro MultiCash ČSOB

Digitální učební materiál

Název: VY_32_INOVACE_PG3307 Vytváření objektů z křivek pomocí Extrude a Lathe

Obsah. Obsah. Úvod Makra v Excelu Nahrávání maker První setkání s editorem jazyka Visual Basic... 31

2.6.4 Lineární lomené funkce s absolutní hodnotou

Goniometrie trigonometrie

Trubkový dveřní zavírač model RTS neviditelný dveřní zavírač

DUM téma: Výklad k sadě

KAPITOLA 6.3 POŽADAVKY NA KONSTRUKCI A ZKOUŠENÍ OBALŮ PRO INFEKČNÍ LÁTKY KATEGORIE A TŘÍDY 6.2

Algoritmus (nebo dřívějším pravopisem algorithmus)

WEBMAP Mapový server PŘÍRUČKA PRO WWW UŽIVATELE Hydrosoft Veleslavín, s.r.o., U Sadu 13, Praha 6

TEX pro pragmatiky TEX plaintex CSplain OPmac Petr Olšák

Operační program Rybářství

Jan ustek, Ostrava, Czech Republic

Struktura třídy, operátory, jednoduché algoritmy, junit. Programování II 2. cvičení Alena Buchalcevová

Lidé komunikují prostřednictvím dokumentů připravovaných elektronicky.

Pokyny pro zpracování absolventské práce

Pokyny České pošty pro označování Doporučených zásilek čárovými kódy

Směrované a přepínané sítě Border Gateway Protocol (BGP)

Inovace výuky prostřednictvím šablon pro SŠ

ČÁST PÁTÁ POZEMKY V KATASTRU NEMOVITOSTÍ

SPOJE ŠROUBOVÉ. Mezi nejdůleţitější geometrické charakteristiky závitů patří tyto veličiny:

KAMEN E IV I O V Silnič ni ní č s t s avby av by 2

Uživatelský manuál pro práci se stránkami OMS a MS provozované portálem Myslivost.cz. Verze 1.0

MATERIÁL PRO JEDNÁNÍ RADY MĚSTA PÍSKU DNE

MONTÁŽNÍ NÁVOD LIC VÍKO ŠACHTY SE ZAJIŠTĚNÍM

Výzva k podání nabídky včetně zadávací dokumentace na veřejnou zakázku malého rozsahu

Diagnostický adaptér VAG1 VAGR1 VAGR2 Instalace pro operační systémy Windows

Transkript:

DTP1 (příprava textu pomocí počítače) Kapitola 10 / TEX Petr Lobaz, 25. 4. 2007

Struktura TEXu input procesor konverze vstupu do platformově nezávislé podoby token procesor tvorba posloupností tokenů expand procesor expanze maker na primitivní příkazy hlavní procesor tvorba sazby, výstup činnost řízena hlavním procesorem DTP1, přednáška č. 10 TEX ² /38

Input procesor překódování vstupu do ASCII TEX obsahuje i inverzní algoritmus pro výstup na terminál příkazem \write DTP1, přednáška č. 10 TEX ³ /38

Token procesor řídicí sekvence interpretuje jako token (např. \par) skupinu mezer interpretuje jako jednu mezeru prázdný řádek interpretuje jako token \par ostatní znaky se stávají tokenem znak-kategorie (např. A 11 ) některé kategorie zpracuje token procesor sám (např. % 14 ) DTP1, přednáška č. 10 TEX ⁴ /38

Token procesor KATEGORIE 0 uvození řídicí sekvence \ 1 otevření skupiny { 2 uzavření skupiny } 3 matematický režim $ 4 oddělovač buněk & 5 konec řádku ^^M (ASCII 13) 6 označení parametrů maker # 7 horní index ^ 8 dolní index _ 9 znak, který se ignoruje ^^@ (ASCII 0) 10 mezera DTP1, přednáška č. 10 TEX ⁵ /38

Token procesor 11 písmeno a z, A Z 12 ostatní znaky 13 aktivní znaky ~ 14 komentář % 15 nedovolený znak ^^? (ASCII 127) nastavení kategorie \catcode`\<znak>=<číslo> DTP1, přednáška č. 10 TEX ⁶ /38

Token procesor PŘÍKLADY \catcode`\@=11 \def\m@jemakro{ } \def\uzivatelske{ \m@jemakro } \catcode`\@=12 {\catcode`\*=13 \def*{$\bullet$} Teď snadno sázíme puntíky: * * *} DTP1, přednáška č. 10 TEX ⁷ /38

Expand procesor DEFINICE MAKER \def definice makra \edef definice makra, ve fázi učení probíhá expanze \global definice je platná i mimo skupinu \long umožní token \par v parametru \outer makro \outer\def se nesmí objevit v těle jiných definic \gdef \global\def \xdef \global\edef DTP1, přednáška č. 10 TEX ⁸ /38

Expand procesor DEFINICE MAKER \def <řídicí sekvence><maska parametrů> {<tělo definice>} řídicí sekvence znak s kategorií 0 znaky s kategorií 11 (písmena) nebo jeden znak s jinou kategorií tělo definice balancovaný text stejný počet { a } je-li třeba nebalancovaně otvírat/zavírat skupinu, můžeme použít \begingroup, \endgroup DTP1, přednáška č. 10 TEX ⁹ /38

Expand procesor maska parametrů nepovinná, začíná za řídicí sekvencí, končí { <separátor>#1<separátor>#2<separátor> #3 #9<separátor> <separátor> nepovinný obsahem parametru balancovaný text \def\sazbamailu#1@#2\konec{{\bf #1}@#2} \def\mail#1{\sazbamailu #1\konec} DTP1, přednáška č. 10 TEX ¹⁰ /38

Expand procesor špatně: \def\begpuntiky{\begingroup \catcode`\*=13 \def*{$\bullet$}} \def\endpuntiky{\endgroup} správně: {\catcode`\*=13 \gdef\begpuntiky{\begingroup \catcode`\*=13 \def*{$\bullet$}}} \def\endpuntiky{\endgroup} DTP1, přednáška č. 10 TEX ¹¹ /38

Expand procesor ZMĚNA POŘADÍ EXPANZE primitivní příkaz \expandafter \expandafter <token1> <token2> <token1> <výsledek expanze token2> \expandafter <token1>\expandafter <token2><token3> <token1> <token2> <výsledek expanze token3> DTP1, přednáška č. 10 TEX ¹² /38

Expand procesor PŘÍKLADY špatně: \uppercase{\romannumeral\num} dobře: \expandafter\uppercase \expandafter{\romannumeral\num} DTP1, přednáška č. 10 TEX ¹³ /38

Hlavní procesor REGISTRY 256 uživatelských registrů každého typu obsah platný v rámci skupiny číslo: \count0 \count255 rozměr: \dimen0 \dimen255, \hsize, mezera: \skip0 \skip255, \baselineskip, matematická mezera řetězec tokenů: \toks0 \toks255, \everypar, box: \box0 \box254 DTP1, přednáška č. 10 TEX ¹⁴ /38

Hlavní procesor PRÁCE S REGISTRY \count0 = 1 \countdef\pageno=0 \pageno=1 \newcount\mujcitac \mujcitac=5 alokační příkazy \newcount, \newdimen, \newskip, \newmuskip, \newtoks, \newbox DTP1, přednáška č. 10 TEX ¹⁵ /38

Hlavní procesor PRÁCE S REGISTRY \count5 = 3 \count\count5 = 18 \advance\count5 by 1 \dimen0 = 5mm \dimen1 = 1.3\dimen0 \dimen2 6mm DTP1, přednáška č. 10 TEX ¹⁶ /38

Hlavní procesor PRÁCE S REGISTRY \skip0 = 1pt plus 3 pt minus 2pt \skip1 = 1pt \skip2 = 0pt plus 1fil POUŽÍVANÉ ZKRATKY \hfil \hskip 0pt plus 1fil \hfill \hskip 0pt plus 1fill \hss \hskip 0pt plus 1fil minus 1fil \vfil \vskip 0pt plus 1fil \vfill \vskip 0pt plus 1fill \vss \vskip 0pt plus 1fil minus 1fil DTP1, přednáška č. 10 TEX ¹⁷ /38

Hlavní procesor PODMÍNĚNÝ PŘÍKAZ \if <podmínka><akce> \else <akce> \fi primitivní příkazy \if, \ifx, \ifcat, \ifnum, \ifodd, \ifdim, \ifeof, \iffalse, \iftrue, \ifhbox, \ifvbox, \ifvoid, \ifhmode, \ifvmode, \ifmmode, \ifinner, \ifcase DTP1, přednáška č. 10 TEX ¹⁸ /38

Hlavní procesor implementace cyklu \def\loop#1\repeat{\def\body{#1}\iterate} \def\iterate{ \body \let\next\iterate \else\let\next\relax\fi \next} \let\repeat=\fi příklad: \newcount\citac \citac=1 \loop \the\citac\ \advance\citac by 1 \ifnum\citac<10\repeat DTP1, přednáška č. 10 TEX ¹⁹ /38

Režimy hlavního procesoru hlavní vertikální mód výchozí režim práce TEXu odstavcový horizontální mód sazba odstavce začíná, jakmile se objeví první prvek odstavce (např. písmeno) končí příkazem \par nebo prázdnou řádkou; TEX vyhodnotí řádkový zlom a vrátí se do vertikálního módu DTP1, přednáška č. 10 TEX ²⁰ /38

Režimy hlavního procesoru vnitřní vertikální mód neumožňuje stránkový zlom, uvnitř \vbox vnitřní horizontální mód neumožňuje řádkový zlom, uvnitř \hbox display matematický mód sazba matematiky na zvláštní řádek začíná i končí sekvencí $$ neumožňuje řádkový zlom vnitřní matematický mód sazba matematiky v řádce začíná i končí znakem $ za jistých podmínek umožňuje zalomení DTP1, přednáška č. 10 TEX ²¹ /38

Režimy hlavního procesoru VERTIKÁLNÍ MÓD tvoří vertikální seznam materiálu box linka (\hrule) výplněk (\kern) pružný výplněk (\vskip, ) penalta (\penalty) další prvky DTP1, přednáška č. 10 TEX ²² /38

Režimy hlavního procesoru HORIZONTÁLNÍ SEZNAM tvoří horizontální seznam materiálu znak box linka (\vrule) výplněk (\kern) pružný výplněk (\hskip,, ) penalta (\penalty) dělení slova (\discretionary) další prvky DTP1, přednáška č. 10 TEX ²³ /38

Režimy hlavního procesoru BOXY prvky sazby, složeny z prvků \hbox horizontálního seznamu \vbox, \vtop, \vcenter vertikálního seznamu parametry šířka, výška, hloubka \setbox0=\hbox{pokusný box} \the\wd0 \the\ht0 \the\dp0 \copy0\box0 \def\obvod#1{\vbox{% \hrule\hbox{\vrule #1 \vrule}\hrule}} \obvod{text} DTP1, přednáška č. 10 TEX ²⁴ /38

Režimy hlavního procesoru box o daném rozměru \hbox to 1cm{pokus\hfil} \hbox spread \hsize{toto je text} \setbox0\hbox{pokus}\wd0=1cm změna umístění boxu pro \hbox: \raise, \lower pro \vbox: \moveleft, \moveright DTP1, přednáška č. 10 TEX ²⁵ /38

Režimy hlavního procesoru MEZERY VE VERTIKÁLNÍM SEZNAMU \baselineskip (12 pt) \lineskip (1 pt) \lineskiplimit (0 pt) \parskip (0 pt) DTP1, přednáška č. 10 TEX ²⁶ /38

Zalamování ALGORITMY TEXU řádkový zlom stránkový zlom MÍSTA ZLOMU pružný výplněk penalta dělení slov (\discretionary) \def\podpis#1\par{\unskip \nobreak\hfill\penalty100\hskip2em\hbox{}\nobreak\hfill \hbox{\it #1}\par} DTP1, přednáška č. 10 TEX ²⁷ /38

Zalamování \DISCRETIONARY \discretionary{<pre>}{<post>}{<nobreak>} příklady 10\discretionary{}{tisíc}{\kern.2em000} 5 \discretionary{\ až}{}{--} 10 \- je \discretionary{-}{}{} po\-kus\-ný text DTP1, přednáška č. 10 TEX ²⁸ /38

Zalamování ŘÁDKOVÝ ZLOM začíná povelem \par TEX vloží \unskip\penalty10000\hskip\parfillskip\penalty-10000 nalezení míst pro řádkový zlom rozložení seznamu do boxů šířky \hsize ovlivněno \leftskip, \rightskip, \hangindent, \hangafter, \parshape algoritmus minimalizuje badness DTP1, přednáška č. 10 TEX ²⁹ /38

Zalamování sestavení odstavce vložení řádek do vertikálního seznamu za každý řádek materiál z \vadjust vložení penalt mezi řádky \interlinepenalty, \clubpenalty, \widowpenalty, \brokenpenalty DTP1, přednáška č. 10 TEX ³⁰ /38

Zalamování TVAR ODSTAVCE \parindent, \parfillskip \leftskip, \rightskip, \hangindent, \hangafter, \parshape vynucení kratšího východového řádku \parfillskip=2em plus 1fil sazba na levý prapor \parindent=0pt \leftskip=0pt \rightskip=0pt plus 1fil DTP1, přednáška č. 10 TEX ³¹ /38

Zalamování sazba do bloku s centrovaným východovým řádkem \leftskip=0pt plus 1fil \rightskip=0pt plus -1fil \parfillskip=0pt plus 2fil \parindent=0pt DTP1, přednáška č. 10 TEX ³² /38

Zalamování iniciála \font\inicialfont=csbx10 scaled 2700 \newbox\inicialbox \def\iniciala#1{\setbox\inicialbox \hbox{\lower12pt\hbox{\inicialfont #1}% \hskip.2em}% \hangindent=\wd\inicialbox% \dp\inicialbox=0pt% \hangafter=-2% \noindent% \hskip-\wd\inicialbox\box\inicialbox} \iniciala První odstavec textu, DTP1, přednáška č. 10 TEX ³³ /38

Zalamování STRÁNKOVÝ ZLOM plnění strany převod materiálu z přípravné oblasti na akt. stranu hledání nejlepšího zlomu spuštění uzavření strany registry \pagetotal, \pagegoal (=\vsize) uzavření strany vrácení materiálu za místem zlomu do přípravné oblasti kompletace strany do \box255 vyvolání výstupní rutiny \output spuštění algoritmu plnění strany DTP1, přednáška č. 10 TEX ³⁴ /38

Zalamování VÝSTUPNÍ RUTINA \output={\shipout\vbox{% \line{záhlaví\hfil\the\pageno} \bigskip\box255} \global\advance\pageno by 1} DTP1, přednáška č. 10 TEX ³⁵ /38

Zalamování VÝSTUPNÍ RUTINA PLAINU \newtoks\headline \headline={\hfil} \newtoks\footline \footline={\hss\tenrm\folio\hss} \def\folio{\ifnum\pageno<0 \romannumeral-\pageno \else\number\pageno \fi} \def\advancepageno{\ifnum\pageno<0 \global\advance\pageno by -1 \else\global\advance\pageno by 1 \fi} \output{\plainoutput} \def\plainoutput{\shipout\vbox{\makeheadline\pagebody\makefootline}% \advancepageno \ifnum\outputpenalty>-20000 \else\dosupereject\fi} \def\pagebody{\vbox to\vsize{\boxmaxdepth\maxdepth \pagecontents}} \def\makeheadline{\vbox to 0 pt{\vskip -22.5 pt \line{\vbox to 8.5 pt{}\the\headline}\vss}\nointerlineskip} \def\makefootline{\baselineskip 24 pt\lineskiplimit 0 pt\line{\the\footline}} \def\dosupereject{\ifnum\insertpenalties>0 \line{}\kern-\topskip\nobreak\vfill\supereject\fi} DTP1, přednáška č. 10 TEX ³⁶ /38

Zalamování CHYBOVÁ HLÁŠENÍ underfull \hbox podtečení řádka nebo hbox obsahuje málo materiálu bylo nutno příliš roztáhnout mezery badness jak ošklivé je roztažení, max. 10 000 overfull \hbox přetečení řádka nebo hbox obsahuje mnoho materiálu část materiálu přesahuje box hlášení o rozměru přesahujícího materiálu underfull \vbox, overfull \vbox pro stránku nebo vbox DTP1, přednáška č. 10 TEX ³⁷ /38

Činnost TEXu VSTUP T E XU dokument (.tex), formát (binární forma) metrika fontu (.tfm) v L A TEXu navíc.cls,.sty,.toc,.lof,.lot,.aux, VÝSTUP T E XU tiskové strany (.dvi), zpráva o překladu (.log) v L A TEXu navíc.toc,.lof,.lot,.aux,.fd, ZPRACOVÁNÍ DVI bitmapové fonty (.pk), volání Metafontu (.mf, ) virtuální fonty (.vf), mapovací tabulky (.map) DTP1, přednáška č. 10 TEX ³⁸ /38