X-Git-Url: http://git.osdn.jp/view?a=blobdiff_plain;f=src%2Fluatexja-fontspec.sty;h=7e5bfd84f3ccc9bfaade4b7ad943b0def54673c1;hb=2a89ff80358ba323dd8d07585322e346d320cbbf;hp=5b69f7eb8f807fcf52d8ce1772b76899e860d3a8;hpb=4f7b28889e16e4c8203c3fe556f2b8316c570d94;p=luatex-ja%2Fluatexja.git diff --git a/src/luatexja-fontspec.sty b/src/luatexja-fontspec.sty index 5b69f7e..7e5bfd8 100644 --- a/src/luatexja-fontspec.sty +++ b/src/luatexja-fontspec.sty @@ -3,7 +3,79 @@ % \NeedsTeXFormat{LaTeX2e} -\ProvidesPackage{luatexja-fontspec}[2011/09/23 v0.2] +\ProvidesPackage{luatexja-fontspec}[2011/11/16 v0.3] + +\def\UTFencname{EU2}\def\XeTeXpicfile{} +\RequirePackage{xunicode} +%% Patch for xunicode.sty +{\catcode`\"=12 +\gdef\check@hexcom@digits@#1#2#3#4#5@!@#6#7#8{% + \ifx @#4\relax + \UTFacc@warning@{insufficient hex digits #7 for #6-\string#8}% + \else + \ifcat \active\noexpand#8% + \ifx\add@flag\@ne % + \expandafter\def\csname\UTFencname\string#8\endcsname{\ltjalchar"#1#2#3#4\relax}% + \ifx\unDeFiNed@#8% + \ifx\cf@encoding\UTFencname + \DeclareTextCommand{#8}{OT1}{\undefined}% + \else + \DeclareTextCommand{#8}{\cf@encoding}{\undefined}% + \fi + \else {% macro #8 exists already ... + \let\protect\noexpand + \edef\UTF@testi{#8}\def\UTF@testii{#8}% + \ifx\UTF@testi\UTF@testii\aftergroup\UTF@ignore + \else\aftergroup\UTF@doit\fi + }% + \iffalse + % ... but when it isn't robust, make it so + \expandafter\let\csname?-\string#8\endcsname#8\relax + \edef\next@UTF@{{\cf@encoding}% + {\expandafter\noexpand\csname?-\string#8\endcsname}}% + \expandafter\DeclareTextCommand\expandafter + {\expandafter#8\expandafter}\next@UTF@ + \fi + \fi % + \else % \add@flag \z@ + \expandafter\global\expandafter + \let\csname\UTFencname\string#8\endcsname\relax + \fi % end of \add@flag switch + \else % not active catcode --- shouldn't happen + % \typeout{*** did you really mean #8 ? ***}% + \ifx\add@flag\@ne % + \edef\tmp@name{\expandafter\string\csname\UTFencname\endcsname + \expandafter\string\csname#8\endcsname}% + \expandafter\def\csname\tmp@name\endcsname{\ltjalchar"#1#2#3#4\relax}% + \ifx\cf@encoding\UTFencname + \expandafter\DeclareTextCommand\expandafter + {\csname#8\endcsname}{OT1}{\undefined}% + \else + \expandafter\DeclareTextCommand\expandafter + {\csname#8\endcsname}{\cf@encoding}{\undefined}% + \fi + \else % \add@flag \z@ + \expandafter\global\expandafter\let\csname#8\endcsname\relax + \fi % end of \add@flag switch + \fi % end of \ifcat + \fi} +\gdef\check@hex@digits@#1#2#3#4#5@!@#6#7#8#9{% + \ifx @#4\relax + \UTFacc@warning@{insufficient hex digits #7 for #6-\string#8#9}% + \else + \def\UTFchar{\ltjalchar"#1#2#3#4\relax}% + \expandafter\expandafter\expandafter\declare@utf@composite + \expandafter\expandafter\expandafter + {\expandafter\csname#6\endcsname}{\UTFchar}{#8}{#9}\relax + \fi} +%\gdef\add@UTF@accent#1#2#3{#2\ltjalchar"#1\relax} +\gdef\add@UTF@accent#1#2#3{\ifx\relax#2\relax\ltjalchar"#3\else + \ifx\ #2\relax\ltjalchar"#3\else + \expandafter\ifx\UTF@space#2\relax\ltjalchar"#3\else + \ifx~#2\ltjalchar"#3\else#2\ltjalchar"#1\fi\fi\fi\fi\relax} +\gdef\add@UTF@accents#1#2#3{#2\ltjalchar"#1\ltjalchar"#3\relax} +} +%% End of patch for xunicode.sty " \RequirePackage{fontspec} \RequirePackage{luatexja} @@ -18,10 +90,12 @@ it~ cannot~ be~ used~ with~ a~ font~ that~ wasn't~ selected~ by~ luatexja-fontspec. } -\prg_new_conditional:Nnn \ltj_fontspec_if_liiikeys: {TF,F} { +\cs_generate_variant:Nn \prg_new_conditional:Nnn {Nnx} + +\prg_new_conditional:Nnx \ltj_fontspec_if_liiikeys: {TF,F} { \@ifpackagelater {fontspec} {2011/09/13} - { \prg_return_true: } % fontspec >= 2.2 (l3keys) - { \prg_return_false: } % fontspec < 2.2 (xkeyval) + { \exp_not:N \prg_return_true: } % fontspec >= 2.2 (l3keys) + { \exp_not:N \prg_return_false: } % fontspec < 2.2 (xkeyval) } \cs_new:Nn \ltj_fontspec_define_option:nn { @@ -53,22 +127,21 @@ \ltj_fontspec_define_preparse_external:nn {NoEmbed} { \cs_set:Nn \fontspec_namewrap:n {psft:####1} } + %% Omit the warning message + %% "OpenType feature 'Kerning=Off' (-kern) not available ..." + \ltj_fontspec_define_option:nn {Kerning/Off} { + \fontspec_update_fontid:n {-kern} + \fontspec_update_featstr:n {-kern} + } \ltj_fontspec_if_liiikeys:TF { \tl_set:Nn \g_fontspec_encoding_tl {JY3} } { \tl_set:Nn \zf@enc {JY3} } \tl_set:Nx \g_fontspec_default_fontopts_tl - {JFM=ujis,Scale=0.960444,\g_ltj_fontspec_default_fontopts_tl} + {JFM=ujis,Scale=0.962216,Kerning=Off,\g_ltj_fontspec_default_fontopts_tl} \cs_set_eq:NN \DeclareFontFamily \DeclareKanjiFamily \fontspec_select:nn{#1}{#2} - \tl_set:Nn \l_fontspec_lang_tl {dflt} - \tl_set:Nn \l_fontspec_script_tl {latn} - \fontspec_check_ot_feat:nT {+kern} { - \tl_set:Nx \g_fontspec_default_fontopts_tl - {JFM=ujis,Scale=0.960444,Kerning=Off,\g_ltj_fontspec_default_fontopts_tl} - \fontspec_select:nn{#1}{#2} - } \group_end: \ltj_fontspec_if_liiikeys:F { \tl_set_eq:NN \l_fontspec_family_tl \zf@family @@ -134,4 +207,23 @@ \cs_set_eq:NN \addjfontfeature \addjfontfeatures +% We reload xunicode package here. +\ExplSyntaxOff\ReloadXunicode{EU2} \endinput + +%% the following patch is needed to xunicode.sty: +%% +--- /opt/texlive/2011/texmf-dist/tex/xelatex/xunicode/xunicode.sty 2011-09-12 08:31:47.000000000 +0900 ++++ xunicode.sty 2011-11-16 22:06:17.061413113 +0900 +@@ -1475,7 +1475,11 @@ + + \newtoks\tipasavetokens + \newtoks\tipachecktokens ++ ++\fi + \newif\iftipaonetoken ++\expandafter\ifx\csname ReloadXunicode\endcsname\relax ++ + \def\tipalasttoken{!@! do nothing with this !@!} + \def\tipacatchonechar#1{\begingroup + \def\textipa##1{##1}% prevent recursion