PB029 Elektronická příprava dokumentů Anyone who would letterspace the lowercase would steal sheep. Frederick Goudy (1865 1947), when looking on a prize winner certificate You cannot not communicate. Paul Watzlawick (1921 2007), in Pragmatics of Human Communication Lidé komunikují prostřednictvím dokumentů připravovaných elektronicky. Petr Sojka (FI MU Brno) podzim 2016 1 / 198
PB029 Elektronická příprava dokumentů PB029 Elektronická příprava dokumentů Petr Sojka Fakulta informatiky MU, Brno podzim 2016 Petr Sojka (FI MU Brno) podzim 2016 2 / 198
E = mc 2?! E = mc 2 E = mc 2 Značkování Markup Návrh Design Sazba Typesetting Korektury Proofreading Předloha Preprint Tisk Print Distribuce Distribution Petr Sojka (FI MU Brno) podzim 2016 27 / 198
Osnova dnešní přednášky Shrnutí předchozí hodiny, komentáře k anketě. Linearizace myšlenek do textů, zápis textu v Unicode. Logická struktura dokumentu, motivace pro značkování. XML. Dobrá strukturovanost. Validace. Demopřednáška: Rozdíly a záludnosti textových souborů na různých platformách v mezinárodním prostředí. (Textové soubory na různých platformách) Různé podoby TeXu: TeX, e-tex, pdftex, XeTeX, LuaTeX, plain TeX, csplain, LaTeX, ConTeXt a co si s tím vším počít. (Různé podoby TeXu) Jak TeXem sázet české/slovenské dokumenty a seznámení s programem vlna. (Česká sazba TeXem) Petr Sojka (FI MU Brno) podzim 2016 28 / 198
Anketa komentář Histogram otázky 5: - Korektury: : - Lokalizace: - Design: - Tvorba webu: ; - XML: ; - Typografie:. - (La)TeX: ; kde: = 1b, ; = 2/3b, : = 1/2b,. = 1/3b L A TEX a typografie! Petr Sojka (FI MU Brno) podzim 2016 29 / 198
Anketa komentář Rozebraná témata k referování u otázky 7: tvorba webu: 3, webová publikace knih: 1 (Návrhy či připomínky?) Přednáška by mohla být akčnější (V čem jste s dosavadním stavem nespokojení?) Word je na nic. (Návrhy či připomínky?) Prelomiť defaultnú pasivitu študentov na prednáške; akýmkolvek sposobom. (Návrhy či připomínky?) Viac L A TEXu Petr Sojka (FI MU Brno) podzim 2016 30 / 198
PB029 Elektronická příprava dokumentů 3. přednáška, 5. 10. 2016 Linearizované myšlenky z hlavy autora do textu Petr Sojka (FI MU Brno) Značkování podzim 2016 31 / 198
Linearizace textů a zápis textů elektronicky: Unicode Kódování textů. 5000 živých jazyků s více než miliónem znaků. Nutnost domluvy reprezentace znaků (v CS Kam, KOI-8, CP-1250, ISO Latin2,... ). Unicode Consortium je nevýdělečná organizace, založená 1989 pro vývoj, rozšiřování a podporu používání Unicode Standardu. Členové konsorcia představují široké spektrum korporací a organizací v průmyslu počítačů a informačních technologií. Respektuje ISO (International Standard Organization), mezinárodní ISO standard ISO/IEC 10646-1, 1993: Universal Multiple-Octet Coded Character Set (UCS). Petr Sojka (FI MU Brno) Značkování podzim 2016 32 / 198
Linearizace textů a zápis textů elektronicky: Unicode (cont.) První standard s ambiciózním cílem obsahovat všechny znaky používané v psaných jazycích, včetně matematických a dalších symbolů. Jazykově neutrální, zrušení předpokladů ekvivalence znaků a glyfů, neproporcionality hladkého textu. Petr Sojka (FI MU Brno) Značkování podzim 2016 33 / 198
The Unicode Standard, ISO/IEC 10646 Unicode: sada znaků a pravidel zpracování specifikovaná konsorciem Unicode. Jednoznačný kód (číslo U+0000..U+10FFFF, 21 bitů) pro každý znak nezávisle na OS, jazyce, programu. Databáze znaků poskytovaná konsorciem (k 10/2016 verze Unicode 9.0) či přehledné tabulky znaků. UCS-4 resp. UCS-2 Universal Character Set coded in 4 resp. 2 octets. UCS-2 pouze pro BMP (two-octet BMP form). Basic Multilingual Plane (BMP). Petr Sojka (FI MU Brno) Značkování podzim 2016 34 / 198
The Unicode Standard, ISO/IEC 10646 (cont.) Znak s libovolným kódem z ISO/IEC 10646 můžeme zapsat pomocí entity &#kod (kod je v desítkové soustavě) nebo &#xkod (kod je šestnáctkově): code points 0 10F F F F 16. Jednoznačný trend použití pro rozšíření na WWW, v OS [cut & paste], značkovacích i programovacích jazycích. Kritériem přidání znaku je odlišnost ve významu i tvaru (CJK unifikace). Výjimky: Latin P, Greek P (capital rho), Cyrillic P (R). Privátní zóny pro privátní použití aplikací. Petr Sojka (FI MU Brno) Značkování podzim 2016 35 / 198
Unicode Transformation Format UTF: přenos znaků Problémy s přímým přenosem textů v UCS-4 (prostorově neefektivní) transformační/kódovací metody UTF-8, UTF-7, UTF-16, UTF-32 jako jednoznačné mapování znaků. UTF-16 16bitové slovo obsahuje kód znaku, rozšíření: 1 znak zabere dvě 16bitová slova. UTF-16BE a UTF-16LE. UTF-8: znaky ASCII nahrazeny byty hex 00-7F. Ostatní znaky nahrazeny dvěma až čtyřmi byty hex 80-FF. UTF-7: pro SMTP protokol; kódovány i speciální znaky ASCII. Specifikovaný IETF, Internet Engineering Task Force, a formálně nesouvisející s ISO/IEC 10646. Výsledkem je text neobsahující kontrolní znaky a znaky nad 7F. Petr Sojka (FI MU Brno) Značkování podzim 2016 36 / 198
Unicode Transformation Format UTF: přenos znaků (cont.) UTF-32, UTF-32BE, UTF-32LE. Vícebytová pořadí: BOM: Byte Order Mark, OxFEFF. UTF a BOM FAQ. Petr Sojka (FI MU Brno) Značkování podzim 2016 37 / 198
ISO/IEC 10646-1 standard implementation levels Norma definuje implementační úrovně 1 3 podporované v software. Příklad dánského A with ring above and acute accent : 01FA reprezentace použitá v úrovních 1 a 2: jeden složený znak; 00C5 0301 A with ring above + combining acute accent nebo 0041 030A 0301 A + combining ring above + combining acute accent Program implementující standard úrovně 3 musí být schopen zpracovat tyto kompozitní sekvence stejně jako výše uvedenou reprezentaci. Petr Sojka (FI MU Brno) Značkování podzim 2016 38 / 198
Unicode vlastnosti Třídění: Unicode Collation Algorithm Normalizace textu, kanonická forma, ligatury. Tři úrovně implementace Unicode, obousměrný text, kombinace znaků, kompozitní sekvence znaků. Shrnutí, detaily a přehled. Petr Sojka (FI MU Brno) Značkování podzim 2016 39 / 198
Pořízení obsahu: vizuální a logická struktura dokumentu Algorithms + Data = Program Niklaus Wirth Přenos informace raison d être dokumentu Obsah stylistika, jazyková správnost, koheze Forma jednotnost přenos informace struktura typografie literatura = interpretace kompozice skladby Forma + Obsah = Dokument Petr Sojka Petr Sojka (FI MU Brno) Značkování podzim 2016 40 / 198
Logické a vizuální značkování Obsah Forma; vizuální prvky musí podporovat vnitřní obsah a strukturu a být s ní konzistentní. Značkovací jazyky (Markup Languages): XML/SGML/HTML, L A TEX umožňují oddělit obsah a formu tam, kde je to možné. Značky logické struktury vizuální. Někdy oddělit nelze (Trychtýř Christiana Morgensterna). Petr Sojka (FI MU Brno) Značkování podzim 2016 41 / 198
Z hlavy autora do elektronické podoby Data cannot be used at a finer grain than it is marked up at. R. Jelliffe Autor, jeho interní model problematiky v hlavě a jeho (neustálá) reorganizace. Lineární zápis (psaní) v časovém okamžiku formou textu dokumentu. Krátké versus delší, strukturované texty. Koherence, stavba a struktura textu. Logická struktura dokumentu. Petr Sojka (FI MU Brno) Značkování podzim 2016 42 / 198
Logická struktura dokumentu Pro prezentaci logické struktury obsahu, pro automatizaci zpracování, pro oddělení formy od obsahu je vhodné do textu přidávat explicitní značky. Dříve sazeč určoval interpretaci implicitně z kontextu a sémantiky textu: holý text v přirozeném jazyce ve strojopise může být víceznačný. Značka explicitně zjednoznačňuje (víceznačný) text. Příklady strukturování dokumentu. Příklady zjednoznačňujících značek: :-) (ze slovníčku smileys) či <vtip>...</vtip>. Značka je kód přidávaný k (elektronicky) vytvářenému textu, který definuje strukturu textu (logická značka) nebo formát textu (vizuální značka <b>) nebo pojmenovává způsob zpracování textu (procedurální značka) \newpage. Petr Sojka (FI MU Brno) Značkování podzim 2016 43 / 198
Jaké značky? Autorovi nejbližší sémantické, deklarativní, deskriptivní značkování (jména pro kategorizaci). Výhody deskriptivního značkování: Nezávislé zpracování označených dat různými způsoby a programy: generování různých výstupů z jednoho zdroje (databáze, dobře označkovaný text) pro elektronickou (XML, HTML, PDF, Hypercard,... ) nebo tištěnou verzi (PS, PDF z L A TEXu). Oddělení obsahu a formy (ohledně formy má rozhodující slovo nakladatel). Je snazší výměna a komunikace obsahu: komunikace mezi (spolu)autory, redakcí (přes Internet). Datová nezávislost: textové soubory, dlouhodobá archivace trvalých hodnot [papír (500 let) versus bity (k nové verzi programu)]. Petr Sojka (FI MU Brno) Značkování podzim 2016 44 / 198
Jaký značkovací jazyk? Nevýhody proprietárních formátů (Word, WordPerfect): účelově se mění, jsou nestabilní. Hrozí babylonské zmatení jazyků nebo monopol nevhodného formátu. lingua franca značkovacích jazyků?? Petr Sojka (FI MU Brno) Značkování podzim 2016 45 / 198
XML? Petr Sojka (FI MU Brno) Značkování podzim 2016 46 / 198
XML? XML! Nikdy není pozdě! Petr Sojka (FI MU Brno) Značkování podzim 2016 47 / 198
Co je to XML? XML: EXtensible Markup Language. Univerzální a otevřený formát pro reprezentaci (a výměnu) téměř libovolné datové struktury dokumentů i dat. Doporučení WWW Consortium: rozšiřitelný značkovací (meta)jazyk. Celá sada technologií a formátů s XML souvisejících (XHTML, XSL, XSL-FO, CSS, XPointer, XLink,... ) pro elektronickou výměnu dat včetně výměny dokumentů. Petr Sojka (FI MU Brno) Značkování podzim 2016 48 / 198
Příklad XML dokumentu <?xml version="1.0" encoding="utf-8"?> <!DOCTYPE faktura SYSTEM "faktura.dtd"> <faktura vystaveni="22.10.2016" splatnost="22.11.2016"> <odberatel> <nazev>ferda Pistorius</nazev> <adresa>boubín 77</adresa> <ico>2862667777</ico> <dic>291-2862667777</dic> </odberatel> <dodavatel> <nazev>hynek Bedna</nazev> <adresa>máchovo jezero 78</adresa> <ico>2862467777</ico> <dic>291-2862467777</dic> </dodavatel> <polozka> <popis>xml editor</popis> <cena mena="kč">500</cena> </polozka> </faktura> Petr Sojka (FI MU Brno) Značkování podzim 2016 49 / 198
Vymezení XML Násobné a opakované použití dat. Metajazyk: XML nespecifikuje ani sémantiku, ani množinu značek, umožňuje však značky definovat a definovat jejich strukturální závislosti. Sémantiku určují aplikace (webové prohlížeče jsou jedny z nich). Části XML dokumentu: deklarace + gramatika + data. Petr Sojka (FI MU Brno) Značkování podzim 2016 50 / 198
XML jako metajazyk XML je mezinárodní standard pro popis značkovacích jazyků. Formálněji je to syntaktický metajazyk pro definici tříd dokumentů (deskriptivních značkovacích jazyků), nezávislých na abecedě. Formální definice typu dokumentu se nazývá DTD Document Type Definition, definice typu dokumentu (gramatika třídy dokumentů). XML parser (validátor) pak čte na vstupu DTD a kontroluje formální správnost. Instance XML dokumentu (dále jen XML dokument) sestává z deklarace (pokynů pro parser), gramatiky (DTD) a vlastního popisně označkovaného textu. Petr Sojka (FI MU Brno) Značkování podzim 2016 51 / 198
Syntaxe XML: správná strukturovanost well formed XML document s korektní syntaxí je nazýván správně strukturovaný, well-formed. Správně strukturovaný dokument by měla zpracovat každá XML aplikace. Sekce CDATA pro pohodlnější psaní části dokumentů obsahujících významné znaky: <moudrost> <![CDATA[ (1 < 2) & 2 = 1000 x 1 ]]> </moudrost> Petr Sojka (FI MU Brno) Značkování podzim 2016 52 / 198
Validita XML Silnější pojem než správná strukturovanost: validita. Dokument vyhovuje gramatice, která vynucuje strukturu, pořadí a množství značek. Gramatika ve formě DTD (Document Type Definition). Validátory (parsery): nsgmls, msxml, xerces, xmllint,... Webová validace XHTML: http://validator.w3.org. HTML5 validace: http://html5.validator.nu. Lokální validace: například nsgmls od Jamese Clarka z modulu sp (module add sp) na aisa. Třídy dokumentů. CATALOG. /packages/share/sgml-catalogs/ Petr Sojka (FI MU Brno) Značkování podzim 2016 53 / 198
Validita XML (cont.) Výstup parseru: Element Structure Information Set (ESIS) formát (strom dokumentu). Petr Sojka (FI MU Brno) Značkování podzim 2016 54 / 198
XML deklarace <?xml version="1.0" encoding="iso-8859-2" standalone="no"?> Musí být na prvním řádku dokumentu, pro způsob interpretace zbývajících bytů. Při standalone="yes" není třeba číst externí DTD. Petr Sojka (FI MU Brno) Značkování podzim 2016 55 / 198
Instrukce pro zpracování Pokyny (procesní instrukce) pro specifické aplikace: <?xml-stylesheet href="epd.css" type="text/css"?> nebo <?LaTeX \pagebreak?> nebo <datum> <?php echo Date "d.m.y"?> </datum> Petr Sojka (FI MU Brno) Značkování podzim 2016 56 / 198