OSDN Git Service

Added \newjfontface, \defaultjfontfeatures, \addjfontfeatures to luatexja-fontspec.sty
[luatex-ja/luatexja.git] / src / luatexja-fontspec.sty
1 %
2 % luatexja-fontspec.sty
3 %
4
5 \NeedsTeXFormat{LaTeX2e}
6 \ProvidesPackage{luatexja-fontspec}[2011/08/17 v0.1]
7
8 \RequirePackage{luatexja,fontspec}
9
10 \ExplSyntaxOn
11
12 \cs_new:Npn \ltj_fontspec_warning:n   { \msg_warning:nn   {ltj_fontspec} }
13
14 \msg_new:nnn {ltj_fontspec} {addjfontfeatures-ignored}
15 {
16   \string\addjfontfeature (s)~ ignored;\\
17   it~ cannot~ be~ used~ with~ a~ font~ that~ wasn't~ selected~ by~ luatexja-fontspec.
18 }
19
20 \define@key[zf]{options}{JFM}{
21   \fontspec_update_fontid:n  {+jfm=#1}
22   \fontspec_update_featstr:n {jfm=#1}
23 }
24
25 \cs_new:Nn \ltj_fontspec_select:nn {
26   \group_begin:
27   \tl_set:Nn \zf@enc {JY3}
28   \tl_set:Nn \g_fontspec_default_fontopts_tl \g_ltj_fontspec_default_fontopts_tl
29   \cs_set_eq:NN \DeclareFontFamily \DeclareKanjiFamily
30   \fontspec_select:nn{JFM=ujis,Scale=0.960444,#1}{#2}
31   \group_end:
32 }
33
34 \cs_new:Nn \ltj_fontspec_set_family:Nnn {
35   \ltj_fontspec_select:nn{#2}{#3}
36   \tl_set_eq:NN #1 \zf@family
37 }
38
39 \DeclareDocumentCommand \jfontspec { O{} m } {
40   \ltj_fontspec_set_family:Nnn \k@family {#1}{#2}
41   \selectfont
42   \ignorespaces
43 }
44
45 \DeclareDocumentCommand \setmainjfont { O{} m } {
46   \ltj_fontspec_set_family:Nnn \mcdefault {#1}{#2}
47   \normalfont
48 }
49
50 \DeclareDocumentCommand \setsansjfont { O{} m } {
51   \ltj_fontspec_set_family:Nnn \gtdefault {#1}{#2}
52   \normalfont
53 }
54
55 \DeclareDocumentCommand \newjfontfamily { m O{} m } {
56   \ltj_fontspec_select:nn{#2}{#3}
57   \use:x {
58     \exp_not:N \DeclareRobustCommand \exp_not:N #1 {
59       \exp_not:N \kanjifamily {\zf@family} \exp_not:N \selectfont
60     }
61   }
62 }
63
64 \DeclareDocumentCommand \newjfontface { m O{} m } {
65   \newjfontfamily #1 [ BoldFont={},ItalicFont={},SmallCapsFont={},#2 ] {#3}
66 }
67
68 \DeclareDocumentCommand \defaultjfontfeatures {m} {
69   \tl_set:Nn \g_ltj_fontspec_default_fontopts_tl {#1,}
70 }
71
72 \tl_clear:N \g_ltj_fontspec_default_fontopts_tl
73
74 \DeclareDocumentCommand \addjfontfeatures {m} {
75   \ifcsname zf@family@fontdef\k@family\endcsname
76     \group_begin:
77       \tl_clear:N \g_ltj_fontspec_default_fontopts_tl
78       \use:x {
79         \exp_not:N\ltj_fontspec_select:nn
80           {\csname zf@family@options\k@family\endcsname,#1}
81           {\csname zf@family@fontname\k@family\endcsname}
82       }
83     \group_end:
84     \fontfamily\zf@family\selectfont
85   \else
86     \ltj_fontspec_warning:n {addjfontfeatures-ignored}
87   \fi
88   \ignorespaces
89 }
90
91 \cs_set_eq:NN \addjfontfeature \addjfontfeatures
92
93 \endinput