OSDN Git Service

luatexja-preset: more l3keys2e
authorHironori Kitagawa <h_kitagawa2001@yahoo.co.jp>
Fri, 1 Jan 2016 12:28:30 +0000 (21:28 +0900)
committerHironori Kitagawa <h_kitagawa2001@yahoo.co.jp>
Fri, 1 Jan 2016 12:28:30 +0000 (21:28 +0900)
src/addons/luatexja-preset.sty

index c06ed7c..4714d95 100644 (file)
 \cs_new:Nn \ltjpreset_declare_option:nn {
   \keys_define:nn { luatexja-preset }{
     #1 .code:n = #2,
-    #1. value_forbidden:n = true
+    #1 .value_forbidden:n = true
+  }
+}
+\cs_new:Nn \ltjpreset_declare_bool_option:nn {
+  \bool_new:c { l_ltjpreset_#1_bool }
+  \bool_set_false:c { l_ltjpreset_#1_bool }
+  \keys_define:nn { luatexja-preset }{
+    #1 .bool_set:c =  { l_ltjpreset_#1_bool },
+    #2 .bool_set_inverse:c =  { l_ltjpreset_#1_bool },
+    #1 .default:n =  true,
+    #2 .default:n =  true,
   }
 }
 
-\bool_new:N \l_ltjpreset_nfssonly_bool % nfssonly
-\bool_set_false:N \l_ltjpreset_nfssonly_bool
-\ltjpreset_declare_option:nn{nfssonly}  {\bool_set_true:N \l_ltjpreset_nfssonly_bool}
-\ltjpreset_declare_option:nn{fontspec}  {\bool_set_false:N \l_ltjpreset_nfssonly_bool}
-
-\bool_new:N \l_ltjpreset_bold_bool % bold
-\bool_set_false:N \l_ltjpreset_bold_bool
-\ltjpreset_declare_option:nn{bold}  {\bool_set_true:N \l_ltjpreset_bold_bool}
-\ltjpreset_declare_option:nn{nobold}{\bool_set_false:N \l_ltjpreset_bold_bool}
-
-\bool_new:N \l_ltjpreset_expert_bool % expert
-\bool_set_false:N \l_ltjpreset_expert_bool
-\ltjpreset_declare_option:nn{expert}  {\bool_set_true:N \l_ltjpreset_expert_bool}
-\ltjpreset_declare_option:nn{noexpert}{\bool_set_false:N \l_ltjpreset_expert_bool}
-
-\int_new:N \l_ltjpreset_deluxe_int % deluxe
-\int_set:Nn \l_ltjpreset_deluxe_int { 0 }
-\ltjpreset_declare_option:nn{deluxe}{\int_set:Nn \l_ltjpreset_deluxe_int { 2 }}   % 6 fonts
-\ltjpreset_declare_option:nn{nodeluxe}{\int_set:Nn \l_ltjpreset_deluxe_int { 0 }} % 2 fonts
+%%%%%%%% bool options
+\ltjpreset_declare_bool_option:nn { nfssonly }{ fontspec }
+\ltjpreset_declare_bool_option:nn { bold }{ nobold }
+\ltjpreset_declare_bool_option:nn { expert }{ noexpert }
+\ltjpreset_declare_bool_option:nn { deluxe }{ nodeluxe }
 
 % JFM
 \cs_set:Npn \ltjpreset_use_jfm: {ujis}  % 使用する JFM
 
 %%%%%%%% プリセット達
 
+% カスタム指定
+ \keys_define:nn { luatexja-preset }{
+    custom .code:n = \ltjpreset_set_multi:n { #1 },
+    custom .value_required:n = true
+}
+
 % 小塚 (Adobe)
 %% Pro
 \ltjpreset_declare_option:nn{kozuka-pro}{
 \DeclareKanjiFamily{JY3}{ltjpm}{}\DeclareKanjiFamily{JT3}{ltjpm}{}
 \DeclareKanjiFamily{JY3}{ltjpg}{}\DeclareKanjiFamily{JT3}{ltjpg}{}
 
-\int_compare:nTF { \l_ltjpreset_deluxe_int ==  2 } {
+\bool_if:NTF \l_ltjpreset_deluxe_bool {
   \bool_if:NT \l_ltjpreset_bold_bool {
     \cs_set_eq:NN \ltjpreset_font_mc_bx: \ltjpreset_font_gt_bx:
   }
   \DeclareRobustCommand\rubyfamily { \kanjishape{rb}\selectfont }
 }
 
-\int_compare:nTF { \l_ltjpreset_deluxe_int ==  2 } {
+\bool_if:NTF \l_ltjpreset_deluxe_bool {
   \DeclareKanjiFamily{JY3}{ltjpmg}{}\DeclareKanjiFamily{JT3}{ltjpmg}{}
   \ltj_preset_define_family:nnn {ltjpmg} {m}  {\ltjpreset_font_mg:} 
   \ltj_preset_define_family:nnn {ltjpg}  {eb} {\ltjpreset_font_gt_eb:}
 }
 
 % (丸)ゴシック体の設定: bold option もここで
-\int_compare:nTF { \l_ltjpreset_deluxe_int ==  2 } {
+\bool_if:NTF \l_ltjpreset_deluxe_bool {
 %% mg
  \newjfontfamily \mgfamily [
       BoldFont = \ltjpreset_font_mg:,