Za´padoˇceska´ univerzita v Plzni Fakulta aplikovany´ch vˇed Katedra informatiky a vy´poˇcetn´ı techniky
Bakal´ aˇ rsk´ a pr´ ace Kontrola typografie v Adobe InDesign
Plzeˇ n 2011
Marcela Kubov´a
Prohl´ aˇ sen´ı Prohlaˇsuji, ˇze jsem bakal´aˇrskou pr´aci vypracovala samostatnˇe a v´ yhradnˇe s pouˇzit´ım citovan´ ych pramen˚ u. V Plzni dne 12. kvˇetna 2011 Marcela Kubov´a
Abstract The main aim of this work was to create a special tool for automatic typography check in Adobe InDesign. Typography check is based on straight typesetting rules. In order to cope with this task, JavaScript scripting programme was chosen or better said its variant working directly with Adobe InDesign. This paper contains selected typography rules analysis and description of their typical violation. The rules were chosen according to their potential of automation. Automation is being conducted on two levels: automatic detection and replacement of the concrete word or check of the detected word according to a set of predefined rules from which the right replacement is chosen. The paper also handles project details including close description of scripting steps.
Obsah ´ 1 Uvod 2 Teoretick´ aˇ c´ ast 2.1 Konzultace . . . . . . . . . . 2.2 Regul´arn´ı v´ yrazy . . . . . . . 2.3 Hladk´a sazba . . . . . . . . . 2.4 Pravidla hladk´e sazby . . . . 2.4.1 B´ıl´e“ znaky . . . . . . ” 2.4.2 Interpunkˇcn´ı znam´enka 2.4.3 Z´avorky . . . . . . . . 2.4.4 Spojovn´ık, pomlˇcka . . 2.4.5 Podtrˇz´ıtko, lom´ıtko . . ˇ ısla . . . . . . . . . . 2.4.6 C´ 2.5 Moˇznosti automatick´ ych oprav
1
. . . . . . . . . . .
. . . . . . . . . . .
. . . . . . . . . . .
. . . . . . . . . . .
. . . . . . . . . . .
. . . . . . . . . . .
. . . . . . . . . . .
. . . . . . . . . . .
. . . . . . . . . . .
. . . . . . . . . . .
3 Praktick´ aˇ c´ ast 3.1 Popis projektu . . . . . . . . . . . . . . . . . . . 3.2 Skriptov´an´ı v Adobe InDesign . . . . . . . . . . 3.2.1 Popdora skriptov´an´ı . . . . . . . . . . . 3.2.2 Spouˇstˇen´ı skript˚ u v InDesign . . . . . . 3.2.3 Pr´ace s InDesignem . . . . . . . . . . . . 3.2.4 Text, textov´e r´ameˇcky a pr´ace s textem . 3.3 InDesign a regul´arn´ı v´ yrazy . . . . . . . . . . . 3.4 Skript pro automatickou kontrolu typografie . . 3.4.1 Spuˇstˇen´ı skriptu a naˇcten´ı u ´daj˚ u . . . . 3.4.2 Zp˚ usoby u ´prav textu . . . . . . . . . . . 3.4.3 Rozsah textu urˇcen´eho ke kontrole . . . 3.4.4 Vybr´an´ı v´ yraz˚ u pro prohled´an´ı . . . . . 3.5 Prohled´av´an´ı dokumentu skriptem . . . . . . . 3.5.1 Ukl´ad´an´ı dat . . . . . . . . . . . . . . . 3.5.2 Zp˚ usob prohled´av´an´ı . . . . . . . . . . .
. . . . . . . . . . .
. . . . . . . . . . . . . . .
. . . . . . . . . . .
. . . . . . . . . . . . . . .
. . . . . . . . . . .
. . . . . . . . . . . . . . .
. . . . . . . . . . .
. . . . . . . . . . . . . . .
. . . . . . . . . . .
. . . . . . . . . . . . . . .
. . . . . . . . . . .
. . . . . . . . . . . . . . .
. . . . . . . . . . .
. . . . . . . . . . . . . . .
. . . . . . . . . . .
3 3 4 4 5 6 6 10 11 11 11 12
. . . . . . . . . . . . . . .
14 14 15 15 15 16 16 17 18 18 19 20 20 21 21 22
OBSAH
3.6 3.7
OBSAH 3.5.3 Vyhled´av´an´ı v´ yraz˚ u. . . . . 3.5.4 Zp˚ usoby kontroly typografie 3.5.5 Nahrazen´ı v´ yraz˚ u . . . . . . Ukonˇcen´ı skriptu . . . . . . . . . . Rozˇs´ıˇren´ı skriptu . . . . . . . . . .
. . . . .
. . . . .
. . . . .
. . . . .
. . . . .
. . . . .
. . . . .
. . . . .
. . . . .
. . . . .
. . . . .
. . . . .
. . . . .
. . . . .
. . . . .
22 22 24 25 25
4 Z´ avˇ er
27
A Uˇ zivatelsk´ y manu´ al
32
B Pˇ riloˇ zen´ e CD
36
4
´ 1 Uvod Pr´ace se zamˇeˇruje na prostudov´an´ı pravidel hladk´e sazby, moˇznost´ı automatick´eho vyhled´av´an´ı poruˇsen´ı tˇechto pravidel a automatick´e opravy. Souˇc´ast´ı pr´ace je navrˇzen´ı heuristick´ ych metod, kter´e budou vybran´e typografick´e chyby vyhled´avat a opravovat. Tyto metody jsou implementov´any jako skript pro program Adobe InDesign. Lid´e, kteˇr´ı se zab´ yvaj´ı pˇredtiskovou pˇr´ıpravou, ˇcasto zpracov´avaj´ı texty jin´ ych autor˚ u, do kter´ ych b´ yv´a nˇekdy i ve znaˇcn´e m´ıˇre zaneseno mnoho poruˇsen´ı typografick´ ych pravidel. Autoˇri text˚ u nemaj´ı znalosti o pravidlech hladk´e sazby a texty tvoˇr´ı, ˇreknˇeme, podle sv´eho uv´aˇzen´ı. I kdyˇz se sama v zamˇestn´an´ı nepohybuji pˇr´ımo v oblasti DTP, pracovala jsem s texty na urˇcit´a odborn´a t´emata dodan´ ymi od r˚ uzn´ ych autor˚ u. Souˇca´st´ı m´e pr´ace bylo tyto texty sjednotit a zajistit korektury. Bˇehem pˇredtiskov´e pˇr´ıpravy je tedy nutn´e tyto odchylky vyhledat a zamˇenit za spr´avn´e v´ yrazy. Pˇri ruˇcn´ım proch´azen´ı textu je tato pr´ace ˇcasovˇe n´aroˇcn´a a m˚ uˇze doj´ıt k pˇrehl´ednut´ı chyb. Pro zjednoduˇsen´ı t´eto ˇcinnosti a minimalizov´an´ı ˇcasov´ ych n´arok˚ u na kontroln´ı“ ˇca´st ” zpracov´an´ı textu je vhodn´e zav´est automatizaci. S´azec´ı program Adobe InDesign umoˇzn ˇuje zaveden´ı skript˚ u, kter´e je moˇzn´e v tomto programu spouˇstˇet. Jejich vyuˇzit´ı je r˚ uznorod´e. Pˇr´ınos maj´ı skripty v hromadn´em zpracovan´ı mnoha dokument˚ u ˇci automatizaci rutinn´ıch ˇcinnost´ı. Richard Krejˇc´ı[6] hodnot´ı moˇznost skriptov´an´ı jako jednu z nejzaj´ımavˇejˇs´ıch vlastnost´ı, z´aroveˇ n ale konstatuje, ˇze i pˇres svou nespornou uˇziteˇcnost je skriptov´an´ı na pre-pressov´ ych pracoviˇst´ıch vyuˇz´ıv´ano pouze velmi omezenˇe. D˚ uvodem je obava uˇzivatel˚ u z nutnosti osvojovat si dovednosti z oblasti programov´an´ı a nejasn´a pˇredstava, co by jim skriptov´an´ı mohlo pˇrin´est. C´ılem pr´ace je vytvoˇren´ı skriptu pod Adobe InDesign, kter´ y bude automaticky vyhled´avat typografick´e chyby. Uˇzivatel´e Adobe InDesign pak v´ ysledn´ y skript budou moci vyuˇz´ıt bez znalosti skriptov´an´ı. Navrˇzen´ y skript nab´ız´ı uˇzivatel˚ um moˇznost automatick´e kontroly dokumentu, tedy vyhled´an´ı a z´amˇenu v´ yraz˚ u, kter´e poruˇsuj´ı pravidla hladk´e sazby. Uˇzivatel si vyb´ır´a z nab´ıdky definovan´ ych typografick´ ych pravidel, kter´a jsou naˇctena ze souboru. Je tedy moˇzn´e si definovat dalˇs´ı v´ yrazy podle potˇreb uˇzivatele. Rozsah prohed´av´an´ı je nastaven na cel´ y dokument, na oznaˇcenou ˇca´st dokumentu ˇci na vˇsechny otevˇren´e dokumenty. D´ale skript umoˇzn ˇuje vybrat, co bude s vyhledan´ ymi v´ yrazy uˇcinˇeno. Mohou b´ yt automaticky zamˇenˇeny,
1
´ Uvod po z´amˇenˇe vyznaˇceny bud’ tagy nebo zmˇenou barvy p´ısma. Ve skriptu je moˇzn´e zvolit tak´e vyhled´an´ı a oznaˇcen´ı nalezen´ ych m´ıst (tagy, zmˇena barvy) a n´ahrada za spr´avn´ y v´ yraz je ponech´an na uˇzivateli. Posledn´ı moˇznost´ı je pr˚ ubˇeˇzn´e upozorˇ nov´an´ı na vyhledan´e v´ yrazy, kde je uˇzivateli nab´ıdnut n´avrh z´amˇeny.
2
2 Teoretick´a ˇc´ast Pˇred zah´ajen´ım pr´ace na skriptu bylo nutn´e sezn´amit se s pravidly hladk´e sazby a navrhnout moˇznost zaˇclenˇen´ı do skriptu. Z´aroveˇ n bylo vhodn´e zjistit ˇcast´e typografick´e chyby, kter´e grafici pˇri zpracov´an´ı text˚ u ˇreˇs´ı.
2.1
Konzultace
Nejvˇetˇs´ı probl´emy se objevuj´ı, pokud uˇzivatel dod´av´a texty pˇripraven´e v nˇekter´em z textov´ ych editor˚ u. Svou pr´aci jsem tedy zamˇeˇrila na vyhled´av´an´ı prohˇreˇsk˚ u“, kter´e do textu vloˇz´ı s´am autor, neˇz odevzd´a sv˚ uj text k typo” grafick´emu zpracov´an´ı. Vyˇsla jsem z informac´ı od grafiˇcky Alice Neugebauerov´e: • nadbyteˇcn´e mezery, • ˇspatnˇe um´ıstˇen´e mezery kolem konce odstavc˚ u, • mezery pˇred interpunkˇcn´ımi znam´enky, • konce odstavc˚ u nˇekolikr´at za sebou (toto plat´ı i pro ˇradu mezer, kter´e uˇzivatel´e st´ale v hojn´e m´ıˇre pouˇz´ıvaj´ı) — Alice pro toto pouˇz´ıv´a v´ yraz kochaj´ıc´ı se redaktor“, ” • mˇekk´ y enter neboli pevn´ y konec ˇra´dku, • pomlˇcky — vyhled´an´ı, • z´avorky — vyhled´an´ı, • tˇri teˇcky, • mezery za lom´ıtkem. Z´aroveˇ n ona sama by vyuˇzila toho, kdyby bylo moˇzn´e kontroly nebo zpracov´an´ı prov´est ve v´ıce souborech najednou. Jej´ı styl pr´ace je takov´ y, ˇze napˇr´ıklad ˇcasopis rozdˇeluje na v´ıce ˇc´ast´ı, soubory po ˇcl´anc´ıch a pak by pro ni zpracov´an´ı bylo v´ yhodn´e ve vˇsech souborech k dan´emu t´ematu. 3
Teoretick´a ˇc´ast
2.2
Regul´arn´ı v´yrazy
Regul´ arn´ı v´ yrazy
Vyhled´av´an´ı typografick´ ych chyb je z program´atorsk´eho hlediska probl´em, kter´ y lze ˇreˇsit regul´arn´ımi v´ yrazy. Obecnˇe jsou regul´arn´ı v´ yrazy siln´ ym pomocn´ıkem pˇri pr´aci s textem. Jejich prostˇrednictv´ım lze: • vytahovat z textov´ ych dat u ´daje, kter´e n´as zaj´ımaj´ı, • pˇretv´aˇret je do podoby, kterou potˇrebujeme, • vyhled´avat a nahrazovat v textov´ ych editorech a dalˇs´ıch programech. Pˇri navrhov´an´ı jednotliv´ ych regul´arn´ıch v´ yraz˚ u jsem problematiku rozdˇelila na dvˇe ˇca´sti. Pro obˇe ˇca´sti jsou znaky nebo skupiny znak˚ u vyhled´any pomoc´ı regul´arn´ıch v´ yraz˚ u, d´ale se s nimi pracuje odliˇsnˇe. Prvn´ı ˇca´st lze pomoc´ı regul´arn´ıho v´ yrazu vyhledat a rovnou automaticky nahradit. Do t´eto ˇc´asti patˇr´ı napˇr. z´amˇena nadbyteˇcn´ ych znak˚ u nebo z´amˇena pevn´e mezery za jednoznakovou pˇredloˇzkou. V druh´e skupinˇe jsou v´ yrazy, kter´e po vyhled´an´ı zhodnot´ı pˇr´ısluˇsn´a fuknce a podle jejich v´ yznamu vybere spr´avn´ y v´ ystup pro nahrazen´ı. Do t´eto ˇc´asti patˇr´ı napˇr. kontrola vˇsech interpunkˇcn´ıch znam´enek, kdy je nutn´e oˇsetˇrit jednotliv´e situace, kter´e ve v´ yrazu mohou nastat. Pravidla a podm´ınky shrnuji v kapitole 2.4 a jejich podkapitol´ach.
2.3
Hladk´ a sazba
Hladk´a sazba obsahuje plynul´ y text, je to sazba odstavc˚ u na urˇcenou ˇs´ıˇrku ˇ z jednoho typu a stupnˇe p´ısma. R´ıd´ı se obecnˇe typografick´ ymi pravidly i pravidly ˇcesk´eho pravopisu, samozˇrejmˇe jsou pro praxi velmi potˇrebn´a pravidla pro sazbu r˚ uzn´ ych znak˚ u. Vych´az´ı z normy ON 882503, kter´a definovala z´akladn´ı pravidla sazby. ˇ ´ Kromˇe pravidel hladk´e sazby existuje norma CSN 01 6910 Uprava p´ısemnost´ı zpracovan´ ych textov´ ymi editory, jej´ıˇz posledn´ı aktualizace probˇehla v dubnu 2007. Ta stanov´ı pravidla pro grafickou u ´pravu text˚ u pˇri pr´aci s textov´ ymi editory, urˇcuje zp˚ usob psan´ı interpunkˇcn´ıch znam´enek, zkratek, znaˇcek a ˇc´ısel, stanov´ı postupy pˇri zv´ yrazˇ nov´an´ı a ˇclenˇen´ı text˚ u a z´asady for4
Teoretick´a ˇc´ast
Pravidla hladk´e sazby
m´aln´ıho uspoˇr´ad´an´ı textov´eho sloupce. Tato norma je vyuˇz´ıv´ana napˇr´ıklad v obchodn´ı korespondenci. Nutno ˇr´ıci, ˇze mezi jednotliv´ ymi normami neexistuje jednotnost a doch´az´ı k rozpor˚ um. Jako pˇr´ıklad uved’me nejednoznaˇcnost pˇri psan´ı ˇcasu, tedy hodin, minut a sekund. Pravidla hladk´e sazby urˇcuj´ı pro vyj´adˇren´ı ˇcasu n´asleduj´ıc´ı tvar: HH.MM:SS 10.15:30, zat´ımco norma, kterou se ˇr´ıd´ı obchodn´ı korespondence a evropsk´a norma uv´ad´ı tvar: HH:MM:SS 10:15:30. Vytvoˇren´ y skript pro automatickou kontrolu textu pro Adobe InDesign se ˇr´ıd´ı pravidly hladk´e sazby, jak vych´az´ı ze zad´an´ı pr´ace. Pr´ace se zab´ yv´a ˇc´ast´ı hladk´e sazby vˇenuj´ıc´ı se pravidl˚ um pouˇz´ıv´an´ı sazby jednotliv´ ych znak˚ u, a to takov´ ych, kter´a mohou b´ yt kontrolov´ana automaticky skriptem. Nejsou zde uv´adˇena pravidla pro sazbu odstavc˚ u a pr´ace s nimi. Pˇred zah´ajen´ım pr´ace na skriptu jsem konzultovala s grafiˇckou v naˇs´ı spoleˇcnosti a zjiˇst’ovala jsem, s jak´ ymi pot´ıˇzemi v textu se ˇcasto pot´ yk´a. D´ale struˇcnˇe uvedu vybran´a pravidla hladk´e sazby, kter´a jsem zaˇradila do kontroln´ıho skriptu. Jedn´a se o takov´e znaky a jejich nespr´avn´e pouˇzit´ı, kter´e se jednak ˇcasto objevuj´ı v autorsk´ ych textech a z´aroveˇ n jsou vhodn´e pro automatizaci.
2.4
Pravidla hladk´ e sazby
Kontroln´ı skript vyuˇz´ıv´a vybran´ ych pravidel hladk´e sazby. Zamˇeˇruje se pˇredevˇs´ım na n´asleduj´ıc´ı skupiny probl´em˚ u: • chyby pˇri psan´ı b´ıl´ ych“ znak˚ u, ” • kontrola interpunkˇc´ıch znam´enek, • pomlˇcka, spojovn´ık, lom´ıtko, podtrˇz´ıtko, • kontrola ˇc´ıseln´ ych v´ yraz˚ u.
5
Teoretick´a ˇc´ast
2.4.1
Pravidla hladk´e sazby
B´ıl´ e“ znaky ”
Jak jsem jiˇz uvedla v kapitole 2.1, konzultac´ı s grafiky v DTP studiu i z vlastn´ı zkuˇsenosti jsem do problematiky prohled´av´an´ı chyb zaˇradila kontrolu nespr´avnˇe uv´adˇen´ ych b´ıl´ ych“ znak˚ u. V kontrolovan´ ych textech se velmi ˇcasto ” objevuj´ı nadbyteˇcn´e znaky jako napˇr. dvˇe nebo v´ıce mezer za sebou, v´ıce ostavcov´ ych znak˚ u nebo tabel´ator˚ u za sebou ˇci mezery pˇred zaˇca´tkem odstavce. St´ale jeˇstˇe se ˇrada uˇzivatel˚ u nenauˇcila pouˇz´ıvat jin´e form´atov´an´ı textu neˇz odsazov´an´ı pomoc´ı nekoneˇcn´e“ ˇrady mezer nebo znak˚ u konce odstavce ” a dod´av´a sv´e texty ke zpracov´an´ı grafikem v´ yraznˇe zanesen´e nevhodn´ ymi u ´pravami. Ve skriptu jsou pomoc´ı regul´arn´ıch v´ yraz˚ u uvedeny nejˇcastˇejˇs´ı nadbyteˇcn´e a opakuj´ıc´ı se znaky a ty jsou odstranˇeny.
2.4.2
Interpunkˇ cn´ı znam´ enka
Praktick´a typografie[1] uv´ad´ı, ˇze interpunkci zaˇcal pouˇz´ıvat ben´atsk´ y nakladatel a tiskaˇr Aldus Pius Manutius, kter´ y zavedl ˇca´rky, stˇredn´ıky a dvojteˇcky. Vykˇriˇcn´ık vznikl z latinsk´eho zvol´an´ı Iyo, tedy zkratky Io napsan´e pod sebe. Podobnˇe je na tom otazn´ık, kter´ y sv´emu p˚ uvodu vdˇeˇc´ı latinsk´emu slovu Questio, sp´ıˇse jeho zkratce Qu, opˇet zapsan´e pod sebou. Pro vˇsechna interpunkˇcn´ı znam´enka plat´ı, ˇze se s´az´ı tˇesnˇe za (posledn´ı) slovo ve vˇetˇe a dalˇs´ı slovo je oddˇelen´e norm´aln´ı mezerou. Pokud se vedle sebe sejdou dvˇe nebo v´ıce interpunkˇcn´ıch znam´enek, nedˇel´a se mezi nimi mezera. Ta je um´ıstˇena aˇz za posledn´ım znam´enkem. Ve sv´e praxi jsem se ˇcasto v textech setkala se z´amˇenou, kdy byla nespr´avnˇe uvedena mezera pˇred interpunkˇcn´ım znam´enkem nam´ısto za, pˇr´ıpadnˇe byly mezery um´ıstˇeny z obou stran znam´enka a podobnˇe. Vˇsechny tyto chyby jsem pˇri n´avrhu zaˇradila do realizace skriptu, dalˇs´ı moˇznosti kontroly vych´az´ı z pravidel pro jednotliv´a znam´enka. Pˇri n´avrhu skriptu a po konzultac´ıch jsem se rozhodla pro vyhled´an´ı vˇsech interpukˇcn´ıch znam´enek v textu pomoc´ı regul´arn´ıch v´ yraz˚ u, jejich seznam je pˇred´av´an d´al do funkc´ı, kter´e prov´adˇej´ı kontrolu spr´avnosti. V pˇr´ıpadˇe, ˇze je interpunkce um´ıstˇena spr´avnˇe, pˇrech´az´ı se na dalˇs´ı vyhledanou pozici. Pokud je nalezena typografick´a chyba, je v´ yraz podle pravidel sazby upraven a zamˇenˇen.
6
Teoretick´a ˇc´ast
Pravidla hladk´e sazby
Chybn´ y v´ yraz Popis . Chybnˇe um´ıstˇen´a mezera pˇred teˇckou na konci vˇety. . Vynech´an´ı mezery za teˇckou na konci vˇety (pokud nen´ı vˇeta uvedena v z´avorce). . ) Chybn´a mezera mezi interpunkˇcn´ım znam´enkem a uzav´ırac´ı z´avorkou. . Chybnˇe um´ıstˇen´a mezera pˇred a za teˇckou ve spojen´ı s ˇc´ısly (hodiny, kapitoly). .. Dvˇe teˇcky, ty mohou znamenat chybn´e pouˇzit´ı dvou teˇcek nam´ısto spr´avn´e jedn´e nebo ˇspatnˇe zapsan´e tˇri teˇcky, kdy byla jedna teˇcka zapomenuta. Automatickou kontrolou toto nen´ı moˇzn´e rozhodnout, uˇzivatel je ke konci prohled´av´an´ı dokumentu na dvˇe teˇcky upozornˇen. Tabulka 2.1: Chybn´e v´ yrazy s pouˇzit´ım teˇcky Teˇ cka Pokud by za sebou mˇelo b´ yt um´ıstˇeno v´ıce teˇcek, pˇredevˇs´ım na konci vˇety, s´az´ı se pouze jedna. Pokud jsou nadpisy ˇc´ıslovan´e (napˇr. 1.1.2), s´az´ı se bez mezer. Teˇcka m´a mnoh´a dalˇs´ı vyuˇzit´ı v r˚ uzn´ ych v´ yznamech, kdy se zapisuje bez mezer. Pouˇz´ıv´a se pˇri z´apisu: • hodin, • n´azv˚ u soubor˚ u, • internetov´e adresy, • verz´ı program˚ u, • kapitol. Ve vyhled´avac´ım skriptu je kontrolov´ano spr´avn´e um´ıstˇen´ı teˇcky v textu, u ˇc´ısel se teˇcka vyskytuje vˇzdy bez mezer (u hodin, ˇc´ıslovan´ ych nadpis˚ u, kapitol ˇci verz´ı program˚ u). Nejˇcastˇejˇs´ı chyby shrnuje tabulka 2.1.
7
Teoretick´a ˇc´ast
Pravidla hladk´e sazby
Otazn´ık a vykˇ riˇ cn´ık V textu mohou b´ yt uvedeny tak´e v z´avork´ach, otazn´ık jako v´ yraz pochybnosti, vykˇriˇcn´ık jako upozorˇ nuj´ıc´ı v´ yraz. V tomto pˇr´ıpadˇe se mezera nepouˇz´ıv´a, vizte kapitolu 2.4.3. Pokud je otazn´ık nebo vykˇriˇcn´ık souˇca´st´ı urˇcit´eho v´ yrazu na konci vˇety, koncov´a teˇcka uˇz se za nimi nep´ıˇse. Chyby, kter´e se mohou vyskytnout v textu, opˇet shrnuje tabulka 2.2, kter´a ukazuje pˇr´ıpady s pouˇzit´ım otazn´ıku, stejn´e pˇr´ıpady se definuj´ı i pro vykˇriˇcn´ık. Chybn´ y v´ yraz Popis ? Chybnˇe um´ıstˇen´a mezera pˇred otazn´ıkem na konci vˇety. ? Vynech´an´ı mezery za otazn´ıkem (pokud nen´ı uveden v z´avorce). ( ? ) Chybnˇe um´ıstˇen´a mezera pˇred a za otazn´ıkem uvnitˇr z´avorek. ?. Pouˇzit´ı koncov´e teˇcky, pˇred kterou n´asleduje v´ yraz s otazn´ıkem. Tabulka 2.2: Chybn´e v´ yrazy s pouˇzit´ım otazn´ıku a vykˇriˇcn´ıku Pozn: Stejn´e v´ yrazy lze definovat tak´e pro vykˇriˇcn´ık.
ˇ arka C´ Kromˇe um´ıstˇen´ı ve vˇetˇe jako interpunkˇcn´ı znam´enko se d´ale ˇca´rka pouˇz´ıv´a na vyj´adˇren´ı desetinn´e ˇca´rky v ˇc´ıslech a matematick´ ych v´ yrazech. V tˇechto pˇr´ıpadech se s´az´ı z obou stran tˇesnˇe. Pˇri n´avrhu kontroly ˇc´arky bylo potˇreba zohledit, zda se v okol´ı ˇca´rky z obou stran objevuje ˇc´ıslo a oˇsetˇrit sazbu bez mezer. Pokud je ˇc´ıslo pouze z jedn´e strany ˇca´rky, je ˇc´ıslo souˇc´ast´ı textu a sazba bude s mezerou za interpunkc´ı. Pˇri zjiˇstˇen´ı ˇc´ısel z obou stran a um´ıstˇen´e mezery za ˇca´rkou je d´ale potˇreba zjiˇst’ovat, jak vypad´a okol´ı ˇc´ısel a zda pouˇzit´ı s mezerou je spr´avn´e. To se st´av´a v pˇr´ıpadech, kdy jmenujeme nˇekolik ˇc´ısel oddˇelen´ ych ˇc´arkami nebo spojkami a, i, nebo, vizte pˇr´ıklad. Pˇ r´ıklad: Uk´azka v´ yskytu jedn´e teˇcky nam´ısto dvou Potˇrebujeˇs p˚ ujˇcit 1 000, 2 000 nebo 3 000?
8
Teoretick´a ˇc´ast
Pravidla hladk´e sazby
Chybn´ y v´ yraz Popis , Chybnˇe um´ıstˇen´a mezera pˇred ˇca´rkou. , Vynech´an´ı mezery za ˇc´arkou (ˇca´rka nem´a v´ yznam desetinn´e ˇc´arky v ˇc´ısle). 1 , 1 Pˇri v´ yznamu desetinn´e ˇca´rky pouˇzit´ı mezery pˇred a (nebo) za ˇc´arkou. Tabulka 2.3: Chybn´e v´ yrazy s pouˇzit´ım ˇc´arky Stˇ redn´ık S´az´ı se podle stejn´ ych pravidel jako ˇca´rka, tedy bez mezery k pˇredchoz´ımu p´ısmenu a za n´ım n´asleduje vˇzdy mal´e p´ısmeno. Pˇri v´ yˇctu desetinn´ ych ˇc´ısel se pouˇz´ıv´a k oddˇelen´ı jednotliv´ ych ˇc´ısel a tedy opˇet s mezerou za znam´enkem.
Tˇ ri teˇ cky Pouˇz´ıv´ame pro vyj´adˇren´ı vynechan´e ˇca´sti textu nebo jako naznaˇcen´ı pomlky ve vˇetˇe. S´az´ı se speci´aln´ım znakem a k pˇredch´azej´ıc´ımu v´ yrazu se pˇrisazuje bez mezery. Za tˇremi teˇckami se umist’uje mezera. Konˇc´ı-li vˇeta tˇremi teˇckami, pln´ı tyto teˇcky z´aroveˇ n ukonˇcovac´ı funkci, dalˇs´ı teˇcka se tedy za nimi nep´ıˇse. V kontroln´ım skriptu je tedy kromˇe vyhled´an´ı tˇrech teˇcek a z´amˇeny za speci´aln´ı znak nutno oˇsetˇrit tak´e kontrolu dalˇs´ı teˇcky, kter´a zde jiˇz b´ yt nem´a. Chybn´ y v´ yraz ... ...
Popis Chybnˇe um´ıstˇen´a mezera pˇred teˇckami. Uveden´ı tˇrech teˇcek m´ısto speci´aln´ıho znaku, kde jsou teˇcky oddˇeleny tenk´ ymi mezerami. . . . . /... . M˚ uˇze b´ yt zam´ yˇslen v´ yznam tˇrech teˇcek a koncov´e teˇcky na konci vˇety, dalˇs´ı teˇcka se ovˇsem nep´ıˇse. . . . Chybn´e zaps´an´ı norm´aln´ıch mezer mezi teˇckami, m´ısto cel´eho v´ yrazu by mˇel b´ yt pouˇzit speci´aln´ı znak pro tˇri teˇcky. Tabulka 2.4: Chybn´e v´ yrazy s pouˇzit´ım tˇrech teˇcek
9
Teoretick´a ˇc´ast
Pravidla hladk´e sazby
Dvojteˇ cka U dvojteˇcky prob´ıh´a kontrola stejnˇe jako u jin´ ych interpunkˇcn´ıch znam´enek. D´ale jsou v kontrole zohlednˇeny v´ yrazy ud´avaj´ıc´ı ˇcasov´e u ´daje, na tato m´ısta je uˇzivatel upozornˇen: pouˇzit´ı dvojteˇcky je podle hladk´e sazby spr´avn´e u oddˇelen´ı minut a sekund, ale ˇcasto se v textech pouˇz´ıv´a tak´e k vyj´adˇren´ı hodin a minut. Spr´avnˇe podle hladk´e sazby je zde um´ıstˇena teˇcka. Pˇri matematick´ ych v´ yrazech a chemick´em pomˇeru je s´azena z obou stran s mezerami. Chybn´ y v´ yraz Popis : Chybnˇe um´ıstˇen´a mezera pˇred dvojteˇckou (v´ yjimky jsou chemick´ y pomˇer a matematick´e v´ yrazy). : Chyb´ı mezera za dvojteˇckou v textu (kromˇe ˇcasov´ ych u ´daj˚ u). ˇ 12:54 Casov´ y u ´daj, kde ale automaticky nelze rozhodnout, zda se jedn´a o minuty a sekundy nebo hodiny a minuty. Tabulka 2.5: Chybn´e v´ yrazy s pouˇzit´ım dvojteˇcky
2.4.3
Z´ avorky
V hladk´e sazbˇe se pouˇz´ıvaj´ı n´asleduj´ıc´ı z´avorky: • obl´e (), • hranat´e [], • svorky {}. Vˇzdy se p´ıˇs´ı tˇesnˇe k v´ yraz˚ um nebo vˇet´am, kter´e se do nich vkl´adaj´ı. Pˇri n´avrhu kontroly jsem se rozhodla vyhledat cel´ y v´ yraz od otev´ırac´ı z´avorky aˇz po uzav´ırac´ı z´avorku a jejich okol´ı. Podobnˇe jako u interpunkˇcn´ıch znam´enek se kontroluje spr´avn´e um´ıstˇen´ı mezer (tˇesnˇe za vloˇzen´ y v´ yraz). Pro vyhled´an´ı cel´eho v´ yrazu jsem se rozhodla pro pˇr´ıpadn´e dalˇs´ı rozˇs´ıˇren´ı skriptu a d˚ ukladnˇejˇs´ı kontrolu v´ yrazu (napˇr. zda za otev´ırac´ı z´avorkou n´asleduj´ı velk´e nebo mal´e p´ısmeno a podle toho je um´ıstˇena i interpunkce u uzav´ırac´ı z´avorky).
10
Teoretick´a ˇc´ast
Pravidla hladk´e sazby
Chybn´ y v´ yraz ...(...)...
Popis Vynech´an´ı mezer pˇred otev´ırac´ı z´avorkou a za uzav´ırac´ı z´avorkou. ... ( ... ) ... Chybnˇe um´ıstˇen´e mezery za otev´ırac´ı z´avorkou a pˇred uzav´ırac´ı z´avorkou. Tabulka 2.6: Chybn´e v´ yrazy s pouˇzit´ım z´avorek
2.4.4
Spojovn´ık, pomlˇ cka
Spojovn´ık se pouˇz´ıv´a k oznaˇcen´ı dˇelen´ı slov nebo jako spojovac´ı znam´enko ve sloˇzen´ ych v´ yrazech a s´az´ı se tˇesnˇe. Pomlˇcka naznaˇcuje vˇetˇs´ı pˇrest´avku v ˇreˇci nebo od sebe v´ yraznˇe oddˇeluje ˇca´sti textu, v´ yznamovˇe je rovna ˇca´rce. Uv´ad´ı se s okoln´ımi mezerami. Pomlˇcka se tak´e pouˇz´ıv´a jako n´ahrada v´ yraz˚ u a, aˇz, od do, versus. Pˇri tomto pouˇzit´ı se s´az´ı bez mezer a nesm´ı b´ yt na zaˇc´atku ani na konci ˇra´dku. Pomlˇcka za desetinnou ˇc´arkou u ˇc´ısel vyjadˇruje cel´e penˇeˇzn´ı jednotky a v tomto pˇr´ıpadˇe se za ˇca´rkou s´az´ı tˇesnˇe. Pˇri kontrole je moˇzn´e skriptem vyhledat vˇsechna um´ıstˇen´ı spojovn´ıku nebo pomlˇcek, ale nen´ı moˇzn´e odhalit z´amˇenu a nespr´avn´e pouˇz´ıv´an´ı spojovn´ıku a pomlˇcky. Na jednotliv´a um´ıstˇen´ı pˇri automatick´e kontrole nen´ı uˇzivatel na tato m´ısta upozorˇ nov´an, ale je provena typografick´a kontrola a pˇredpokl´ad´a se spr´avn´e pouˇzit´ı.
2.4.5
Podtrˇ z´ıtko, lom´ıtko
Oba znaky se s´az´ı bez mezer, vyhled´an´ı ve skriptu je navrˇzeno pomoc´ı regul´arn´ıch v´ yraz˚ u a okamˇzit´e z´amˇeny bez dalˇs´ıch kontroln´ıch funkc´ı.
2.4.6
ˇ ısla C´
Z´ apis ˇ c´ısla ˇ ıslo se cel´e zapisuje na jeden ˇr´adek, nelze jej rozdˇelit do dvou ˇra´dk˚ C´ u. Pˇr´ıpadn´e mezery mezi ˇc´ısly jsou nalezeny a zamˇenˇeny za u ´zk´e pevn´e mezery, tak, aby nedoch´azelo k rozdˇelen´ı ˇc´ısla na dva ˇra´dky. V nab´ıdce vyhled´av´an´ı je tak´e nalezen´ı ˇc´ısel vˇetˇs´ıch neˇz tis´ıc, kter´e se seskupuj´ı po tˇrech. 11
Teoretick´a ˇc´ast
Moˇznosti automatick´ych oprav
Desetinn´a ˇca´st ˇc´ısla je oddˇelena ˇca´rkou, okolo kter´e se nep´ıˇse mezera ani z jedn´e strany. Jednotliv´e ˇca´sti skriptu jsou prov´az´any a ˇca´rka u ˇc´ısel je zhodnocena i ve funkci zamˇeˇren´e na kontrolu vˇsech vyhledan´ ych ˇca´rek v textu. Chybn´ y v´ yraz Popis ˇ ısla nejsou rozdˇelena po ˇra´dech. C´ 123456789 123 456 789 Um´ıstˇen´ı norm´aln´ı mezery mezi ˇra´dy v ˇc´ıslech, kdy spr´avnˇe m´a b´ yt u ´zk´a pevn´a mezera. 123 456 , 789 Desetinn´a ˇca´rka s mezerami kolem n´ı. Tabulka 2.7: Chybn´e v´ yrazy s pouˇzit´ım ˇc´ısel
ˇ Casov´ eu ´ daje V hladk´e sazbˇe se hodiny a minuty saz´ı oddˇelen´e teˇckou. Cel´e hodiny je moˇzn´e s´azet ve form´atu 12.00 nebo 12 hodin. Minuty a sekundy pak oddˇelujeme dvojteˇckou, sekundy a desetiny sekund ˇc´arkou. Uˇzivatel si bude moci z v´ ybˇeru vybrat pouze vyhled´an´ı ˇcasov´ ych u ´daj˚ u, pokud vyhled´av´a i znam´enka teˇcky, dvojteˇcky, ˇc´arky, pak je tato kontrola provedena jiˇz u tˇechto znam´enek. Chybn´ y v´ yraz Popis 09:48 Nespr´avn´e vyj´adˇren´ı ˇcasu s uveden´ım dvojteˇcky mezi hodiˇ nami a minutami. Toto dovoluje norma CSN016910. Tabulka 2.8: Chybn´e v´ yrazy pˇri z´apisu ˇcasu
2.5
Moˇ znosti automatick´ ych oprav
Pro automatickou kontrolu dokumentu m˚ uˇze uˇzivatel vyuˇz´ıt nab´ıdku Hledat a nahradit, kterou InDesign nab´ız´ı. Zde je moˇzn´e vyb´ırat ze nˇekolika z´aloˇzek, pro kontrolu hladk´e sazby nejv´ıce pouˇziteln´e Text a GREP. V z´aloˇzce Text je moˇzn´e vyhled´avat tak´e pomoc´ı z´astupn´ ych symbol˚ u, kter´e InDesign pro textovou ˇc´asti definuje. Z´aloˇzka GREP, kter´a je dostupn´a od verze Adobe InDesign CS3, nab´ız´ı moˇznost pracovat s regul´arn´ımi v´ yrazy. V´ yhodou je automatick´e prohled´av´an´ı textu a rychl´a z´amˇena v´ yraz˚ u. Nev´ yhodou je pro uˇzivatele alespoˇ n ˇca´steˇcn´a znalost pouˇzit´ı regul´arn´ıch v´ yraz˚ u a nemoˇznost
12
Teoretick´a ˇc´ast
Moˇznosti automatick´ych oprav
rozhodov´an´ı u nejednoznaˇcn´ ych situac´ı, jako napˇr´ıklad interpunkce, jak je uv´adˇeno v´ yˇse. Pro operaˇcn´ı syst´em Mac OS X je pro automatickou kontrolu dokumentu ˇ c. Tento skript byl nab´ızen jiˇz pro AdobeInDesign nab´ızen skript Viktor Cistiˇ CS1 a od t´e doby byl postupnˇe rozˇsiˇrov´an a opravov´an. Uˇzivateli nab´ız´ı vyˇciˇstˇen´ı dokumentu od nadbyteˇcn´ ych znak˚ u, nevhodnˇe um´ıstˇen´ ych mezer napˇr. pˇred znaky z´avorek, vykˇriˇcn´ık˚ u. V nab´ıdce m´a nyn´ı i kontrolu mˇern´ ych jednotek ˇci mezery u zkratek a titul˚ u. Pro operaˇcn´ı syst´em Windows je moˇzn´e vyuˇz´ıt skripty Petera Kahlera, kter´e usnadˇ nuj´ı pr´aci s n´astrojem GREP v InDesignu. Na dokument je pak pˇri pouˇzit´ı skriptu opˇet moˇzn´e aplikovat ˇradu GREP dotaz˚ u. Ty se vykonaj´ı v poˇrad´ı, jak jsou naˇcteny z dialogov´eho okna skriptu, GREP dotazy mus´ı uˇzivatel definovat. Automatizace prob´ıh´a tedy bez rozhodov´an´ı z v´ıce spr´avn´ ych moˇznost´ı. Dˇr´ıve bylo moˇzn´e zakoupit skript UseMyTypo, kter´ y nab´ızel automatickou kontrolu dokumentu, nyn´ı jsem o nˇem aktu´aln´ı informace jiˇz neobjevila. Ve sv´em skriptu se snaˇz´ım ˇreˇsit kontrolu vybran´ ych v´ yraz˚ u a znak˚ u nejen automatickou z´amˇenou za jin´ y v´ yraz, ale tak´e rozhodov´an´ı v pˇr´ıpadˇe, ˇze pro znak existuje v´ıce spr´avn´ ych ˇreˇsen´ı, podle toho, jak vypad´a text v okol´ı znaku. Skript pracuje s n´astrojem GREP a uˇzivatel jej m˚ uˇze pouˇz´ıvat bez znalosti regul´arn´ıch v´ yraz˚ u.
13
3 Praktick´a ˇc´ast 3.1
Popis projektu
Pro automatickou kontrolu typografie jsem se rozhodla vyuˇz´ıt skriptov´an´ı, kter´e Adobe InDesign podporuje od verze CS1. S´azec´ı program nav´ıc podporuje v´ıce jazyk˚ u, konkr´etnˇe AppleScript (pro MAC OS), VBScript (pro Windows) a JavaScript (pro obˇe platformy). Pro sv˚ uj skript jsem si vybrala JavaScript, kter´ y je ve velk´e m´ıˇre vyuˇz´ıv´an pˇri tvorbˇe webov´ ych aplikac´ı a k dispozici je mnoˇzstv´ı literatury a n´astroj˚ u. JavaScript urˇcen´ y pro InDesign m´a vˇsak oproti tomu, kter´ y je pouˇz´ıv´an na webu, spoleˇcnou pouze z´akladn´ı specifikaci, tedy z´akladn´ı syntaxi, programov´e konstrukty a nˇekter´e objekty. JavaScript pro InDesign je pˇrizp˚ usoben pr´aci v InDesignu, jsou v nˇem definov´any jednotliv´e objekty, se kter´ ymi InDesign pracuje. V´ıce shrnuje kapitola 3.2. Skript pro automatickou kontrolu typografie jsem vytvoˇrila pro verzi CS3 a vyˇsˇs´ı. Prohled´avac´ı skript obsahuje n´asleduj´ıc´ı ˇc´asti: • hlavn´ı ˇc´ast skritpu, kter´a spouˇst´ı dalˇs´ı funkce; • ˇc´ast pro vyhled´av´an´ı a n´ahrady v textu dle urˇcen´eho rozsahu; • ˇc´ast pro kontrolu vyhledan´ ych v´ yraz˚ u a rozhodnut´ı o dalˇs´ım zpracov´an´ı; • ˇc´ast s jednotliv´ ymi funkcemi, kter´e jsou vol´any podle vyhledan´ ych regul´arn´ıch v´ yraz˚ u; • ˇc´ast pro pr´aci se soubory; • ˇc´ast pro nastaven´ı rozsahu a moˇznost´ı vyhled´av´an´ı (podle v´ ysledk˚ u nastaven´ ych uˇzivatelem); • ˇc´ast pro dialogov´a okna; • ˇc´ast pro pomocn´e a doplˇ nuj´ıc´ı funkce. Kromˇe samotn´ ych skript˚ u jsou vytvoˇreny n´asleduj´ıc´ı textov´e dokumenty pro podporu skript˚ u: 14
Praktick´a ˇc´ast
Skriptov´an´ı v Adobe InDesign
• Config.txt – konfiguraˇcn´ı soubor pro nastaven´ı moˇznost´ı skriptu; • Config2.txt – konfiguraˇcn´ı soubor pro nastaven´ı moˇznost´ı skriptu pˇri druh´em pr˚ uchodu dokumentem; • FindList.txt – soubor, kter´ y definuje jednotliv´e typografick´e chyby, kter´e maj´ı b´ yt vyhled´any, pomoc´ı regul´arn´ıch v´ yraz˚ u; • Result[ˇ cı ´slo prohled´ avan´ e ˇ ca ´sti].txt – soubor s v´ ysledkem prohled´av´an´ı.
3.2 3.2.1
Skriptov´ an´ı v Adobe InDesign Popdora skriptov´ an´ı
Jak jiˇz bylo v u ´vodu ˇreˇceno, skriptov´an´ı je v Adobe InDesign umoˇznˇeno od verze CS1. Skriptov´an´ı v Adobe InDesign pˇrin´aˇs´ı ˇradu moˇznost´ı, kter´a je s kaˇzdou verz´ı InDesignu rozˇsiˇrov´ana a v´ıce podporov´ana. V jednotliv´ ych verz´ıch jsou nov´e funkce pˇrid´av´any, z´aroveˇ n jsou nˇekter´e nahrazeny jin´ ymi a doch´az´ı tak k nekompatibilitˇe. V ˇradˇe pˇr´ıpad˚ u jsou vytvoˇren´e skripty urˇcen´e pouze pro urˇcitou verzi InDesignu a pro novou verzi mus´ı b´ yt aktualizov´any.
3.2.2
Spouˇ stˇ en´ı skript˚ u v InDesign
Skripty, kter´e chceme pouˇz´ıvat, se ukl´adaj´ı do pˇr´ısluˇsn´eho podadres´aˇre. Cesta k adres´aˇri od verze CS3 je n´asleduj´ıc´ı: • Adobe InDesign CS3/Scripts/Scripts Panel, V samotn´em programu se skripty um´ıstˇen´e v uveden´em podadres´aˇri zobraz´ı v paletce Skripty InDesignu. Paletka se v jednotliv´ ych verz´ıch aktivuje n´asleduj´ıc´ım zp˚ usobem: • verze CS3: Okna – Automatizace – Skripty, • verze CS4: Okna – Automatizace – Skripty, • verze CS5: Okna – Pom˚ ucky – Skripty, 15
Praktick´a ˇc´ast
3.2.3
Skriptov´an´ı v Adobe InDesign
Pr´ ace s InDesignem
Pro pr´aci a n´avrh skriptu bylo nutn´e sezn´amit se nejen s fungov´an´ım samotn´eho JavaScriptu, ale tak´e s jeho rozˇs´ıˇren´ım pod InDesignem. JavaScript v InDesignu je navrˇzen tak, ˇze um´ı zach´azet s objekty dan´eho programu, jejich vlastnostmi a metodami. Objekty jsou zde napˇr´ıklad dokument, textov´ y ˇci obrazov´ y r´ameˇcek, vrstva ˇci okno dokumentu. Vlastnosti jednotliv´ ych objekt˚ u jsou definov´any podle typu objektu, napˇr´ıklad u r´ameˇcku ˇs´ıˇrka, v´ yˇska, pozice na str´ance nebo obsah. Metody jsou akce, kter´e dok´aˇze objekt prov´adˇet, tedy tˇreba zmˇena velikosti, rotace ˇci pozice r´ameˇcku. T´ımto JavaScript pro InDesign dok´aˇze zastoupit r˚ uzn´e ˇcinnosti uˇzivatele. Z v´ yˇse uveden´eho je zˇrejm´e, ˇze se jedn´a o ˇsirok´e a specifick´e pole moˇznost´ı. Zamˇeˇr´ıme se zde pouze na pr´aci s textem, tedy s textov´ ymi r´ameˇcky a jejich obsahem.
3.2.4
Text, textov´ e r´ ameˇ cky a pr´ ace s textem
Z´akladn´ım objektem je story (textov´ y tok). Ten se skl´ad´a z kolekc´ı objekt˚ u chars, words, lines, paragraphs, atd. Pˇristupovat m˚ uˇzeme k textov´emu obsahu dan´eho textov´eho objektu. Automatizovat tak m˚ uˇzeme vkl´ad´an´ı textu, nastaven´ı parametr˚ u textov´ ych r´ameˇck˚ u nebo textov´ ych form´atovac´ıch charakteristik, kontroly pˇreteˇcen´ı r´ameˇck˚ u a podobnˇe. Pomoc´ı skript˚ u je moˇzn´e realizovat r˚ uzn´e automatick´e vyhled´av´an´ı nebo z´amˇeny. Pˇri skriptov´an´ı vˇsak lze mimo samotn´eho textov´eho obsahu zpracov´avat i rozmanit´e textov´e atributy jako napˇr. barvu p´ısma, oznaˇcen´ı ˇca´st´ı textu tagy. Toho vyuˇz´ıv´am tak´e ve sv´em skriptu, kdy oznaˇcuji vyhledan´e ˇc´asti textu, tak, aby je mohl uˇzivatel identifikovat. Skriptov´an´ı v InDesignu nab´ız´ı zaj´ımav´e moˇznosti, z´aroveˇ n jsem se ale bˇehem pr´ace setkala s r˚ uzn´ ymi u ´skal´ımi. Napˇr´ıklad je omezena pr´ace s vyhledan´ ym textem, musela jsem naj´ıt nˇekolik oklik, jak k tomuto textu pˇristupovat a z´ıskat z nˇej informace pro dalˇs´ı zhodnocen´ı vyhledan´eho v´ yrazu. Jedn´ım z probl´em˚ u byla pr´avˇe pr´ace se textem. Vyhledan´e v´ yrazy se ukl´adaj´ı do objekt˚ u typu text, kter´ y d´ale neumoˇzn ˇoval snadnou pr´aci s n´ım. Pokud jsem ale vyhledan´ y text uloˇzila do promˇenn´e typu String, bylo moˇzn´e pracovat s textem a regul´arn´ımi v´ yrazy d´ale. Probl´em nastal pˇri naˇcten´ı speci´aln´ıch znak˚ u, kter´e m´a InDesign definovan´e pod ˇc´ıseln´ ym oznaˇcen´ım. 16
Praktick´a ˇc´ast
InDesign a regul´arn´ı v´yrazy
Do promˇenn´e typu String se speci´aln´ı znaky nenaˇcetly spr´avnˇe, ale pr´avˇe ve sv´em ˇc´ıseln´em oznaˇcen´ı. Musela jsem hledat ˇreˇsen´ı, jak pouˇz´ıt regul´arn´ı v´ yrazy v objektech typu text. Skriptov´an´ı v InDesign nab´ız´ı podporu regul´arn´ıch v´ yraz˚ u od verze CS3.
3.3
InDesign a regul´ arn´ı v´ yrazy
V JavaScriptu pod InDesignem jsou vytvoˇreny funkce umoˇzn ˇuj´ıc´ı vyhled´av´an´ı a z´amˇeny pomoc´ı regul´arn´ıch v´ yraz˚ u. Na story a textov´e objekty nelze pouˇz´ıt metody search(), replace(), match() a split(), kter´e je naopak moˇzn´e aplikovat na objekty String. V InDesignu s regul´arn´ımi v´ yrazy pracuj´ı funkce: • findGrep() pro vyhled´an´ı v´ yraz˚ u, • changeGrep() pro z´amˇenu a nahrazen´ı v´ yrazu. V´ yhodou pouˇzit´ı funkc´ı vytvoˇren´ ymi pˇr´ımo pod InDesignem jsou jejich rozˇs´ıˇren´e moˇznosti, kdy je moˇzn´e vyhled´avat i speci´aln´ı znaky jako r˚ uzn´e druhy mezer ˇci pomˇcky a podobnˇe. Pro tyto funkce mluv´ı i vyuˇzit´ı i dalˇs´ıch voleb ve vyhled´av´an´ı a nahrazen´ı; vyhledan´ y text m˚ uˇze m´ıt r˚ uzn´ y styl nebo m˚ uˇze b´ yt po nahrazen´ı oznaˇcen ˇci zmˇenˇeny jeho vlastnosti. Nev´ yhodou ve skriptu je, ˇze dokument bude prohled´av´an v cyklu podle podle poˇctu vybran´ ych v´ yraz˚ u. V urˇcit´ ych situac´ıch se m˚ uˇze st´at, ˇze bude v´ yraz nalezen ve v´ıce ˇca´stech prohled´av´an´ı a pokaˇzd´e vyhodnocen. Ve skriptu je snaha o omezen´ı tˇechto situac´ı, napˇr. tˇri teˇcky je moˇzn´e vyhodnotit v r´amci interpunkce i samostatnˇe zvl´aˇst’. V pˇr´ıpadˇe v´ ybˇeru obou tˇechto voleb jsou tˇri teˇcky vyhled´any v poˇrad´ı prvn´ı z nich a druh´a je oznaˇcena, ˇze se prohled´avat nebude.
17
Praktick´a ˇc´ast
3.4
3.4.1
Skript pro automatickou kontrolu typografie
Skript pro automatickou kontrolu typografie Spuˇ stˇ en´ı skriptu a naˇ cten´ı u ´ daj˚ u
Po spuˇstˇen´ı skriptu se uˇzivateli otevˇre dialogov´e okno, jak ukazuje obr´azek 3.1, s nab´ıdkou moˇznost´ı, kter´e skript nab´ız´ı. Moˇznosti jsou rozdˇeleny do tˇrech ˇca´st´ı. • V´ ybˇer z nab´ızen´eho rozsahu v´ yraz˚ u, kter´e maj´ı b´ yt vyhled´any, • zp˚ usob u ´prav, tedy jak m´a b´ yt nahrazen´ı, pˇr´ıpadnˇe jenom vyhled´an´ı provedeno a oznaˇceno, • rozsah textu, na kter´ y se vyhled´av´an´ı bude vztahovat.
Obr´azek 3.1: Dialogov´e okno po spuˇstˇen´ı skriptu Pˇri prvn´ım spuˇstˇen´ı dialogov´eho okna se naˇcte nastaven´ı pro dialogov´e okno z konfiguraˇcn´ıho souboru Config.txt. Nastaven´ı dialogov´eho okna, jak jej uˇzivatel definoval, bude pˇred ukonˇcen´ım uloˇzeno zpˇet do konfiguraˇcn´ıho dokumentu a pˇri dalˇs´ım spuˇstˇen´ı skriptu bude pouˇzito pˇri zobrazov´an´ı dialogov´eho okna. Kromˇe nastaven´ı jednotliv´ ych grafick´ ych prvk˚ u je souˇca´st´ı konfiguraˇcn´ıho souboru i nastaven´ı samotn´eho spuˇstˇen´ı dialogov´eho okna. Pro uˇzivatele, kteˇr´ı budou ve skriptu pouˇz´ıvat st´ale stejn´e nastaven´ı a jsou schopni zasahovat do konfiguraˇcn´ıho souboru, je zde moˇznost vypnout zobrazov´an´ı dialogov´eho okna. Po spuˇstˇen´ı skript naˇcte konfiguraˇcn´ı soubor a podle jeho nastaven´ı zaˇcne rovnou prov´adˇet kontrolu dokumentu. 18
Praktick´a ˇc´ast
Skript pro automatickou kontrolu typografie
Pro vypnut´ı dialogov´eho okna staˇc´ı zmˇenit n´asleduj´ıc´ı promˇennou na false: var dialogShow = false; Pokud by se uˇzivateli povedlo omylem smazat konfiguraˇcn´ı soubor Config.txt, po spuˇstˇen´ı skript vytvoˇr´ı nov´ y a spust´ı podle nˇej dialogov´e okno.
3.4.2
Zp˚ usoby u ´ prav textu
Uˇzivateli jsou nab´ızeny tak´e moˇznosti prohled´av´an´ı a oznaˇcen´ı v´ ysledku prohled´an´ı. Jednak mohou b´ yt vybran´e v´ yrazy vyhled´any a nahrazeny, nebo pouze vyhled´any a oznaˇceny. Prvn´ı variantou je moˇznost vyhledat chyby v hladk´e sazbˇe a ty automaticky nahradit za spr´avn´e v´ yrazy bez dalˇs´ıho oznaˇcen´ı vyhledan´ ych m´ıst. N´asleduj´ıc´ı varianta nab´ız´ı oznaˇcit nahrazen´a m´ısta tagy, pˇr´ıpadnˇe vybranou barvou. Pˇr´ı v´ ybˇeru barvy je na konci prohled´av´an´ı nab´ıdnuta uˇzivateli moˇznost nastavit skript na druh´ y pr˚ uchod dokumentem, coˇz bl´ıˇze popisuje kapitola 3.4.4. Pˇri oznaˇcov´an´ı jednotliv´ ych vyhledan´ ych ˇca´st´ı barvou je potˇreba vzhledem ke zmˇenˇe index˚ u jednotliv´ ych znak˚ u v textu po n´ahradˇe prov´adˇet nahrazov´an´ı od konce dokumentu. Dalˇs´ı varianty nab´ızej´ı stejn´e oznaˇcen´ı (tagy, barva), ale text se pouze vyhled´a a samotn´a n´ahrada je ponech´ana na rozhodnut´ı uˇzivatele. Pˇri oznaˇcen´ı barvou je na konci prohled´an´ı opˇet uˇzivateli zobrazena nab´ıdka druh´eho pr˚ uchodu dokumentem. Posledn´ı moˇznost´ı je pr˚ ubˇeˇzn´e upozorˇ nov´an´ı na vyhledan´a m´ısta (v textu se oznaˇc´ı v´ ybˇer m´ısta a otevˇre se dialogov´e okno s nab´ıdkou n´ahrady, jak ukazuje obr´azek 3.2). I pˇri t´eto moˇznosti je nutn´e (vzhledem ke zmˇenˇe index˚ u jednotliv´ ych znak˚ u pˇri zmˇenˇe vyhledan´eho v´ yrazu) prohled´avat dokument od konce na zaˇca´tek. Barvu, kterou se bude oznaˇcovat vyhledan´ y text, si vyb´ır´a uˇzivatel ze seznamu v dialogov´em oknˇe. Seznam barev je naˇcten ze vzorn´ıku aplikace a liˇs´ı se podle toho, jak m´a kaˇzd´ y uˇzivatel definovan´e barvy ve vzorn´ıku.
19
Praktick´a ˇc´ast
Skript pro automatickou kontrolu typografie
Obr´azek 3.2: Dialogov´e okno pro nahrazen´ı jednotliv´ ych vyhledan´ ych v´ yraz˚ u
3.4.3
Rozsah textu urˇ cen´ eho ke kontrole
Po spuˇstˇen´ı skript kontroluje, zda v otevˇren´em dokumentu je textov´ y r´ameˇcek obsahuj´ıc´ı text, kter´ y bude moˇzn´e prohledat. Pokud ne, je uˇzivatel na tuto skuteˇcnost upozorˇ nen a skript je ukonˇcen. V nab´ıdce jednotliv´ ych voleb je moˇzn´e nastavit, v jak velk´e ˇca´sti textu se bude prohled´avat. Uˇzivatel m˚ uˇze volit mezi n´asleduj´ıc´ımi moˇznostmi: • V´ ybˇ erem – oznaˇcen´a ˇc´ast textu, pokud nebyl v´ ybˇer oznaˇcen a je vybr´ana tato moˇznost, skript na toto uˇzivatele upozorn´ı a ukonˇc´ı se. • Aktu´ aln´ı story – InDesign nab´ız´ı moˇznost rozdˇelit texty do jednotliv´ ych story a je moˇzn´e prohledat pouze urˇcitou story, pokud nen´ı v dokumentu ˇz´adn´a story, opˇet na toto skript upozorn´ı. • Aktu´ aln´ım dokumentem – prohledaj´ı se vˇsechny story v aktu´aln´ım dokumentu. • Ve vˇ sech otevˇ ren´ ych dokumentech – dokumenty jsou postupnˇe aktivov´any a n´aslednˇe prohled´any.
3.4.4
Vybr´ an´ı v´ yraz˚ u pro prohled´ an´ı
Souˇca´st´ı dialogov´eho okna je samozˇrejmˇe nab´ıdka pro v´ ybˇer v´ yraz˚ u, kter´e se maj´ı prohledat. Pro spr´avn´e zobrazen´ı vˇsech nab´ızen´ ych v´ yraz˚ u se naˇc´ıt´a konfiguraˇcn´ı soubor regul´arn´ıch v´ yraz˚ u Findlist.txt. Jak d´ale po naˇcten´ı souboru prob´ıh´a prohled´av´an´ı ve skriptu popisuje kapitola 3.5.
20
Praktick´a ˇc´ast
Prohled´av´an´ı dokumentu skriptem
Druh´ y pr˚ uchod prohled´ av´ an´ı Pokud uˇzivatel v u ´vodn´ım nab´ıdkov´em oknˇe zvol´ı moˇznost barevn´eho oznaˇcen´ı vyhledan´ ych m´ıst, je mu po ukonˇcen´ı hled´an´ı nab´ıdnuta moˇznost druh´eho pr˚ uchodu dokumentem (ob´azek 3.3). Znamen´a to, ˇze pˇri dalˇs´ım spuˇstn´ı skriptu budou vyznaˇcen´e ˇc´asti textu obarveny opˇet p˚ uvodn´ı barvou. Informace potˇrebn´e pro tento n´avrat“ jsou uloˇzeny v dokumentu Result[ˇ cı ´slo ” prohled´ avan´ e c ˇ´ asti].txt, kam se uloˇz´ı vyhledan´e a nahrazen´e v´ yrazy.
Obr´azek 3.3: Dialogov´e okno s nab´ıdkou nastaven´ı druh´eho pr˚ uchodu pˇri obarvov´an´ı textu
3.5 3.5.1
Prohled´ av´ an´ı dokumentu skriptem Ukl´ ad´ an´ı dat
Skriptov´an´ı pod InDesignem mi neumoˇzn ˇuje vytvoˇrit si datov´ y objekt, do kter´eho by se ukl´adaly vˇsechny potˇrebn´e informace k jednotliv´ ym regul´arn´ım v´ yraz˚ um, jako samotn´ y v´ yraz, jeho nahrazen´ı, jeho pˇr´ıznak a index a dalˇs´ı. Tuto nev´ yhodu“ ˇreˇs´ım pomoc´ı nˇekolika pol´ı, do kter´ ych se v´ yˇse uveden´e ” informace ukl´adaj´ı. Veˇsker´e informace souvisej´ıc´ı s jedn´ım v´ yrazem jsou pak uloˇzeny v pod jedn´ım indexem a je moˇzn´e k nim pˇres tento index pˇristupovat. 21
Praktick´a ˇc´ast
3.5.2
Prohled´av´an´ı dokumentu skriptem
Zp˚ usob prohled´ av´ an´ı
Pˇri n´avrhu skriptu a testov´an´ı moˇznost´ı, jsem se rozhodla vyuˇz´ıt definovan´e prohled´avac´ı funkce, kter´e nab´ız´ı skriptov´an´ı pod InDesignem. Jejich v´ yhodou je pˇr´ım´a podpora InDesignu a nejr˚ uznˇejˇs´ı moˇznosti nastaven´ı preferenc´ı prohled´av´an´ı. Nev´ yhodou je, ˇze dokument je prohled´av´an nˇekolikr´at v cyklu podle poˇctu regul´arn´ıch v´ yraz˚ u, kter´e si uˇzivatel vybral. Vyuˇzit´ı preferenc´ı, tedy vlastnost´ı souvisej´ıc´ıch s prohled´av´an´ım, umoˇzn ˇuje nejenom nastaven´ı toho, co se m´a prohled´avat nebo nahrazovat, ale bylo v´ yhodn´e pouˇz´ıt jej i pˇri oznaˇcov´an´ı tagy nebo barvou. Funkce findGrep() a changeGrep() se aplikuj´ı na textovou oblast (v´ ybˇer, story, dokument), kterou podle nastaven´ı dialogu vyhodnot´ı funkce myFindPlace_CS3(). Ta d´ale vol´a funkci myFindAndReplaceInText_CS3(mySearchSelection) a jako argument m´a pr´avˇe odkaz na vybran´ y text.
3.5.3
Vyhled´ av´ an´ı v´ yraz˚ u
Pomoc´ı preferenc´ı se nastav´ı prohled´av´an´ı, kdy se postupnˇe v cyklu zad´avaj´ı regul´arn´ı v´ yrazy naˇcten´e z konfiguraˇcn´ıho souboru FindList.txt. Prohledan´a m´ısta jsou uloˇzena do pole a podle v´ ybˇeru zp˚ usobu u ´prav textu jsou vol´any dalˇs´ı funkce. app.findGrepPreferences.findWhat = myExp; myFoundText = mySearchSelection.findGrep();
3.5.4
Zp˚ usoby kontroly typografie
V konfiguraˇcn´ım souboru FindList.txt jsou jednotliv´e regul´arn´ı v´ yrazy oznaˇceny pˇr´ıznakem pro zpracov´an´ı. • Pˇr´ıznak r – oznaˇcuje v´ yrazy, kter´e po vyhled´an´ı a zavol´an´ı pˇr´ısluˇsn´e funkce pro z´amˇenu jsou ihned nahrazeny. • Pˇr´ıznak f – oznaˇcuje v´ yrazy, kter´e jsou po uloˇzen´ı do pole postupnˇe d´ale proch´azeny pomoc´ı definovan´ ych funkc´ı (podle v´ ybˇeru, co se m´a 22
Praktick´a ˇc´ast
Prohled´av´an´ı dokumentu skriptem
prohledat). V nich se rozhodne, zda je vyhledan´ y v´ yraz spr´avnˇe a nebude se zamˇen ˇovat a nebo na jak´em m´ıstˇe je ve v´ yrazu chyba. Podle typu chyby se nastav´ı vhodn´a n´ahrada. Regul´arn´ı v´ yrazy s pˇr´ıznakem r jsou pouˇzity na chybov´e ˇc´asti jako nadbyteˇcn´e znaky nebo z´amˇena mezery za jednop´ısmennou pˇredloˇzkou. Pomoc´ı regul´arn´ıch v´ yraz˚ u s pˇr´ıznakem f jsou vyhled´any vˇsechny v´ yskyty znak˚ u v dokumentu, napˇr. interpunkˇcn´ıch znam´enek. Kontroly ve funkci je sleduj´ı typografick´e chyby, pokud nejsou nalezeny, je v´ yraz povaˇzov´an za spr´avn´ y. Jednotliv´e funkce jsou definov´any podle pravidel hladk´e sazby a vych´az´ı z tabulek uveden´ ych v kapitole 2.4.
Kontroln´ı funkce v´ yraz˚ u Pro znaky, jako napˇr´ıklad interpunkˇcn´ı znam´enka, nen´ı moˇzn´e kontrolu ˇreˇsit jako vyhled´an´ı vˇsech v´ yskyt˚ u a jejich n´ahradu jedn´ım jin´ ym v´ yrazem. N´ahrada naopak mus´ı vych´azet z v´ ybˇeru r˚ uzn´ ych variant ˇreˇsen´ı. Pˇri anal´ yze pravidel hladk´e sazby jsem si definovala znaky, kter´e se maj´ı nebo naopak nemaj´ı vyskytovat v okol´ı hledan´eho znaku. D´ale vˇse vysvˇetl´ım na pˇr´ıkladech interpunkˇcn´ıch znam´enek. Pˇri vyhled´av´an´ı znaku je spoleˇcnˇe se znam´enkem naˇcteno i jeho okol´ı, tedy b´ıl´e znaky a z kaˇzd´e strany jeden znak textu. Regul´arn´ı v´ yrazy v konfiguraˇcn´ım souboru FindList.txt jsou navrˇzeny zd´anlivˇe sloˇzitˇeji neˇz by mohly b´ yt, ale zvolila jsem tuto variantu pr´avˇe z d˚ uvodu zachov´an´ı nebo odstranˇen´ı jednotliv´ ych ˇc´ast´ı nalezen´eho v´ yrazu. U interpunkˇcn´ıch znam´enek je neprve, pokud nebyla tato volba zvolena uˇzivatelem ve v´ ybˇeru, kontrolov´ana pˇr´ıtomnost v´ıce b´ıl´ ych znak˚ u za sebou a ponech´an je jeden (nam´ısto dvou mezer jedna). Je zde tak´e oˇsetˇren pˇr´ıpad, kdy se za znam´enkem m˚ uˇze vyskytovat mezera a za n´ı konec odstavce (pˇr´ıpadnˇe v´ıce konc˚ u odstavc˚ u). V tomto pˇr´ıpadˇe m´a b´ yt zachov´an aˇz znak konce odstavce a ne mezery hned za znam´enkem. D´ale je sledov´ano zda se ve v´ yrazu vyskytuje jedno interpunkˇcn´ı znam´enko nebo v´ıce a je pˇresnˇe urˇceno, o jak´ y znak se jedn´a. Podle toho jsou vol´any funkce, kter´e sleduj´ı jiˇz kaˇzd´e interpunkˇcn´ı znam´eneko zvl´aˇst’. Samostatn´a funkce ˇreˇs´ı v´ yskyt v´ıce interpunkˇcn´ıch znam´enek.
23
Praktick´a ˇc´ast
Prohled´av´an´ı dokumentu skriptem
V tˇechto funkc´ıch urˇcen´ ych pro znam´enka je opˇet pouˇz´ıv´ana metoda v InDesignu findGrep() s nastaven´ ymi preferencemi. Metoda findGrep() je tentokr´ate aplikov´ana pouze na v´ yraz nalezen´ y v textu a v nˇem hled´a moˇzn´e kombinace v´ yskytu v souvislosti se znam´enkem. Nejprve jsou oˇsetˇreny pˇr´ıpady, kdy se v okol´ı interpunkce objevuje ˇc´ıslo (pˇr´ıpad ˇca´rky, teˇcky, dvojteˇcky) a funkce je ukonˇcena s t´ım, ˇze v´ yraz je spr´avnˇe nebo je opraven a nastaven pˇr´ıznak pro nahrazen´ı v´ yrazu. V souvislosti s ˇc´ısly jsou d´ale sledov´any pˇr´ıpady, kdy za ˇc´ıslem ˇca´rka z˚ ustat m´a, jak ukazuje pˇr´ıklad v kapitole 2.4.2. Pro tuto kontrolu slouˇz´ı samotstatn´a funkce, kter´a je vol´ana v pˇr´ıpadˇe ˇc´arky a vkl´ad´an´ı nerozdˇeliteln´ ych mezer u ˇc´ısel v ˇra´dech tis´ıc˚ u. Pokud nejsou v okol´ı znam´enka ˇc´ısla, pak funkce pokraˇcuje dalˇs´ı kontrolou a sleduj´ı se jednotliv´e definovan´e pˇr´ıpady jako: • chybˇej´ıc´ı mezera za interpunkc´ı, pokud za znakem nen´ı um´ıstˇeno dalˇs´ı znam´enko nebo uzav´ırac´ı z´avorky, • nadbyteˇcn´a mezera za interpunkc´ı, pokud za znam´enkem n´asleduje dalˇs´ı znam´enko, uzav´ırac´ı z´avorky, • nadbyteˇcn´a mezera pˇred znam´enkem ve vˇsech pˇr´ıpadech. Pro kaˇzd´ y znak jsou definov´any vlasn´ı kontroln´ı funkce oˇsetˇruj´ıc´ı situace, kter´e mohou nastat, jak bylo pops´ano v´ yˇse. Kromˇe toho, jsou ve funkc´ıch nastaveny pˇr´ıpady, kter´e nen´ı moˇzn´e rozhodnout, jejich pˇr´ıznak je nastaven tak, aby nedoˇslo k z´amˇenˇe. Tyto v´ yrazy jsou v z´avˇereˇcn´em shrnut´ı uvedeny v pˇrehledu a vˇzdy vyznaˇceny barvou ve skriptu. Pokud v´ yraz nen´ı v ˇza´dn´e ˇc´asti funkce zamˇenˇen, je povaˇzov´an za spr´avn´ y a k n´ahradˇe nedojde. To urˇcuje ˇc´ıseln´ y pˇr´ıznak, kter´ y se pˇri nalezen´ı chyby zvyˇsuje. Do nahrazovac´ı funkce changeGrep() jsou pak zaˇrazeny pouze v´ yrazy, u kter´ ych se pˇr´ıznak zmˇenil.
3.5.5
Nahrazen´ı v´ yraz˚ u
Pˇri nahrazovan´an´ı urˇcen´ ych v´ yraz˚ u (vˇsech u pˇr´ıznaku r a vybran´ ych chybov´ ych u pˇr´ıznaku f) vyuˇz´ıv´am opˇet preferenc´ı. Kromˇe nastaven´ı regul´arn´ıho 24
Praktick´a ˇc´ast
Ukonˇcen´ı skriptu
v´ yrazu pro nahrazen´ı se zde nastavuj´ı tagy nebo barva, kterou uˇzivatel vybral ze vzorn´ıku. Pokud maj´ı b´ yt v´ yrazy nalezeny a oznaˇceny bez zmˇeny samotn´eho v´ yrazu, je v preferenc´ıch z´amˇeny uveden pr´azdn´ y v´ yraz. Jednotliv´e preference vypadaj´ı n´asledovnˇe: app.changeGrepPreferences.changeTo = myNewText; app.changeGrepPreferences.changeTo = ""; app.changeGrepPreferences.markupTag = "Zmeneny_text"; app.changeGrepPreferences.markupTag = "Nalezeny_text"; app.changeGrepPreferences.fillColor = String(app.activeDocument.swatches[colorIndex].name); Samotn´a funkce changeGrep() je vol´ana bud’ na celou textovou ˇc´ast (podle rozsahu prohled´avan´eho textu) nebo na jednotliv´e poloˇzky pole podle vyhodnocen´ı funkc´ı. myChangedText = myFoundText[y].changeGrep(); myChangedText = mySearchSelection.changeGrep();
3.6
Ukonˇ cen´ı skriptu
Po skonˇcen´ı skriptu je uˇzivateli zobrazeno dialogov´e okno s v´ ysledkem pr˚ uchodu dokumentem, vizte obr´azek 3.3. Jsou zde shrnuty poˇcty zamˇenˇen´ ych v´ yraz˚ u v jednotliv´ ych skupin´ach a d´ale je v dialogu uvedena tabulka s v´ yrazy, kter´e skript nalezl, ale nemohl rozhodnout o jejich spr´avnosti (napˇr. hodiny a minuty).
3.7
Rozˇ s´ıˇ ren´ı skriptu
Skript pro automatickou kontrolu oˇsetˇruje nejˇcastˇejˇs´ı a z´akladn´ı typografick´e chyby, jak byly jmenov´any v´ yˇse. Z´aroveˇ n nab´ız´ı uˇzivateli moˇznost doplnit si skript o dalˇs´ı regul´arn´ı v´ yrazy s pˇr´ıznakem r. Regul´arn´ı v´ yrazy staˇc´ı zapsat do konfiguraˇcn´ıho souboru FindList.txt, stejnˇe jako jsou tam zaps´any st´avaj´ıc´ı regul´arn´ı v´ yrazy.
25
Praktick´a ˇc´ast
Rozˇs´ıˇren´ı skriptu
U t´eto verze skriptu je potˇreba po doplnˇen´ı regul´arn´ıch v´ yraz˚ u oˇsetˇrit jednu skuteˇcnost, aby skript neskonˇcil chybov´ ym hl´aˇsen´ım. Po uloˇzen´ı zmˇen v souboru FindList.txt mus´ı b´ yt ve stejn´em adres´aˇri smaz´an konfiguraˇcn´ı soubor Config.txt. Po opˇetovn´em spuˇstˇen´ı skriptu je vytvoˇren nov´ y konfiguraˇcn´ı soubor, ve kter´em jsou jiˇz zaznamen´any u ´daje k novˇe doplnˇen´ ym ˇc´astem prohled´av´an´ı. Toto bylo ve skriptu zohlednˇeno i vzhledem k tomu, ˇze by uˇzivatel soubor Config.txt smazal. V dalˇs´ım zpracov´an´ı skriptu by bylo pˇr´ınosn´e tuto situaci oˇsetˇrit v r´amci samotn´eho skriptu. Skript je navrˇzen tak, aby bylo moˇzn´e jej d´ale rozˇs´ıˇrit u ´pravou uvnitˇr skriptu. Staˇc´ı doplnit regul´arn´ı v´ yrazy s pˇr´ıznakem f do konfiguraˇcn´ıho souboru a k nim pˇr´ısluˇsn´e oˇsetˇruj´ıc´ı funkce pˇr´ımo do skriptu. Jednotliv´e oˇsetˇruj´ıc´ı funkce jsou ˇc´ıslov´any a ˇc´ıslo odpov´ıd´a ˇc´ıslu ˇca´sti v konfiguraˇcn´ım souboru. Nov´a oˇsetˇruj´ıc´ı funkce mus´ı m´ıt n´azev myControl’ˇ cı ´slo c ˇa ´sti’() a pouˇzij´ı se parametry, kter´e jsou stejn´e pro vˇsechny kontroln´ı funkce. Pro praktick´e pouˇzit´ı by bylo vhodn´e dialogov´e volby rozˇs´ıˇrit o nab´ıdku vytvoˇren´ı kopie prohled´av´an´eho dokumentu a samotn´e prohled´av´an´ı prov´adˇet v t´eto kopii. D´ale by bylo moˇzn´e nab´ıdnout uˇzivateli v´ ybˇer oznaˇcovac´ı barvy pro v´ yrazy, kter´e skript neum´ı rozhodnout. V tuto chv´ıli je ve skriptu pro tyto situace barva pevnˇe nastavena. Pro pˇr´ıjemnˇejˇs´ı uˇzivatelsk´ y pˇr´ıstup pˇri dopˇ nov´an´ı vlastn´ıch regul´arn´ıch v´ yraz˚ u (v reˇzimu nalezen´ı a automatick´e n´ahrady) by bylo uˇziteˇcn´e doplnit dalˇs´ı skript, kter´ y by nab´ızel dialogov´e okno, kam by uˇzivatel mohl sv´e regul´arn´ı v´ yrazy zadat. Skript by je pak ve spr´avn´em form´atu a ˇrazen´ı zapsal do konfiguraˇcn´ıho souboru FindList.txt.
26
4 Z´avˇer V pr˚ ubˇehu realizace projektu jsem postupnˇe musela ˇreˇsit ˇradu d´ılˇc´ıch u ´kol˚ u, kter´e znesnadˇ novaly tvorbu skriptu. R˚ uzn´e komplikace vyvst´avaly pˇri pouˇz´ıv´an´ı funkc´ı JavaScriptu pod InDesignem. Pˇri testech jsem narazila na to, ˇze p˚ uvodn´ı myˇslenku, jak kontrolovat jednotliv´e v´ yrazy ve funkc´ıch, mus´ım pozmˇenit, napˇr´ıklad kv˚ uli pouˇz´ıv´an´ı speci´aln´ıch znak˚ u v InDesignu. S t´ım se objevila ˇrada dalˇs´ıch u ´kol˚ u, kter´e bylo nutn´e v r´amci inovovan´eho n´avrhu kontroly prov´est. Nakonec se mi podaˇrilo vytvoˇrit funkˇcn´ı skript, kter´ y nejenom automaticky zamˇenuje vyhledan´e v´ yrazy, ale podle potˇreby je analyzuje a vyb´ır´a vhodn´e ˇreˇsen´ı pro konkr´etn´ı situace. Pˇri snaze nab´ıdnout uˇzivateli moˇznosti v´ ybˇeru, jak m´a skript s dokumentem pracovat, jsem musela ˇreˇsit situace, jak propojovat fungov´an´ı samotn´eho vyhled´av´an´ı s ostatn´ı nab´ıdkou. Tak´e samotn´e kontroln´ı funkce ve vyhled´av´an´ı s sebou pˇrinesly ˇradu u ´kol˚ u k ˇreˇsen´ı. Kromˇe sezn´amen´ı se samotn´ ym skriptov´an´ım v JavaScriptu jsem si prostudovala pr´aci v InDesignu. Zaj´ımav´e pro mˇe bylo prozkoumat, jak´ ym zp˚ usobem instrukce skritpu zach´azej´ı s objekty v InDesignu, s jejich vlastnostmi a metodami. D´ale jsem si vyzkouˇsela pr´aci s regul´arn´ımi v´ yrazy, nav´ıc dopln ˇenou o pouˇz´ıv´an´ı regul´arn´ıch v´ yraz˚ u ve funkc´ıch vypracovan´ ych pˇr´ımo pro InDesign.
27
Literatura [1] Koˇciˇcka, Pavel – Blaˇzek, Filip. Praktick´a typografie. Brno: Computer Press, 2004. [2] Suehring, Steve. JavaScript: krok za krokem. Brno: Computer Press, 2004. [3] Adobe System Incorporated. InDesign CS Scripting Guide, California: Adobe Systems Incorporated, 2003. [4] Adobe System Incorporated. Adobe InDesign CS3 Scripting Guide: JavaScript. California: Adobe Systems Incorporated, 2007. [5] InDesign Scripting Reference. [online] Dostupn´e z: http://www.indesignscriptingreference.com/CS3/JavaScript/ [6] Krejˇc´ı, Richard. Skriptov´an´ı InDesingu. Richard Krejˇc´ı, 2006. [online] Dostupn´e z: http://www.grafika.cz/art/sazba/skriptid1.html [7] Krejˇc´ı, Richard. Adobe InDesign GREP. Richard Krejˇc´ı, 2007. [online] http://www.grafika.cz/art/sazba/idcs3grep.html
CS3 zbl´ızka: Dostupn´e z:
[8] Satrapa, Pavel. Regul´arn´ı v´yrazy. Vytvoˇreno pro on-line magaz´ın root. Pavel Satrapa, 2000. [online] Dostupn´e z: http://www.kit.tul.cz/ satrapa/docs/regvyr/ [9] Pecka, Miroslav. Regul´arn´ı v´yrazy a JavaScript. Miroslav Pecka, 2005. [online] Dostupn´e z: http://interval.cz/clanky/regularni-vyrazya-javascript-uvod/
28
Seznam tabulek
2.1
Chybn´e v´ yrazy s pouˇzit´ım teˇcky . . . . . . . . . . . . . . . . .
7
2.2
Chybn´e v´ yrazy s pouˇzit´ım otazn´ıku a vykˇriˇcn´ıku . . . . . . . .
8
2.3
Chybn´e v´ yrazy s pouˇzit´ım ˇc´arky . . . . . . . . . . . . . . . . .
9
2.4
Chybn´e v´ yrazy s pouˇzit´ım tˇrech teˇcek . . . . . . . . . . . . . .
9
2.5
Chybn´e v´ yrazy s pouˇzit´ım dvojteˇcky . . . . . . . . . . . . . . 10
2.6
Chybn´e v´ yrazy s pouˇzit´ım z´avorek . . . . . . . . . . . . . . . 11
2.7
Chybn´e v´ yrazy s pouˇzit´ım ˇc´ısel . . . . . . . . . . . . . . . . . 12
2.8
Chybn´e v´ yrazy pˇri z´apisu ˇcasu . . . . . . . . . . . . . . . . . . 12
29
Seznam obr´ azk˚ u
3.1
Dialogov´e okno po spuˇstˇen´ı skriptu . . . . . . . . . . . . . . . 18
3.2
Dialogov´e okno pro nahrazen´ı jednotliv´ ych vyhledan´ ych v´ yraz˚ u 20
3.3
Dialogov´e okno s nab´ıdkou nastaven´ı druh´eho pr˚ uchodu pˇri obarvov´an´ı textu . . . . . . . . . . . . . . . . . . . . . . . . . 21
30
Pˇ r´ılohy Pˇr´ıloha A. Uˇzivatelsk´ y manu´al Pˇr´ıloha B. Pˇriloˇzen´e CD
31
A Uˇzivatelsk´y manu´al Skript MyTypo_CS3 je urˇcen pro automatickou kontrolu typografie podle pravidel hladk´e sazby v programu Adobe InDesign. Skript je vytvoˇren pro verzi CS3 a vyˇsˇs´ı.
Uloˇ zen´ı skriptu Celou sloˇzku se skriptem i konfiguraˇcn´ımi soubory je potˇreba uloˇzit do sloˇzky, kterou InDesign pouˇz´ıv´a pro pr´aci se skripty. Cesta ke sloˇzce je n´asleduj´ıc´ı: • Mac OS Users/[jm´eno uˇzivatele]/Library/Preferences/Adobe InDesign/[verze]/([jazyk])/Scripts/Scripts Panel, • Windows XP Documents and Settings\[jm´eno uˇzivatele]\ApplicationData\Adobe\InDesign\[verze]\([jazyk]\)Scripts\Scripts Panel, • Windows Vista a Windows 7 Users\[jm´eno uˇzivatele]\AppData\Roaming\Adobe\InDesign\[verze]\([jazyk]\)Scripts\Scripts Panel.
Spuˇ stˇ en´ı skriptu V InDesignu se skripty zobraz´ı v paletce Skripty InDesignu. Panel s nab´ıdkou dostupn´ ych skript˚ u je moˇzn´e v r˚ uzn´ ych verz´ıch aktivovat n´asleduj´ıc´ım zp˚ usobem: • verze CS3: Okna – Automatizace – Skripty, • verze CS4: Okna – Automatizace – Skripty, • verze CS5: Okna – Pom˚ ucky – Skripty, Samotn´ y skript se spouˇst´ı souborem MyTypo_CS3.
32
Uˇzivatelsk´y manu´al
Dialogov´ e okno skriptu Po spuˇstˇen´ı se zobraz´ı dialogov´e okno skriptu s nab´ıdkou v´ ybˇeru.
Obr..: Dialogov´e okno skriptu
Upozornˇen´ı: Vaˇse nastaven´ı dialogov´eho okna bude po spuˇstˇen´ı skriptu zapamatov´ano a uloˇzeno. Pˇri dalˇs´ım spuˇstˇen´ı skriptu je v dialogov´em oknˇe zobrazeno vaˇse posledn´ı nastaven´ı.
Rozsah kontroly V ˇca´sti rozsahu kontroly m˚ uˇzete vyb´ırat z jednotliv´ ych nab´ıdek jak´e typografick´e probl´emy maj´ı b´ yt vyhled´any. Vyb´ırat m˚ uˇzete jak jednotliv´e ˇc´asti, tak je zde um´ıstˇena nab´ıdka pro prohled´an´ı vˇsech pˇr´ıpad˚ u.
Zp˚ usob u ´ prav Skript pro kontrolu typografie v´am umoˇzn ˇuje vyhledan´e v´ yrazy oznaˇcovat r˚ uzn´ ym zp˚ usobem. V´ yrazy je moˇzn´e automaticky nahradit a neoznaˇcovat je ˇz´adn´ ym zp˚ usobem. Vyhledan´e v´ yrazy skript m˚ uˇze nahradit a oznaˇcit tagem s n´azvem Zmeneny_text. Pokud vyberete nahrazen´ı v´ yrazu a oznaˇcen´ı barvou, aktivuje se v´am panel s v´ ybˇerem barvy podle vaˇseho vzorn´ıku barev. 33
Uˇzivatelsk´y manu´al
Kromˇe automatick´eho nahrazov´an´ı v´ yraz˚ u je moˇzn´e problematick´a m´ısta textu nechat skript pouze vyhledat. Opˇet je moˇzn´e pouˇz´ıt oznaˇcen´ı pomoc´ı tagu s n´azvem Nelezeny_text. I v pˇr´ıpadˇe pouh´eho vyhled´an´ı v´ yraz˚ u je m˚ uˇzete oznaˇcit barvou podle vaˇseho v´ ybˇeru ze vzorn´ıku. Jako posledn´ı v´am skript nab´ız´ı vyhled´av´an´ı v´ yraz˚ u a pr˚ ubˇeˇzn´e upozorn ˇov´an´ı na nalezen´a m´ısta. Pˇri upozornˇen´ı je vyhledan´e m´ısto oznaˇceno v´ ybˇerem a zobrazeno je dialogov´e okno s n´avhrem, jak m´a b´ yt v´ yraz nahrazen. Po potvrten´ı je z´amˇena provedena, pˇri stornov´an´ı z˚ ustane v´ yraz p˚ uvodn´ı.
Kde prohled´ avat I u m´ıst prohled´av´an´ı m´ate moˇznost si vybrat z nˇekolika nab´ıdek. Ve vˇsech pˇr´ıpadech mus´ı otevˇren´ y dokument obsahovat text, jinak se skript ukonˇc´ı. Pˇri volbˇe V´ybˇer je potˇreba m´ıt vybranou a oznaˇcenou ˇca´st textu pro prohled´av´an´ı. Vˇsechny otevˇren´e dokumenty jsou prohled´av´any postupnˇe.
Rozˇ s´ıˇ ren´ a pr´ ace se skriptem Skript v´am nab´ız´ı moˇznost rozˇs´ıˇrit prohled´av´an´ı o dalˇs´ı regul´arn´ı v´ yrazy, kter´e slouˇz´ı k prohled´av´an´ı textu. Vˇsechny regul´arn´ı v´ yrazy jsou uloˇzen´e v samostatn´em souboru s n´azvem FindList.txt. Tento soubor spolu s ostatn´ımi naleznete ve sloˇzce skriptu (MyTypo). Otevˇrete soubor FindList.txt. Na konec souboru um´ıstˇete sv´e nov´e regul´arn´ı v´ yrazy podle n´asleduj´ıc´ıch pravidel: • Na prvn´ı ˇr´adek zapiˇste ˇc´ıslo ˇc´asti s popisem, kter´ y se objev´ı v zaˇskrt´avac´ı nab´ıdce v dialogov´em oknˇe po spuˇstˇen´ı skriptu v n´asleduj´ıc´ım tvaru: – castmezera [ˇ c´ ıslo regul´ arn´ ıho v´ yrazu]tabulator [popis ˇ ceho se regul´ arn´ ı v´ yraz t´ yk´ a] 34
Uˇzivatelsk´y manu´al
• Na nov´ y ˇra´dek zapiˇste samotn´ y regul´arn´ı v´ yraz a v´ yraz, za kter´ y bude nahrazen podle n´asleduj´ıch pravidel: – jako prvn´ı mus´ı b´ yt oznaˇcen´ı v´ yrazu p´ısmenem r (nesm´ı b´ yt oznaˇcen´ı f, skript by potom nefungoval) – za tabul´atorem je v uvozovk´ach uveden text nebo regul´arn´ı v´ yraz pro prohled´an´ı – za dalˇs´ım tabul´atorem je opˇet v uvozovk´ach uveden text nebo regul´arn´ı v´ yraz, kter´ ym m´a b´ yt vyhledan´a ˇca´st nahrazena – opˇet um´ıstit tabul´ator a napsat si popis, o ˇcem regul´arn´ı v´ yraz je
Pˇr´ıklad: cast xx z´amˇena pozdravu r ”Ahoj” ”Dobr´ y den”
popis v´ yraz˚ u
Pozn: ˇc´ıslo regul´arn´ıho v´ yrazu nastavte jako dalˇs´ı n´asleduj´ıc´ı ˇc´ıslo, kter´e je v dokumentu uvedeno. Pozor, v t´eto verzi skriptu je potˇreba po doplnˇen´ı nov´ ych regul´arn´ıch v´ yraz˚ u do souboru FindList.txt smazat konfiguraˇcn´ı soubor Config.txt. Ten bude po spuˇstˇen´ı skriptu znovu vytvoˇren a budou v nˇem zohlednˇeny novˇe vloˇzen´e v´ yrazy.
35
B Pˇriloˇzen´e CD Obsah pˇriloˇzen´eho CD: • Zdrojov´ y k´od skriptu vˇcetnˇe potˇrebn´ ych konfiguraˇcn´ıch dokument˚ u, • text bakal´aˇrsk´e pr´ace ve form´atu pdf.
36