LATEX japánul a CJK csomaggal 日本語とCJK LATEX with Japanese and Accented Latin Characers Using the CJK Package Robert Thijs Kozma コズマ ロバート date of Birth: 1988 December 3
1.
To English Speaking Readers
Unfortuntely I only made this manual in Hunagrian, because the purpose was to make the 1st Hunagrian manual telling how to use the CJK package. Werner Lemberg, the creator of the CJK package made an extensive english documentaion (but it’s not so user friendly). My purpose was to write a manual, which people can easily understand, and start using Japanese characters in their TEX documents within a few hours. The idea to make this manual came when my programming teacher, who is a TEX expert, suggested this project. A few years ago there had been a Japanese-Hungarian joint conference, and he would have liked to insert some Japanese characters in his presentaion, but couldn’t quickly figure how to do it due to some compatibility issues between the different character encodings, namely the Japanese and the Eastern European. I investigated these issues, and found that using the CJK package is the easiest way of handling this problem, and wrote this manual based on the references.
Tartalomjegyzék 1. To English Speaking Readers
1
2. Áttekintés más alternatívákról
2
3. CJK Általános tudnivalók 3.1. Bevezetés . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 3.2. Első lépés: A karakter bevitel . . . . . . . . . . . . . . . . . . . . 3.3. A CJK kódoló ejárásról . . . . . . . . . . . . . . . . . . . . . . .
3 3 3 3
4. A CJK környezet használata 4.1. Maga a CJK környezetről . 4.1.1. <encoding> . . . . . 4.1.2.
. . 4.1.3. . . . . . . 4.2. Az SJIS kódolásról . . . . . 4.3. "Szegény ember boldface" . 4.4. Nem CJK karakterek a CJK 4.5. A CJK parancsok . . . . . .
. . . . . . . .
4 4 4 5 5 6 6 7 7
5. A japán fontok és beszerzésük 5.1. A DNP Fonotok . . . . . . . . . . . . . . . . . . . . . . . . . . . 5.2. Japán tipográfiai szabályok . . . . . . . . . . . . . . . . . . . . . 5.3. függőleges írás . . . . . . . . . . . . . . . . . . . . . . . . . . . .
8 8 9 9
. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . környezetben . . . . . . . .
1
. . . . . . . .
. . . . . . . .
. . . . . . . .
. . . . . . . .
. . . . . . . .
. . . . . . . .
. . . . . . . .
. . . . . . . .
. . . . . . . .
. . . . . . . .
. . . . . . . .
. . . . . . . .
6. Ne csak beszéljünk, készítsünk 6.1. Egy példa . . . . . . . . . . . 6.2. Kompilálás Előtt . . . . . . . 6.3. Ha Japán címeket szeretnénk 6.4. newpage, az errorok ellen . . 6.5. Ékezetek okozta nehézségek .
japán . . . . . . . . . . . . . . . . . . . .
dokumentumot . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
. . . . .
. . . . .
. . . . .
. . . . .
. . . . .
9 9 10 10 10 10
7. Emacs Mule + CJK 11 7.1. Telepítés . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 11 7.2. Használata . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 11 8. A Ruby csomag 11 8.1. Mi a Ruby? . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 11 8.2. A Ruby környezet . . . . . . . . . . . . . . . . . . . . . . . . . . 12 9. Konklúzió
2.
12
Áttekintés más alternatívákról
Jelenleg három fő módja van a Japán TEX-elésnek, ezek a következők: 1. pTEX/pLATEX Az ACSII Co., egy japán informatikai és kiadó cég, melyet érdekelte a TEX, a Keio egyetemmel együttműködésben 1987-ben kifejlesztették az "ASCII Nihogo ( 日本語 ) TEX" TEXdisztribuciót. Ezt később bővítették a függőleges typesetting lehetőségekkel, amely így pTEX/pLATEX(publishing TEX- Nihongo TEX- Nihongo jelentése japán) néven terjedt el. Ugyanez a cég fordíotta a Knuth: TEXBook, és Metafont Book, illetve Lamport: A Document Preperation System könyveket is japánra, amelyeket a maguk készített Nihongo TEX-el szedtek. Legfőbb jellegzetességei: (a) a dvi file formátum különbözik az eredeti TEXdvi file formátumáttól. (b) Nihongo TEXnemcsak a TEXFont Metric files-okat tudja használni (tfm), hanem a Japanese font metric files-okat is (jfm). Egy jsm file kb 7000 kanji karaktert tartalmaz, illetve kerning info-kat, melyek teljes JIS fontokat fednek (tehát elkerülik a subfontok használatát). (c) A karakterek függőlegesen is rakhatók (támogatja a függőleges írást) 2. A CJK csomag, melyet most fogok bemutatni, ezt használva könnyen és gyorsan juthatunk eredményhez, 3. Az Omega/Lambda rendszer. A TEX/LATEXbővítéseként jött létre, Yannis Hartalambous és John Plaice fejlesztették. A TEX Knuth által megthatározott kereteit szétfeszítő feladatok megoldására. Ez támogatja az írást minden elképzelhető irányban, tudja a 16 bites karakterkészletet kezelni, és az omega translation process segítségével dinamikusan és rugalmasan kezelhetők a nyelvváltással kapcsolatos nehézségek. Minden valószínűséggel az elkövetkező években a Omega lehetőségeit kihasználó rendszer fejlesztése folytatódni fog, és eljut olyan szintre, hogy japán szöveg szedésére is nehézségek nélkül használhatóvá válik. Miért pont a CJK? Az a cél vezérelt, hogy minél könnyebben és gyorsabban tudjunk japán karaktereket haználni a LATEX dokumentumjainkban, tehát olyan megoldást kerestem, amivel nem kell lecserélni a már feltelepíett TEX ünket, amihez a hozzávalókat gyorsan telepíthetünk vagy már tartalmazza a disztribuciónk, és melyek már kiforrottabbak. Ilyen szempontból a CJK csomagot találtam a legjobbnak, mivel a legúabb MiKTEXés TEXlive-okban egy teljes telepítéssel a legtöbb része felkerül a helyére.
2
3.
CJK Általános tudnivalók
A CJK csomag egy szabadon terjesztett szoftver a GNU public licence-el Jelenleg a legújabb verzió a CJK 4.7.0 (17-Okt-2006) használatához szükség van LATEX2e vesion 2001/06/01 vagy újabb verzió Szerző: Werner Lemberg
3.1.
Bevezetés
A TEXnagyon rugalmas dokumentum szerkesztő, amely eredetileg az angolra lett kifejlesztve. Egyre több multilanguális képességet tesznek bele, de ezek főleg a 8 bites input fontokra vonatkoztak. A CJK (kinai, japan, koreai) nyelvek 256 nal sokkal több karaktert használnak, így az ezeket a nyelveket kezelő kódolások is. Ilyen sok karakter feldolgozát a hagyományos TEXalapból nem tudja kezelni, így ennek a problémának a kezelésére hozták létre a CJK csomagot.
3.2.
Első lépés: A karakter bevitel
Elöször is szükségünk van egy egy editorra, amely kezelni tud midnenféle különböző karakter kódokat. Egy kézenfekvő megoldás erre a Mule Emacs, ez a 20.x vagy újabb Emacsokban már integrálva van, előnye, hogy egyben editor is és meg is csinálja a fontokat (úgy értve hogy nem kell input methd editor), benne meg is jelennek a japán karakterek többnyire rendesen. Sőt más CJK karakterek is! (néhány karakter azonban hiányzik). Hátránya, hogy primitív a hiraganákból kanjiba konvertálás, és gyakori kanjik csak a 30-40. helyen vannak a listán amit a space nyomásával lehet léptetni. Ha már van editor a Microsoft IME (Input Method Editor) ingyen letölthető, windows gépeken ennek a segítségével is történhet, a mi esetünkben japán karakter bevitel. Minden operációs rendszerhez kell, hogy legyen valami hasonló. (Nekem az EmEditor - Emura Editor - japán fejlesztés - is tetszett windows alatt)
3.3.
A CJK kódoló ejárásról
Ázsiai logograph-okat mennyiségük miatt nem lehet egy byte per karakterrel reprezentálni, legalább 2 byte-ra szükségünk van. A leggyakrabban használt kódoló eljárások (UTF8, GB, Big 5, JIS, KS, stb)-nek van az első bytenak egy resze(tartománya/range-e) általában az 0xA1-0x0xFE, vagy ennek egy része) mely jelzi, hogy ez és a következő byte is egy logograph-hoz tartozik. Ez azt jelenti, hogy a sima ASCII (0x00-0xFF) karakterek kódjai változatlanul maradnak, és a többi karakter kód (0x80-0xFF) a CJK kódoláshoz vannak rendelve, és így több byteos kódolást, 1-byte, 2 byte, (3 byte, 4 byte az UTF8-nak) tesznek lehetővé. megjegyzés: A0x7F karakter is le van foglalva a CJK csomagnak. Néhány kódolás, mint pl az EUC-JP úgy férnek hozzá több több charakter sethez, hogy ’escape charaktereket’ használnak (0x8E & 0x8F) mely jelzi, hogy egy másik karakter setből jön a következő karakter (mely fel van ’shiftelve’ egy másik (GR)range-be); igy maximum 4 bite kell egy karakternek. például: 0x8E 0xA3 0xB7 0xCE A 0x8E egy ’single shift escape’ karakter, 0xA3 kiválasztja a CNS táblán 3-at és 0xB7CE a karakter kódja (GR reprezentációban) ebben a táblában. A CJK.sty aktivvá teszi a 0x7F és a 0x81-0xFE karaktereket a CJK környezeten belül, és makrokat rendel az aktiv karakterekhez, amelyek kiválasztják a helyes fontot és karaktereket. /Ez csak egy egyszerűsített modell , valóban kompikáltabb a mechanizmus, hogy a puctuation karaktereket is jól kezelje stb. A LATEX2e inputenc.sty-ból kölcsönöztek részletekért – manual:/marcros, preproceced mode/
3
4.
A CJK környezet használata
4.1.
Maga a CJK környezetről
A CJK.sty használatára két lépésre van szükség: 1. A cjk csomag betöltése \documentclass{article} \usepackage[]{CJK} 2. a cjk környezet létrehozása, 2 féle CJK környezet van: \begin{CJK}[]{<encoding>}{} ... \end{CJK} vagy \begin{CJK*}[]{<encoding>}{} ... \end{CJK*} A CJK* környezet elnyeli a nem védett szóközöket, és az újsor karaktereket egy CJK karakter után, mivel a japán és kínai szabály szerint nincsenek szóközök a szövegben csak speciális esetekben. A CJK környezet viszont nem, mivel például a koreai szövegekben használnak szóközt. Ezek között lehet váltani a következő parancsokkal egy CJK környezeten belül: \CJKspace (CJK*->CJK) \CJKnospace (CJK->CJK*) Megjegyzés: ha használjuk a cjk-ec.el-et emacs-al (késöbb szó lesz róla) nincs szükég még a CKJ környezet nyitására sem! Ezt megteszi helyettünk. A parameterek lehetnek: 4.1.1.
<encoding>
Ezek a japán karakter set-ek és kódolások vannak jelenleg a CJK.enc által támogatva: Van több kínai és koreai is, de JAPÁN SZEMPONTJÁBÓL RELAVANSAK CSAK EZEK: JIS A standart Japan Character set: JIS X 0208:1997. Encoding: EUC. JIS2 ’pót’ Japán karakter készlet Character set: JIS X 0212-1990. Encoding: EUC. SJIS A japánhoz, főleg PC-ken használják, ’MS kanji"’ ként is ismert. Character sets: 1-byte characters from JIS X 0201-1997 (half-width katakana), 2-byte characters from JIS X 0208:1997. Encoding: SJIS. UTF8 Unicode Transformation format 8 Character set: Unicode. Encoding: UTF-8.) Ezek a kódolások SJIS és az UTF-8 kivételével egyszerűsített EUC (Extended Unix Code) karakterek setek singlle shifts’-ek nélkül. Ezek mellé még adott a következő kódolás, amely viszont tartalmaz single shift’-et, és a fenti karakter csoportokból áll elő: 4
EUC-JP Character sets: Half-width katakana (from JIS X 0201-1997), JIS X 0208:1997, JIS X 0212-1992.
Az EUC-JP, es UTF-8 kódolásokat nem lehet használni a ’preprocessalt modban’ mert nincs értelme (pontosabban a UTF-8 ban a 2 bytenál hosszabb UTF8 karaktereket nem lehet használni.) Ennek a paraméternek a használata egyenértékű azzal mintha a \CJKenc parancsot így használnák: \begin{CJK}{JIS}{...} ... ekvivalens ezzel: \begin{CJK}{}{...} \CJKenc{JIS} Megjegyzések: A character set’ egy rendezett gyűjtemenye a glipháknak. A glifák sorrendje csak definició és referencia célokat szolgál. Egy ‘encoding’ egy rendezési séma, amely el ér egy character set’-et. LATEX2e ‘input encoding’ kifejezést is használják ennek a kifejezésére. Egy karakter ’set’- nek sok kódolása lehet: (pl. JIS X 0208 -> EUC, SJIS). Egy kódolas használhat több karakter ’setet’: (pl. EUC -> KS X 1001, GB 2312, stb.). Ha érdekelnek a részletek el lehet olvasni a következőt: cjk.inf (Ken Lunde) ftp://ftp.ora.com/pub/examples/cjkvinfo/doc/cjk.inf 4.1.2.
Jelenleg ezek a fontkódolások vannak definiálva: {} (üres; vagyis az alapértelmezett),dnp’ (JIS és SJIS számára), és ‘wn’ (JIS-hez) A ‘Font encoding’ jelentése a karaktereknek a sorrendje a kódtáblan és a ’subfont’-okban. Tehát kiválaszt egy kódtáblát, melynek elemeihez hozzá vannak rendelve az ’encodingok’. A ’font encoding’ változtatása nem változtatja meg sem egy karakter jelentéset, sem pedig a ’subfontokban’ a karakterek CJK sorrendjét, sem a karakterek kódját. A dnp’ jelentése a karakterek sorrendje a Dai Nippon Printing fontoknak a kódtáblán, ez csak a JIS és SJIS kódoláshoz elérhetó. A ‘wn’ (csak a JIS- hez használható) a font kódolása a watanabe jfontokak. A font encodingot miden encodingban lehet változtatni a \CJKfontenc paranccsal az első paraméter parameter a encoding, a második pedig a font encoding. 4.1.3.
Lehetetlen előre tudni hogy milyen fontok állnak rendelezésre ott ahol te vagy, meg kell nézni a példa FD (font definition) fileokat és megnézni hogy csinálhatsz, vagy modofikálhatsz magadnak megfelelő FD fileokat, hogy neked jó legyen. Ha ezt a paramétert üresen hagyjuk, akkor a CJK.enc- ból az alapértelmezett érték választódik ki. Ez a ’song’. Ha ezt a paramétert használod, ez ugyanolyan mintha a \CJKfamilyparancsot használtad volna így: \begin{CJK}{...}{song} ekvivalens ezzel: \begin{CJK}{...}{} \CJKfamily{song}
5
Lehet a family-ket váltogatni minden kódolásban (és font encoding-ban) a\CJKencfamily paranccsal. Az első paraméter a encoding, a második a family, az opcionalis pedig a font encoding. Ezzel felülírhatjuk a azap ertekeket.
Talán így láthatóbb egy táblázatban:
shape><encoding> JIS dnp SJIS dnp JIS2 dnp
Egy konkrét példa japan JIS kodolasban: \begin{CJK*}[dnp]{JIS}{min} ... \end{CJK*}
4.2.
Az SJIS kódolásról
A Shift-JIS kódolás széles körben használt a japán PC-ken. Egy különlegessége, hogy egyszerre vannak benne 1 és 2 byteos karakterek, hogy visszafelé kompatibilis legyen. A 2 byteos karakter set azonos az SJIS X 0208 karakter settel, még a sorrend is. Így nincs szükség külön SJIS FD (font definition) fileokra, az JIS-é használható. Az 1 byteos karakterek esetén, az un ’half-width katakana’ (C49-es kódolás JIS X 0201-ből). Általában a full-width katakanákat kellene használni, hogy tipografikusan helyes eredményhez jussunk. Ez alól kivétel a ’írógép fontok’ melyeknek csak a half-width-e kellene a normal kanji, katakanaknak (reprezent screeshots etc). A C49 használatát a \CJKhwkatakana és \CJKnohwkatakana makrókkal lehet kezelni. A ‘´, ‘’, and ‘’ karakterek is használva vannak a második byteként ebben a kódolásban. Ez problémákat okoz a TeX nek. Ha ilyen kódolásban írunk fajl-t melynben szrepel más kódolás is és nem használunk Emacs/mule/sjisconv-t akkor érdemes az sjistext környezetet használni, amely megváltoztatja a kategoria kódjait ezeknek a karaktereknek. Ekkor a parancs prefix a per ‘/’, és a grouping karakterek a ‘(’ és ‘)’. Hogy megkapjuk a ‘/’, ‘(’, and ‘)’ karaktereket, írjunk ‘//’, ‘/(’, and ‘/)’ az sjistext környezeten belül. A sjistext használata helyett a problematikus karaktereket mauálisan védhetjük rep karakterek bevitelével is pl: ‘{’, ‘}’, ‘ ’ (de csak olyan editorral ami nem ismeri fel a japán karaktereket). Ez rövid szövegekre egyszerűbb lehet, de ez sajnos a ’page header command’-ekben nem működik. Ne használjunk olyan parancsokat amik külső fajlokba írnak a sjistext környezetből, pl a \chapter stb Ha elkerülhetetle sjis kódolású karakterek használata a környezeten kívűl, akkor a \CJKchar makroval lehet ilyen karaktereket bevinni. \section{Ez egy problematikus karakter: \CJKchar{169}{92}} Az sjistext környezet használat rendkívűl körülményes, de adott egy preprocessalo (sjisconv.c vagy extconv.c(ez mindent tud, kivéve utf8-at meg euc-jp-t), ha ezt magunk kompiláljuk és használjuk segíthet.
4.3.
"Szegény ember boldface"
A szabandon hozzáfehető CJK fontoknak általában nincs meg egy "boldface" megfelelőjük. A boldface-t emulálják azzal, hogy a karaktert háromszor egymas mellé nyomják kis horizontális eltolással. A következő parancsokkal hívhatók: \CJKbold \CJKnormal
6
4.4.
Nem CJK karakterek a CJK környezetben
Ha ékezeteket akarunk a CJK környezeten belül akkor paranccsal kell őket bevinni. Ahhoz hogy sort lehessen törni, egy szóközzel el kell választani a CJK és nem CJK karaktereket. De a TEXben normálisan használt szóköznek a dimeziói (a nem CJK alapján) nem néz ki jól, mivel a CJK karakterek egymás mellett vannak. Extrém estekben (undefull \hbox parancsok)-nál túlságosan a rendezetlenség látszatát keltik a CJK karakterek között. \CJKtilde az aktiv ’~’ karakter - nem törhetetlen szóköz, hanem a következő definició használatos: \def~{\hspace{0.25em plus 0.125em minus 0.08em}} Ez a szóköz egy CJK karakter negyede (shibuaki). nihongo magyar nihongo (bibtex ben ’~’) a ’~’ eredeti definicióját a \nbs (no break space) vel egyszer, vagy a \standarttide parancsal kaphatjuk vissza végleg Emacs-hoz használható a cjkilde.el a utils/lisp be, ez egy minor mode-ot hoz létre (cjk-tilde-mode) mely felcserélné a space keyt a ~key-el
4.5.
A CJK parancsok
• CJK opciók; így állíthatók be: \usepackage[]{CJK} lehetséges opciok: – – – – –
lowercase global local active encapsulated: Ha nem CJK -LATEX2e kodolást akarunk használni a CJK csomagon kivűl (pl latin1’, vagy latin2’), akkor szükség van erre az opcióra! Tehát ha ékezeteket akarunk látni, akkor ezt be kell állítani!
• \begin{CJK}[]{<encoding>}{} ... \end{CJK} Lehetseges értékek az <encoding> hoz (csak japánhoz, kínai koreai is lehet): ‘JIS’, SJIS’,‘UTF8’,‘EUC-TW’, ‘EUC-JP’,‘JIS2’. Lehetséges értékek a nél: ‘’ (üres, vagyis az alapértelmezett), ‘pmC’ (JIS), dnp’ (JIS es SJIS), ‘wn’ (JIS). alapértelmezett a song’, a font definition fileo-kal manuálisan is konfigurálható családok. Ajánlott egy CJK környezet nyitása után új sort kezdeni, mert zavart okozhat hogy egy soron belül egy karaketer hol akiv, hol nem. A CJK környezetek egymásba ágyazhatók, ha nincs beállítva a [global] opciója a CJK csomagnak. De megtörténhet, hogy a TEX-nek a save size’-a túlcsordul. Inkább használjuk a \CJKenc \CJKfontenc \CJKfamily parancsokat. Ha más input kodolásokat akarunk egy sorba akkor kell használni ezeket a parancsokat. • A japán szempontjából releváns parancsok, sok magától érthetődő: A X - vel jelöltek nem csak a CJK környezetben értelmesek: – \CJKchar[<enc>]{}{} A CJK karakterek manuaáis bevitele a a karakterkódjuk alapján, az választott kódolás az ‘enc’, utána az első byte-ot és a második byte-ot kell megadni decimális vagy hexadecimális vagy 8-as számrendszerben, 7 vagy 8 bites reprezentációban. – \CJKenc{<encoding>} Kódolás változtatására. Nem kell utána új sort kezdeni. A l beállított font kódolást használja. Ha a [global] be van állítva globálisan hat. – \CJKfamily{} 7
– \CJKencfamily[]{<encoding>}{} X – \CJKfontenc{<encoding>}{} X – \CJKindent Két japán karakter méretű indentaciót csinál a bekezdések elején a japán szabálynak megfelelően. – \CJKkern Sortörés elkerülésére két CJK karakter között – \CJKglue – \CJKtilde – \nbs – \standardtilde – \CJKspace & \CJKnospace Váltás a CJK es CJK* között – \CJKverbatim – \CJKhwkatakana & \CJKnohwkatakana Engedélyezi a halfwidth katakanakat, vagy lecseréli őket a full width megfelelőire. (csak az SJIS kódolásnál van értelmük) – \Unicode{}{} – \Unicode{}{} – \CJKCJKchar – \CJKlatinchar – \CJKbold & \CJKnormal X – \CJKsymbol – \CJKboldshift X A horizontális eltolás újradefiniálása a bolfface-hez. (az alapértelmezett: 0.015em) –
5.
A japán fontok és beszerzésük
A fontokat innen szerezhetjük be: Host ftp.tex.ac.uk Location: /pub/archive/fonts/CJK FILE -rw-rw-r-1 ctan TeX Host ftp.dante.de Location: /tex-archive/fonts/CJK FILE -rw-rw-r-- 1 Mr.Ftp server
5.1.
742459 Dec
1 00:01 kanji48.tar.gz
742459 Dec
1 00:01 kanji48.tar.gz
A DNP Fonotok
A DNP a "Dai Nippon Printing" rövidítése (egy nagy japán cég). A DNP fontok kereskelmi célokra készültek el a cég által. Ha vannak neked ilyenjeid, akkor használd őket!, ha nincs akkor vannak a watanabe-dnp fontok, melyek a watanabe-jfontokból készültek, hogy emulálják a DNP fontokat, ezek ingyenesek. Innen szerezhetők be: watanabe-dnp (pk files) ftp.math.s.chiba-u.ac.jp://tex/watanabe-dnp/300 jb10-300pk.tar.gz jb10-622pk.tar.gz jm10-329pk.tar.gz jm10-746pk.tar.gz jb10-329pk.tar.gz jb10-746pk.tar.gz jm10-360pk.tar.gz jm8-300pk.tar.gz jb10-360pk.tar.gz jb8-300pk.tar.gz jm10-432pk.tar.gz jm9-300pk.tar.gz jb10-432pk.tar.gz jb9-300pk.tar.gz jm10-518pk.tar.gz jb10-518pk.tar.gz jm10-300pk.tar.gz jm10-622pk.tar.gz tfm files ftp.math.s.chiba-u.ac.jp://tex/watanabe-dnp/tfm-dnp.tar.gz ftp.math.s.chiba-u.ac.jp://tex/watanabe-dnp/tfm.tar.gz tools for symbolic link ftp.math.s.chiba-u.ac.jp://tex/watanabe-dnp/fake.tar.gz így használhatjuk őket: 8
\begin{CJK*}[dnp]{JIS}{song} .... \end{CJK*}
5.2.
Japán tipográfiai szabályok
Először is vannak karakterek amik nem kezdhetnek sort, mint a zárójelek, és néhány hiragana és katakana. Minden karakter belefér egy egységnégyzetbe, és egy szöveg akkor szép ha mint egy négyzethálós füzet celláiba írjuk a betűket, a sorokban a betűk egymáshoz képest nem csúsznak el (egymás fölött és alatt vannak). A sorvégen a szavak bárhogy törhetnek. A bekezdés elején mindig két ’egység négyzet’-nyi indentáció van. Bonyorultabb tipográfiai szabály a japánban, hogy a szóköz mérete függhet az előtte és utána levő karakterektől, ha egy nem CJK karakter találkozik egy CJK-val (például angol szó idézésekor) csak egy karater szélességének negyedét kitevő szóközt használnak ’shibuaki’. Vannak bonyolultabb japán tipografiai szabályok is, de ezek nem oldhatók meg a standard TEX-ben, léteznek megoldások, (Omega, japan TEXadaptaciok pTEX). A shibugakit is csak manuálisan lehet berakni, ~újra van definiálva erre a célra. (erre az \nbs (\nobreakspace) kell. \CJKtilde aktiválja. \def~{\hspace{.25em plus .125em minus .08em} Unicode problematikusabb: Egy féle karakterból kellene többféle változat, különféle esetekre, összesen kb 40%al több, hogy a kínai, és a japán felhasználóknak is megfeleljen, illetve ne legyen tipografiailag hibás. Külön szablyok vonatkoynak a függőleges és horiyontális írásra is.
5.3.
függőleges írás
A függőleges írás emulalasa a karakterek 90 fokos elforgatásával történhet, de ez csúnya, mivel vannak glifák, melyek nem ’egzség kockában’ vannak, illetve a punctuation karakterek esetén.
6.
Ne csak beszéljünk, készítsünk japán dokumentumot
6.1.
Egy példa
A CJK.sty-t így állítsuk be a japánhoz LATEXkompilálással: A japán tipográfia szabály szerint indentálva van minden bekezdés első sora, és nincsenek szóközök. Ha mégis kellene szóköz akkor kell {} stb-t használni. \documentclass[a4paper]{article} \usepackage{CJK} \usepackage{indentfirst} \begin{document} \begin{CJK*}{JIS}{song} こんな夢を見た。 腕組をして枕 元に坐っていると、仰向に寝た女が、静かな声でもう死に ますという。女は長い髪を枕に敷いて、輪廓の柔らかな瓜実顔をその中に横 たえている。 まくら もと
あお むき
りん かく
\end{CJK*} \end{document}
9
うり ざね がお
6.2.
Kompilálás Előtt
Ha LATEX-et használsz akkor Japanese EUC (EUC-JP) kódolással kell menteni a fajlokat (leglábbis a japán karaktereket). (Illetve lehet elvileg SJIS/JIS kódolás is, mivel nagyjából ugyanezeket a fontokat használja.)
6.3.
Ha Japán címeket szeretnénk
A \maketitle-nek és a title, author-okanak egy-egy CJK környezeten belül kell lennie. például: \documentclass[a4paper]{article} .... \usepackage[global]{CJK} \usepackage{indentfirst} \begin{CJK*}{}{} \title{ < japan szoveg > } \author{ < japan szoveg > } \end{CJK*} \begin{document} \begin{CJK*}{}{} \maketitle ..... < japán szöveg > ..... \end{CJK*} \end{document}
6.4.
newpage, az errorok ellen
Ha egy ’undefined CJK command’ hibaüzenetet kapunk, pont a CJK környezetből való kilépés előtt, szükség lehet új oldalra térni, mivel a LATEXnéha a header- eket a környezetből való kilépés utáni részre írja. példa használatra: \documentclass[a4paper]{article} \usepackage{CJK} \usepackage{indentfirst} \begin{document} \begin{CJK*}{JIS}{song} < japán szöveg > \newpage \end{CJK*} \end{document}
6.5.
Ékezetek okozta nehézségek
A CJK környezeteken belül az ékezetes betűket parancsokkal kell bevinni. Ne felejtsük el a [encapsulated] CJK opciót! Különben egy CJK környezet után enputencoding fontencoding fontencoding beállítások felülíródnak, és az ékezetes betűk helyén aposztrofák jelennek meg.
10
7.
Emacs Mule + CJK
A cjk-enc.el – rövid ismertető Az emacs egy powerful editor amely képes mindenféle scrip-eket, többek között a CJK karakterek bevitelére, és megjelenítésére képes. Még akkor is, ha keverve fordulnak elő egy fileban. (az emacs ingyenes és a 20. verzional újabbakban már alapból benne van a mule) A CJK package lehetővé teszi, hogy a LaTex is képes legyen erre (kis megkötésekkel), de ahol a mule belsőleg használ extra biteket a karakterek kódolásának tárolására a CJK csomagnak szüksége van \CJKenc makrokra. Ezért van a cjk-enc.el. Ez a lisp- ben íródott output filter a mule-nak, a muleba bevitt szöveget olyanná alakítja amit a tex megért. A 2 bites kódolásokat, amelyeket a CJK fel tud dolgozni EUC-ba konvertálja (általában) melyeket egy \CJKenc{...} előz meg.
7.1.
Telepítés
Be kell tölteni a Mule-ba: Olyan helyre kell rakni a cjk-enc.el t ahol keresi a emacs (load library"cjk-enc") lázsd emacs manual... Ezzel létrejön egy új output encoding scheme *cjk-coding*. Ez csak arra használható, hgy létrehozzuk a *.cjk file-unkat amit már rögtön megesz a LATEX.
7.2.
Használata
Európai és latin betűs szöveg esetén: csak írd be ahogy megszoktad! ugyanis ezeket automatikusan kezelni fogja, ha van T1 csomag használva. Viszont a helyes hyphenation-hez kell a nyelveket váltogatni, és szükség van a babel csomagra is. CJK nyelvek esetén: Nem kell CJK/CJK* környezetet nyitni, ezt a cjk-enc.el megteszi helyetted a ´ begin ’document paranccsal. A megfelelő cjk space, nospace-eket is beírja (japán kínai esetén nincs/koreai esetén van). Ez nagyon jó, mert így könnyedén lehet akár 15 nyelvű fajlokat is csinálni, mint ilyen soknyelvű használati utasításokkal. A CJK-hez az alapértelmezett font family a ’song’ (koreai pedig a ’mj’). Két már ismert paraccsal változtathatjuk a illetve a -t: \CJKencfamily[]{<encoding>}{} Change family for a certain encoding (and fontencoding) \CJKfontenc{<encoding>}{} Change fontencoding for a certain encoding Ennek akkor van értelme ha a szebb DNP fontokat akarjuk használni az alapértemezett helyett. [dnp]
8. 8.1.
A Ruby csomag Mi a Ruby?
A ’ruby’-k olyan kis felső index-szerű betűk egy japán szövegben, melyek ’jegyzet’ként szerepelnek egy rendes méretű CJK karakter mellett, függőleges írás esetén a sorok jobb oldalán, vizszintes íras esetén pedig a szöveg felett, és mutathatja a kiejtését a mellette szereplő karaktereknek. A ruby név a Brit terminológiában az 5.5 pontos betűméretet jelenti. Ez terjedt el, mivel leggyakrabban ezt a méretet használják a ruby nak. A legtöbb esetben a ruby úgy van beállítva hogy fele akkora legyen mint a rendes betűméret, hogy egy nagy karakter mellett két ruby karakter férjen el. Maximum 5 ruby karaktert lehet egy karakter föle rakni (pld ide vmi jo pld kell), ezért különböző megoldásokra van szükség, például whitespacek elhagyása, vagy annak megoldása, hogy a ruby átmehessen másik karakterek fölé is. Ez a japánban jó is, mivel egy karakterhez szótagok
11
tartoznak, így az olvasó könnyen el tudja dönteni, hogy melyik karakter fölött van melyik. A ruby a japánban különösen gyakori, mivel a japán karaktereknek tobb olvasatuk is lehet(kiejtés), melyeket különböző korokban kína különböző területeiből vettek át. Ezeket a karaktereket a japán különböző már létező japán szavak leírására hasznaltak, és sok conceptet lefedett a japán nyelvben. Ma a Rubyt szinte bármilyen nyomtatott anyagban használják, és mindenféle oktatási segédanyagban is! (Kanjik tanítása stb.), de nem csak Japánban, hanem Kínában és Taiwanban is elterjedt. Japánban a furigana szót használják ruby-ra, mely összetett szó, 2 részből áll, a furu ’hullik’ ige, és a ’gana’ (kana) – furigana katakana hiragana –
8.2.
A Ruby környezet
a ruby környezet: \ruby{also karakter}{felso karakterek} Az első kapcsos zárójelbe az aljat és a kicsibe irandó karaktereket kell rakni. konkrét példa: ふりがな
ふり が
な
振仮名vagy 振仮名 Ezt így kell létre hozni: \documentclass{article} \usepackage{CJK} \usepackage[overlap, CJK]{ruby} \begin{document} \begin{CJK*}{JIS}{song} ...japán szöveg...\ruby{alap karakter(ek)}{ruby}... \end{CJK*} \end{document} Ruby opciok: Azt hogy egy ruby átcsordulhasson más karakterek fölé a \rubyoverlap és a \ruby nooverlap parancsokkal lehet beállítani, az ’overlap’ az alapértelmezett beálitás. ’CJK’ és ’latin’, paracsaik a \rubyCJK és \rubylatin, ezek a \CKJnosapce és \cjkspace megfelelői a ruby környezetben. (tehát engedik vagy nem engedik a szóközöket), az alapértelmezett a CJK, tehát nincsenek szóközök. \rubysize paranccsal lehet megadni az alap karater és a ruby karakter karakterének arányát. Az alapértelmezett méretek a 0.4. Általában hibaüzeneteket ad a méret megváltoztatásnál, de ezeket figyelmen kivűl lehet hagyni (a latex fefinal defaust erreo size-t??), ha a ttf2kp vagy hbf2gf-eket használjuk, mivel ezek a programok bármilyen font méretet kiszámolnak. Ha latin betűkre van szükségünk a rubyban, akkor lehet hogy szükség lesz az FD definició fajlok megváltoztatására, ha a font nem standard méreteket támogat, és pontosan a megadott méretet szeretnénk. \rubysep-el lehet megváltoztatni a távolságot a ruby karakter és az alap karakter között. \lineskiplimit -el lehet megakadályozni hogy összeragadjanak a sorok a ruby miatt, nagyobb betűméreteknél lehet hogy szükségünk van rá. Megjegyzés: a ruby paracsok mind lokálisak.
9.
Konklúzió
A CJK csomag akkor működik a legjobban ha a dokumenteum fő nyelve nem egy CJK nyelvben íródott. Ha például csak japán fájlokat akarnánk írni, akkor
12
érdemes felrakni egy pLATEX-et, és feltételezzük, hogy nincsenek nyelvi nehézségek. Sok opció amelyre szükség lenne a ’publishing’ szintű CJK CJK dokumentumokhoz oldhatók meg a TEXen belüli korlátok miatt (ilyen a shibukaki, tategaki, és sok más). Egy régebben egy másik probléma a lassúság volt, ami szerencsére a mai gépeken már annyira nem tűnik fel. A CJK többnyelvű nyelv proceccalas jövőjeként az omegát emlegetik, de ma még sajnos nem eléggé kiforrott, de a jövőben lehet, hogy érdemes lehet rá áttérni. Források • Werner Lemberg: The CJK package – multilangual support beyond babel • Haruhiko Okamura honlapja: http://oku.edu.mie-u.ac.jp/~okumura/texfaq/japanese/ • Werner Lemberg: CJK dokumentáció • LATEX Kézikönyv Jó japán TEX-elést! LATEXで日本語を書くのは簡単!
13