OSDN Git Service

Initial Commit.
[luatex-ja/luatexja.git] / src / luatexja-core.sty
1 \input luaotfload.sty
2 \catcode`\@=11
3 \catcode"FFFFF=14 %"
4
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   ltj = {}
22   function ltj.loadlua(file)
23     local path = assert(kpse.find_file(file, 'tex'),
24       "File '"..file.."' no found")
25     texio.write_nl("("..path..")")
26     dofile(path)
27   end
28   ltj.loadlua('luatexja-core.lua')
29   ltj.loadlua('luatexja-core-aux.lua')
30 }
31
32 % Attributes for Japanese typesetting.
33 \newluatexattribute\luatexja@curjfnt   % index for ``current Japanese font''
34 \newluatexattribute\luatexja@yablshift % attribute for \yabaselineshift
35 \newluatexattribute\luatexja@ykblshift % attribute for \ykbaselineshift
36
37 % for italic correction
38 \newluatexattribute\luatexja@icflag
39 \let\luatexja@ic=\/
40 \def\/{{\luatexja@icflag=1\luatexja@ic}}
41
42 % for hyphenation
43 \newlanguage\luatexja@japanese
44 \directlua{ltj.ja_lang_number=\the\luatexja@japanese}
45
46
47 % \jfont<font><metric name> : Regard <font> as a Japanese font.
48 % <font> must be defined by \font primitive already, and <metric> must be a control 
49 % sequence defined by \loadjfontmetric below.
50 \def\jfont{\directlua{ltj.jfontdefA(true)}}
51 \def\@jfont#1{\directlua{ltj.jfontdefB('#1')}}
52
53 % \loadjfontmetric<metric name><filename> : 
54 % load <filename> which contains a font metric for a Japanese font.
55 \def\loadjfontmetric#1#2{% #1: key, #2: file name
56 \directlua{
57   jfm.name='#1'; jfm.char_type={}; jfm.glue={}; jfm.kern={}
58   ltj.loadlua('luatj-#2.lua'); ltj.loadjfontmetric()}
59 }
60
61 % ybaselineshift
62 \let\yabaselineshift=\luatexja@yablshift % 欧文文字
63 \let\ykbaselineshift=\luatexja@ykblshift % 和文文字
64 \luatexja@yablshift=0 \luatexja@ykblshift=0
65
66 % \inhibitxspcode, \xspcode
67 \def\inhibitxspcode#1#2{\directlua{ltj.set_inhibit_xsp_table(#1,#2)}}
68 \let\xspcode=\inhibitxspcode
69 % \prebreakpenalty, \postbreakpenalty
70 \def\prebreakpenalty#1#2{\directlua{ltj.set_penalty_table('pre',#1,#2)}}
71 \def\postbreakpenalty#1#2{\directlua{ltj.set_penalty_table('post',#1,#2)}}
72
73 \def\autospacing{\luatexja@autospc=0 }
74 \def\noautospacing{\luatexja@autospc=1 }
75 \def\autoxspacing{\luatexja@autoxspc=0 }
76 \def\noautoxspacing{\luatexja@autoxspc=1 }
77 \autospacing\autoxspacing
78 % \inhibitglue
79 \def\inhibitglue{\directlua{ltj.create_ihb_node()}}
80
81 \input luatexja-kinsoku.tex
82 \catcode`\@=12
83 \endinput