OSDN Git Service

luatexja-fontspec.sty: Changed syntax of AltFont, AltFontFeatures and AltFontRange
authorHironori Kitagawa <h_kitagawa2001@yahoo.co.jp>
Thu, 10 Apr 2014 09:00:27 +0000 (18:00 +0900)
committerHironori Kitagawa <h_kitagawa2001@yahoo.co.jp>
Thu, 10 Apr 2014 09:00:27 +0000 (18:00 +0900)
Example:
\jfontspec[
  AltFont={JJSYuMin5goKn-R,DejaVuSans },
  AltFontFeatures={,{Color=0000FF,JFM=prop }},
  AltFontRange={"3000-"30FF,{"21B3,"21B5 }}%"
]{JJSYuMinchoPr6N-R}

TODO: update documents

src/addons/luatexja-fontspec.sty
src/ltjsarticle.cls
src/ltjsbook.cls
src/ltjsclasses.dtx
src/ltjskiyou.cls
src/ltjspf.cls
test/test20a-mfont-fontspec.pdf
test/test20a-mfont-fontspec.tex

index f351ce8..291d90e 100644 (file)
 
 %% Alternate Fonts
 \bool_new:N \l_fontspec_alt_bool
-\tl_clear:N \ltj_fontspec_fontname_alt_tl
-\tl_clear:N \ltj_fontspec_fontfeat_alt_clist
-\tl_clear:N \ltj_fontspec_altrange_clist
+\seq_clear_new:N \ltj_fontspec_fontname_alt_seq
+\seq_clear_new:N \ltj_fontspec_fontfeat_alt_seq
+\seq_clear_new:N \ltj_fontspec_altrange_seq
+\tl_clear_new:N \ltj_fontspec_fontname_alt_tl
+\tl_clear_new:N \ltj_fontspec_fontfeat_alt_tl
+\tl_clear_new:N \ltj_fontspec_altrange_tl
 
 \cs_new:Nn \__ltj_fontspec_altfontrange_key_code:n
  {
+  \fontspec_update_fontid:n {altfrange:#1}
   \bool_if:NF \l_fontspec_firsttime_bool
    {
-    \tl_set:Nn \ltj_fontspec_altrange_clist {#1}
+    \seq_set_split:Nnn \ltj_fontspec_altrange_seq , {#1}
    }
  }
 \cs_new:Nn \__ltj_fontspec_altfontfeature_key_code:n
   \fontspec_update_fontid:n {altfeat:#1}
   \bool_if:NF \l_fontspec_firsttime_bool
    {
-     \tl_if_empty:nTF {#1}
-      { \bool_set_false:N \ltj_fontspec_alt_bool }
-      { \bool_set_true:N \ltj_fontspec_alt_bool  }
-     \tl_set:Nn \ltj_fontspec_fontfeat_alt_clist {, #1}
+     \seq_set_split:Nnn \ltj_fontspec_fontfeat_alt_seq ,  {#1}
    }
  }
+
+
+\cs_new:Nn \__ltj_fontspec_altfont_map:n {
+  \fontspec_complete_fontname:Nn \l_tmpb_tl {#1}
+  \seq_put_right:No \l_tmpa_seq \l_tmpb_tl 
+}
+
 \cs_new:Nn \__ltj_fontspec_altfont_key_code:n
  {
   \tl_if_empty:nF {#1}
    {
-    \fontspec_complete_fontname:Nn \ltj_fontspec_fontname_alt_tl {#1}
-    \fontspec_update_fontid:n {alt:#1}
+     \seq_set_split:Nnn \ltj_fontspec_fontname_alt_seq , {#1}
+     \seq_clear:N \l_tmpa_seq
+     \seq_map_function:NN \ltj_fontspec_fontname_alt_seq \__ltj_fontspec_altfont_map:n
+     \seq_set_eq:NN \ltj_fontspec_fontname_alt_seq \l_tmpa_seq
+     \fontspec_update_fontid:n {alt:#1}
    }
  }
 
     \fontspec_declare_shape:nnn {#2}{#3}
      { \quark_if_no_value:NF \l__fontspec_fontopts_clist {\l__fontspec_fontopts_clist,} #4 }
     \cs_set_eq:NN \DeclareFontShape \ltj_fontspec_orig_DeclareFontShape
-    \tl_if_empty:NTF \ltj_fontspec_fontname_alt_tl
-     {
-      \bool_if:NT \ltj_fontspec_alt_bool
-       {
-         \fontspec_declare_shape:nnn {#2} { #3 _alt }
-          {
-            \quark_if_no_value:NF \l__fontspec_fontopts_clist {\l__fontspec_fontopts_clist,}
-            #4 , \ltj_fontspec_fontfeat_alt_clist
+    %%
+    \bool_if:NF {
+        \int_compare_p:nNn { \seq_count:N \ltj_fontspec_fontfeat_alt_seq } 
+         < { \seq_count:N \ltj_fontspec_altrange_seq }
+         ||
+        \int_compare_p:nNn { \seq_count:N \ltj_fontspec_fontname_alt_seq } 
+         < { \seq_count:N \ltj_fontspec_altrange_seq }
+    } {
+      \int_zero:N \l_tmpa_int
+      \bool_until_do:nn { \seq_if_empty_p:N \ltj_fontspec_altrange_seq  } {
+        \seq_pop:NN \ltj_fontspec_altrange_seq \ltj_fontspec_altrange_tl
+        \seq_pop:NN \ltj_fontspec_fontfeat_alt_seq \ltj_fontspec_fontfeat_alt_tl
+        \seq_pop:NN \ltj_fontspec_fontname_alt_seq \ltj_fontspec_fontname_alt_tl
+        \group_begin:
+          \__fontspec_load_fontname:n { 
+           \quark_if_no_value:NTF \ltj_fontspec_fontname_alt_tl 
+            { #1 } {
+               \tl_if_empty:NTF \ltj_fontspec_fontname_alt_tl 
+               {#1} \ltj_fontspec_fontname_alt_tl
+            }
           }
-          \DeclareAlternateKanjiFont {JY3}{ \l_fontspec_family_tl }{#2}{#3}%
-            {JY3}{ \l_fontspec_family_tl }{#2}{ #3 _alt }{ \ltj_fontspec_altrange_clist }
-       }
-     }
-     {
-       \__fontspec_load_fontname:n {\ltj_fontspec_fontname_alt_tl}
-       \fontspec_declare_shape:nnn {#2} { #3 _alt }
-        {
-          \quark_if_no_value:NF \l__fontspec_fontopts_clist {\l__fontspec_fontopts_clist,}
-          #4 , \ltj_fontspec_fontfeat_alt_clist
-        }
-        \DeclareAlternateKanjiFont {JY3}{ \l_fontspec_family_tl }{#2}{#3}%
-          {JY3}{ \l_fontspec_family_tl }{#2}{ #3 _alt }{ \ltj_fontspec_altrange_clist }
-     }
+          \fontspec_declare_shape:nnn {#2}{#3 _ alt \int_use:N \l_tmpa_int } { 
+            \quark_if_no_value:NF \l__fontspec_fontopts_clist {\l__fontspec_fontopts_clist,} 
+            #4 , 
+            \quark_if_no_value:NF \ltj_fontspec_fontfeat_alt_tl \ltj_fontspec_fontfeat_alt_tl
+          }
+          \DeclareAlternateKanjiFont 
+            {JY3}{ \l_fontspec_family_tl }{#2}{#3}%
+            {JY3}{ \l_fontspec_family_tl }{#2}{ #3 _alt\int_use:N \l_tmpa_int }
+            { \ltj_fontspec_altrange_tl }
+        \group_end:
+        \int_incr:N \l_tmpa_int
+      }
+    }
   \group_end:
  }
 
 \fi
    \fi}
 
-
 \endinput
index 52e48c3..62ddad7 100644 (file)
@@ -38,7 +38,7 @@
 %%   Right brace   \}     Tilde         \~}
 \NeedsTeXFormat{LaTeX2e}
 \ProvidesClass{ltjsarticle}
-  [2014/02/07 ]
+  [2014/03/28 ]
 \RequirePackage{luatexja}
 \newif\if@restonecol
 \newif\if@titlepage
index 2cbdc98..813909f 100644 (file)
@@ -38,7 +38,7 @@
 %%   Right brace   \}     Tilde         \~}
 \NeedsTeXFormat{LaTeX2e}
 \ProvidesClass{ltjsbook}
-  [2014/02/07 ]
+  [2014/03/28 ]
 \RequirePackage{luatexja}
 \newif\if@restonecol
 \newif\if@titlepage
index b436bed..80b488c 100644 (file)
@@ -22,7 +22,7 @@
 %  -----------------------------------------
 %
 % \fi
-% \CheckSum{5199}
+% \CheckSum{5202}
 %% \CharacterTable
 %%  {Upper-case    \A\B\C\D\E\F\G\H\I\J\K\L\M\N\O\P\Q\R\S\T\U\V\W\X\Y\Z
 %%   Lower-case    \a\b\c\d\e\f\g\h\i\j\k\l\m\n\o\p\q\r\s\t\u\v\w\x\y\z
@@ -50,7 +50,7 @@
 %<*driver>
 \ProvidesFile{ltjsclasses.dtx}
 %</driver>
-  [2014/02/07 ]
+  [2014/03/28 ]
 %<*driver>
 \documentclass{ltjsarticle}
 \usepackage{doc}
index 4aa492f..145d94b 100644 (file)
@@ -38,7 +38,7 @@
 %%   Right brace   \}     Tilde         \~}
 \NeedsTeXFormat{LaTeX2e}
 \ProvidesClass{ltjskiyou}
-  [2014/02/07 ]
+  [2014/03/28 ]
 \RequirePackage{luatexja}
 \newif\if@restonecol
 \newif\if@titlepage
index a13ca73..b56a234 100644 (file)
@@ -38,7 +38,7 @@
 %%   Right brace   \}     Tilde         \~}
 \NeedsTeXFormat{LaTeX2e}
 \ProvidesClass{ltjspf}
-  [2014/02/07 ]
+  [2014/03/28 ]
 \RequirePackage{luatexja}
 \newif\if@restonecol
 \newif\if@titlepage
index 37ca514..e0eea19 100644 (file)
Binary files a/test/test20a-mfont-fontspec.pdf and b/test/test20a-mfont-fontspec.pdf differ
index ecd0e3a..0c3b392 100644 (file)
@@ -1,19 +1,35 @@
-%#!luajitlatex
+%#!lualatex test20a-mfont-fontspec.tex
 \documentclass{ltjsarticle}
 \usepackage{luatexja-fontspec,luatexja-otf}
-\setmainjfont[
-  AltFontFeatures={ Color=00003F, CharacterWidth=Half },
-  BoldFont = { KozMinPr6N-Bold.otf }, 
-  BoldFeatures = { AltFont={ KozGoPr6N-Bold.otf } }, 
-  AltFontRange = { "3000-"30FF }, 
-]{KozMinPr6N-Regular.otf}
 
-\setsansjfont{KozGoPr6N-Regular.otf}
+\newjfontfamily\fuga[
+  AltFontFeatures = { { Color=7F0000, CharacterWidth=Half } },
+%   AltFontFeatures = { Color=7F0000, CharacterWidth=Half }, ではいけない
+  AltFontRange = { "3000-"30FF } , 
+  AltFont = JJSYuGothicPr6N-M 
+]{JJSYuMinchoPr6N-R}
+
+\newjfontfamily\hoge[
+  AltFontFeatures = { { Color=00007F, CharacterWidth=Half }, { Color=7F0000 } },
+  AltFontRange = { { "3000-"307F }, { "3080-"30FF } }, 
+  AltFont = { ,  JJSYuGothicPr6N-M},
+  BoldFont = { JJSYuGothicPr6N-M }, 
+  BoldFeatures = { AltFont={ ,  } }, 
+]{JJSYuMinchoPr6N-R}
+
+\newjfontfamily\piyo[
+% カタカナ は JJSYuGothicPr6N-M
+% ひらがな は JJSYuMinchoPr6N-R #00007F, 半角
+  AltFontFeatures = { { Color=00007F, CharacterWidth=Half } },
+  AltFontRange = { { "3000-"309F }, { "3080-"30FF } }, 
+  AltFont = { ,  JJSYuGothicPr6N-M},
+]{JJSYuMinchoPr6N-R}
+
+\setsansjfont{KozGoPr6N-Medium}
 
 \long\def\test{%
   あいうえお医学アイウエオ医学
-  \textbf{あいうえお医学アイウエオ医学}
-  \textgt{あいうえお医学アイウエオ医学}\par
+  \textbf{あいうえお医学アイウエオ医学}\par
 %
   日本国民は、正当に選挙された国会における代表者を通じて行動し、
   われらとわれらの子孫のために、諸国民との協和による成果と、
 }
 \begin{document}
 
-\test
+\fuga\test
+
+\medskip
+\hoge\test
+
+\medskip\piyo\test
 
 \paragraph{addfontfeatures}\ \par
 \addjfontfeatures{
-  AltFontFeatures={ Color=0000FF }, AltFontRange= { "3040-"304F },
-  Color=001F00, CJKShape=Traditional
-}
+  AltFontFeatures={Color=0000FF}, 
+  AltFontRange={"3040-"304F,"3080-"30FF},
+% { {"3040-"304F}, {"3080-"30FF} } の意味になるので,
+% 3040-304F: 青,
+% 3080-30FF: ゴチ(addjfontfeatures 前でそのような指定があるため)
+  Color=001F00,CJKShape=Traditional
 % AltFontFeature, AltFontRange は累積しない
+}
 \test
 
+\typeout{5号かな}
+\jfontspec[
+  AltFont={JJSYuMin5goKn-R,DejaVuSans },
+  AltFontFeatures={,{Color=0000FF,JFM=prop }},
+  AltFontRange={"3000-"30FF,{"21B3,"21B5 }}%"
+]{JJSYuMinchoPr6N-R}
+
+日本国民は、正当に選挙された国会における代表者を通じて行動し、
+(\ltjjachar"21B3)
+(\ltjjachar"21B4)
+(\ltjjachar"21B5)
 \end{document}
\ No newline at end of file