Ohhh~indezajnie

Mam dość dziwne hobby, o którym mało kto wie… składam książki. Ok. Może to lekka przesada z tym hobby, ale generalnie lubię zajmować się tym w wolnej chwili. Wiąże się to z moim drugim hobby, czyli pisaniem książek (nie, nie napisałem jeszcze żadnej).

Okazuje się jednak, że na hobby da się zarobić, więc okazjonalnie biorę się za składanie książek na zlecenie – podpowiem wam, że pieniądze w tym są niezłe.

Niestety moja ostatnia przygoda z tą robotą okazała się wystarczająco ciekawa aby zostać opisana. Z drugiej strony niestety nie będzie wystarczająco ciekawa dla każdego… chyba, że spędzacie na co dzień osiem godzin w InDesignie.

Wróćmy jednak do jeszcze innego mojego hobby (serio!) – Japonii – język osób z kraju kwitnącej wiśni to kuriozum samo w sobie. Trzy różne alfabety, pisanie od prawej do lewej i do tego całkiem odmienna od naszej interpunkcja, gramatyka i takie tam. Do tego dochodzi furigana – i to o niej głównie będzie. Furi to specjalny rodzaj pomocy w języku Japońskim, są to niewielkie znaki (kana) ułożone obok znaków kanji i służące czytającym informacją o tym jak powinno się przeczytać dany znak. Onegdaj – choć wciąż w wielu miejscach stosowane – furigane wstawiano nad „krzaczkami”, lecz według nowych standardów znajduje się ona pod owymi.

Dobra, skoro mamy podstawy musimy wyobrazić sobie następującą sytuację:
Składamy książkę Japońsko-Polską.

To w gruncie rzeczy nic trudnego. Trzeba nauczyć się kilku nowych rzeczy o interpunkcji, stylizacji i bierzemy się do roboty, ale…

Furigana – no tak. Szybkie zerknięcie do sztandarowego produktu firmy Adobe za ponad 2,5 tysiąca, służącego do obróbki i składu książek w wersji polskiej i… nic. Polski InDesign nie obsługuje furi i już.

Rozwiązanie sprawy numer 1

Robimy nową warstwę tekstową znajdującą się nad warstwą normalną.

To akurat jest wyjątkowo proste – cyk, nowa warstwa, przygotowujemy sobie odpowiedni styl i umieszczamy furiganę w odpowiednim miejscu pod (lub nad) odpowiednimi znakami.

Problem: wystarczy, że wstawimy lub usuniemy jeden znak z tekstu i musimy przesuwać warstwę z furiganą. Jeśli mamy mało tekstów japońskich (na przykład jedno zdaniową wstawkę w całej książce), może to być najprostsze i najtańsze rozwiązanie. Jeśli jednak tekst w 90% składa się z kanjochy, wtedy oops, każda pojedyncza zmiana powoduje, że trzeba przeglądnąć ponownie 300 stron w poszukiwaniu poprzesuwanych warstw.

Rozwiązanie sprawy numer 2

Kupujemy specjalny dodatek do InDesigna.

To nie jest głupie rozwiązanie - World Tools Pro to wydatek tylko 700 kolejnych złotych za jednorazowe rozwiązanie, które w sumie tylko w teorii rozwiązało by problem. W praktyce nie byłem w stanie tego przetestować, gdyż wydatek byłby większy niż zarobek.

Problem: Ymmm… 700 zł i brak pewności czy będzie działać. Jeśli składacie Japońskie książki na co dzień, wtedy bez wahania bierzcie ten dodatek.

Rozwiązanie sprawy numer 3

Kupujemy InDesigna w wersji Japońskiej.

O tak – to rozwiązanie okazuje się być najlepsze. Japoński InDesign (mimo iż identyczny jak pozostałe) posiada wbudowaną obsługę furigany w pełni automatycznie – na tak zwanym tekście ruby. Każdemu znakowi (nie tylko japońskiemu) możemy przypisać jego własną treść pomocniczą. Mało tego, możemy dowolnie stylizować, modyfikować i kontrolować takie opcje jak wyrównanie, czy na przykład bardzo istotne wychodzenie poza przestrzeń znaku rodzica.

Na powyższym obrazku widać jak całe wyrażenie a nie tylko jeden znak, ma przypisaną furiganę, więc istotne jest rozłożenie jej na całej długości.

Problem: jeden wielki. Cały Japoński InDesign jest – co oczywiste – po japońsku! Dun dun duuunnnnn! Nie jest w sumie wielki problem – pracując w tym wypadku na 30 dniowej wersji testowej przekonałem się, iż jest to możliwe. Ale… ma on poważne problemy z obsługą polskich łamań i gramatyki więc w zasadniczej kwestii robi więcej chaosu niż pożytku. Podsumowując, jeśli znacie język japoński, nie kupiliście jeszcze polskiego dezajna i tekstu polskiego będzie tyle co kot Jan napłakał, kupcie od razu wersje CKJ (Chinese Korean Japanese) .

Rozwiązanie sprawy numer 4

Szukamy w Internecie…. I nie znajdujemy nic.

Ooooo tak! Serio. Nie żartuje. Kilka tygodni przeglądania Internetu i jedyne co znalazłem to bardzo biedny skryptowy edytor już istniejącej furigana. Specjaliści od Adobe oczywiście jedyne co mogą powiedzieć to: kup Pan Japońską wersje, lub kup Pan dodatek.

Problem: Ten program, to jeden wielki problem.

Rozwiązanie sprawy numer 5

Skrypt a’la MaXDemage.

Fanfary i odrobina szampana dla tego Pana w okularach. Okazuje się, iż odpowiednio wnikliwa analiza skryptu do edytowania istniejącej furigany oraz długa lektura helpa Adobe pozwoliła mi się domyśleć w jaki sposób działa dodatek Word Tools Pro. Wychodzi na to, iż każdy InDesign (zapewne dla kompatybilności) ma obsługę tekstów ruby. Tyle że, nie ma kontrolek do edycji. Wystarczyło więc parę rzeczy samemu dopisać.

Tym samym stworzyłem dwa skrypty:

- pierwszy skrypt (poniżej) otwiera okno z zapytaniem o tekst (czyli furiganę) a następnie uzupełnia nim zmienną rubyString i tym samym dopisuje go właśnie jako furiganę. Wuala!


if (app.selection.length == 1 && app.selection[0].hasOwnProperty("rubyString"))
{
  furigana = prompt ("Furigana: ", app.selection[0].rubyString);
  if (  furigana != null)
  {
    if (  furigana.length)
    {

        app.selection[0].rubyFlag = true;
        app.selection[0].rubyString =  furigana;

   }
}

- drugi skrypt (poniżej) służy do wystylizowania furigany w dowolny sposób – przypominam, iż domyślnie ustawiona jest ona nad tekstem, bez grupowania i bez wylewania.


if (app.selection.length > 0)
{     
 for (var i =app.selection[0].characters.length - 1; i > -1; i--) {

 app.selection[0].characters[ i ].rubyPosition	=  RubyKentenPosition.BELOW_LEFT; 
 //lub ABOVE_RIGHT       
 
 app.selection[0].characters[ i ].rubyAlignment	=       RubyAlignments.RUBY_FULL_JUSTIFY;  
 //inne
 //RubyAlignments.RUBY_LEFT
 //RubyAlignments.RUBY_CENTER
 //RubyAlignments.RUBY_RIGHT
 //RubyAlignments.RUBY_FULL_JUSTIFY
  
 app.selection[0].characters[ i ].rubyFont	=       "Meiryo UI"; 
 //nazwa fontu
  
 app.selection[0].characters[ i ].rubyFontSize	=       6;        
 //rozmiar
  
 app.selection[0].characters[ i ].rubyParentOverhangAmount = RubyOverhang.RUBY_OVERHANG_NO_LIMIT;          
 // inne NONE i RUBY_OVERHANG_ONE_RUBY
  
 app.selection[0].characters[ i ].rubyType	= RubyTypes.GROUP_RUBY; 
 // zlub PER_CHARACTER_RUBY
 }
}

Dlaczego nie jeden skrypt – cóż, tutaj należy się krótkie wytłumaczenie. Pierwszy ma przypisywać furi do jednego znaku lub niewielkiej ich grupy, więc zaznaczona zostaje niewielka liczba znaków. Drugi natomiast może oddziaływać na ogromne połacia tekstu, więc można szybko wystylizować od kilku do kilkudziesięciu stron naraz – wydajność jest znikoma, ale jak wiadomo, nie o to chodzi.

Trzeba jednak kilka rzeczy sobie wytłumaczyć.
- Po pierwsze, pierwszy skrypt ma pewne problemy z działaniem na wystylizowanym już tekście, rubyString będzie ustawiony poprawnie, ale z nieznanych mi przyczyn i tak nie pojawi się na warstwie. Najlepiej więc dodawać furigane na samym początku a potem dopiero stworzyć style.
- Edycja wyglądu furaginy odbywa się poprzez edycje zawartości skryptu numer dwa (pomocnicze mogą okazać się komentarze).
- Skrypty należy wstawić w miejsce: C:\Users\NAZWA_UZYTKOWNIKA\AppData\Roaming\Adobe\InDesign\Version 8.0\pl_PL\Scripts\Scripts Panel
- Powinno działać od CS4, za inne wersje nie odpowiadam (choć skrypt jest banalny).

Nie zamierzam tłumaczyć jak działają – bo jeszcze się wygłupie i coś niemądrego palne ;p Cieszcie się skryptami.

PS. Jeśli znacie prostsze rozwiązanie lub znaleźliście w ciągu 5 minut w internecie to czego ja nie znalazłem przez kilka tygodni... zresztą, nie ważne.

English - Hey, if you're lookin for a way to edit or style ruby text (furigana) in InDesign, check both JS scripts above and do some google translation on my text (it's polish). Should help you ;) But use it at your own risk!