OSDN Git Service

fc450d059c3e58d5f6e221dc79a4e01182fe7d09
[luatex-ja/luatexja.git] / src / luatexja-core.sty
1 \catcode`\@=11
2 \catcode"FFFFF=14 %"
3
4 \input luaotfload.sty
5 \ifdefined\luatexja@loaded\endinput\fi
6 \def\luatexja@loaded{hoge}
7
8 \newcount\luatexja@tempcnta
9 \newdimen\luatexja@tempdima
10 %\newcount\jcharwidowpenalty
11 \newskip\kanjiskip\kanjiskip=0pt minus.4pt
12 \newskip\xkanjiskip
13 \newdimen\zw
14 \newdimen\zh
15 \newdimen\jQ \jQ=0.25mm
16 \newdimen\jH \jH=0.25mm
17 \newcount\luatexja@autospc
18 \newcount\luatexja@autoxspc
19
20 \directlua{%
21   utf = unicode.utf8
22   ltj = {}
23   function ltj.loadlua(file)
24     local path = assert(kpse.find_file(file, 'tex'),
25       "File '"..file.."' no found")
26     texio.write_nl("("..path..")")
27     dofile(path)
28   end
29  ltj.loadlua('luatexja-rmlgbm.lua') 
30     % This file must be read before luatexja-jfont.lua. For Ryumin-Light and GothicBBB-Medium.
31   ltj.loadlua('luatexja-core.lua')
32   ltj.loadlua('luatexja-jfont.lua')
33   ltj.loadlua('luatexja-core-aux.lua')
34 }
35
36 % Attributes for Japanese typesetting.
37 \newluatexattribute\luatexja@curjfnt   % index for ``current Japanese font''
38 \newluatexattribute\luatexja@charclass % 
39 \newluatexattribute\luatexja@yablshift % attribute for \yabaselineshift
40 \newluatexattribute\luatexja@ykblshift % attribute for \ykbaselineshift
41
42 % for italic correction
43 \newluatexattribute\luatexja@icflag
44 \let\luatexja@ic=\/
45 \protected\def\/{{\luatexja@icflag=1\luatexja@ic}}
46
47 % for hyphenation
48 \newlanguage\luatexja@japanese
49 \directlua{ltj.ja_lang_number=\the\luatexja@japanese}
50
51
52 % \jfont\CS={...:...;jfm=metric;...}
53 \def\jfont{\afterassignment\@jfont\directlua{ltj.jfontdefX(true)}}
54 \def\@jfont{\directlua{ltj.jfontdefY()}}
55
56 % \loadjfontmetric<metric name><filename> : 
57 % load <filename> which contains a font metric for a Japanese font.
58 \def\loadjfontmetric#1#2{% #1: key, #2: file name
59 \directlua{
60   jfm.name='#1'; jfm.char_type={}; jfm.glue={}; jfm.kern={}
61   ltj.loadlua('luatj-#2.lua'); ltj.loadjfontmetric()}
62 }
63
64 % ybaselineshift
65 \let\yabaselineshift=\luatexja@yablshift % 欧文文字
66 \let\ykbaselineshift=\luatexja@ykblshift % 和文文字
67 \luatexja@yablshift=0 \luatexja@ykblshift=0
68
69 % \inhibitxspcode, \xspcode
70 \def\setinhibitxspcode#1#2{\directlua{ltj.set_inhibit_xsp_table(#1,#2)}}
71 \def\getinhibitxspcode#1{\directlua{ltj.get_inhibit_xsp_table(#1)}}
72 \let\setxspcode=\setinhibitxspcode
73 \let\getxspcode=\getinhibitxspcode
74 % \prebreakpenalty, \postbreakpenalty
75 \def\setprebreakpenalty#1#2{\directlua{ltj.set_penalty_table('pre',#1,#2)}}
76 \def\setpostbreakpenalty#1#2{\directlua{ltj.set_penalty_table('post',#1,#2)}}
77 \def\getprebreakpenalty#1{\directlua{ltj.get_penalty_table('pre',#1)}}
78 \def\getpostbreakpenalty#1{\directlua{ltj.get_penalty_table('post',#1)}}
79
80 \def\autospacing{\luatexja@autospc=0 }
81 \def\noautospacing{\luatexja@autospc=1 }
82 \def\autoxspacing{\luatexja@autoxspc=0 }
83 \def\noautoxspacing{\luatexja@autoxspc=1 }
84 \autospacing\autoxspacing
85 % \inhibitglue
86 \def\inhibitglue{\directlua{ltj.create_ihb_node()}}
87
88 \input luatexja-kinsoku.tex
89 \catcode`\@=12
90 \endinput