X-Git-Url: http://git.osdn.jp/view?a=blobdiff_plain;f=src%2Flltjfont.sty;h=70cace2f79a4fa0662be82ede544fcbaaf3bd115;hb=2a89ff80358ba323dd8d07585322e346d320cbbf;hp=203b4a6fec2e91678c1ba956b5b6de0c8d6e5e9f;hpb=5d0096786a1f3d591db04d31048b5e00b95b3ed8;p=luatex-ja%2Fluatexja.git diff --git a/src/lltjfont.sty b/src/lltjfont.sty index 203b4a6..70cace2 100644 --- a/src/lltjfont.sty +++ b/src/lltjfont.sty @@ -12,17 +12,17 @@ \let\k@shape\@empty \def\curr@kfontshape{\k@encoding/\k@family/\k@series/\k@shape} \def\rel@fontshape{\f@encoding/\f@family/\f@series/\f@shape} -\newdimen\Cht -\newdimen\cht -\newdimen\Cdp -\newdimen\cdp -\newdimen\Cwd -\newdimen\cwd -\newdimen\Cvs -\newdimen\cvs -\newdimen\Chs -\newdimen\chs -\newdimen\cHT +\ifdefined\Cht\else\newdimen\Cht\fi +\ifdefined\cht\else\newdimen\cht\fi +\ifdefined\Cdp\else\newdimen\Cdp\fi +\ifdefined\cdp\else\newdimen\cdp\fi +\ifdefined\Cwd\else\newdimen\Cwd\fi +\ifdefined\cwd\else\newdimen\cwd\fi +\ifdefined\Cvs\else\newdimen\Cvs\fi +\ifdefined\cvs\else\newdimen\cvs\fi +\ifdefined\Chs\else\newdimen\Chs\fi +\ifdefined\chs\else\newdimen\chs\fi +\ifdefined\cHT\else\newdimen\cHT\fi %\let\afont\font \def\inlist@#1#2{% \def\in@@##1<#1>##2##3\in@@{% @@ -30,16 +30,9 @@ \in@@#2<#1>\in@\in@@} \def\fam@elt{\noexpand\fam@elt} \def\enc@elt{\noexpand\enc@elt} -\def\fenc@list{\enc@elt\enc@elt\enc@elt\enc@elt% - \enc@elt\enc@elt\enc@elt} \let\kenc@list\@empty \let\kyenc@list\@empty \let\ktenc@list\@empty -\def\kfam@list{\fam@elt\fam@elt} -\def\ffam@list{\fam@elt\fam@elt\fam@elt% - \fam@elt\fam@elt\fam@elt} -\let\notkfam@list\ffam@list -\let\notffam@list\kfam@list \newbox\tstrutbox \newbox\zstrutbox \def\strut{\relax @@ -67,7 +60,6 @@ {\default@shape}}% \expandafter\let\csname#1-cmd\endcsname\@changed@cmd \def\enc@elt{\noexpand\enc@elt}% - \xdef\fenc@list{\fenc@list\enc@elt<#1>}% \else \@font@info{Redeclaring font encoding #1}% \fi @@ -154,14 +146,7 @@ \def\DeclareFontFamily#1#2#3{% \@ifundefined{T@#1}% {\@latex@error{Encoding scheme `#1' unknown}\@eha}% - {\edef\tmp@item{{#2}}% - \expandafter\expandafter\expandafter - \inlist@\expandafter\tmp@item\expandafter{\ffam@list}% - \ifin@ \else - \def\fam@elt{\noexpand\fam@elt}% - \xdef\ffam@list{\ffam@list\fam@elt<#2>}% - \fi - \def\reserved@a{#3}% + {\def\reserved@a{#3}% \global \expandafter\let\csname #1+#2\expandafter\endcsname \ifx \reserved@a\@empty @@ -173,14 +158,7 @@ \def\DeclareKanjiFamily#1#2#3{% \@ifundefined{T@#1}% {\@latex@error{KANJI Encoding scheme `#1' unknown}\@eha}% - {\edef\tmp@item{{#2}}% - \expandafter\expandafter\expandafter - \inlist@\expandafter\tmp@item\expandafter{\kfam@list}% - \ifin@ \else - \def\fam@elt{\noexpand\fam@elt}% - \xdef\kfam@list{\kfam@list\fam@elt<#2>}% - \fi - \def\reserved@a{#3}% + {\def\reserved@a{#3}% \global \expandafter\let\csname #1+#2\expandafter\endcsname \ifx \reserved@a\@empty @@ -483,57 +461,69 @@ \newif\if@tempswz \DeclareRobustCommand\romanfamily[1]{\edef\f@family{#1}} \DeclareRobustCommand\kanjifamily[1]{\edef\k@family{#1}} +% \notkfam@list@: list of non-defined kanji families under +% \kfam@list@: list of kanji families under , defined in a .fd file \DeclareRobustCommand\fontfamily[1]{% - \edef\tmp@item{{#1}}% - \@notkfamfalse - \@notffamfalse - \expandafter\expandafter\expandafter - \inlist@\expandafter\tmp@item\expandafter{\kfam@list}% - \ifin@ \edef\k@family{#1}% - \else - \expandafter\expandafter\expandafter - \inlist@\expandafter\tmp@item\expandafter{\notkfam@list}% - \ifin@ \@notkfamtrue - \else - %% \@tempswzfalse - %% \def\fam@elt{\noexpand\fam@elt}% - %% \message{(I search kanjifont definition file:}% - %% \def\enc@elt<##1>{\message{.}% - %% \edef\reserved@a{\lowercase{\noexpand\IfFileExists{##1#1.fd}}}% - %% \reserved@a{\@tempswztrue}{}\relax}% - %% \kenc@list - %% \message{)}% - %% \if@tempswz - %% \edef\k@family{#1}% - %% \else - \@notkfamtrue - \xdef\notkfam@list{\notkfam@list\fam@elt<#1>}% - %% \fi - \fi\fi - \expandafter\expandafter\expandafter - \inlist@\expandafter\tmp@item\expandafter{\ffam@list}% - \ifin@ \edef\f@family{#1}\else - \expandafter\expandafter\expandafter - \inlist@\expandafter\tmp@item\expandafter{\notffam@list}% - \ifin@ \@notffamtrue \else - \@tempswzfalse - \def\fam@elt{\noexpand\fam@elt}% - \message{(I search font definition file:}% - \def\enc@elt<##1>{\message{.}% - \edef\reserved@a{\lowercase{\noexpand\IfFileExists{##1#1.fd}}}% - \reserved@a{\@tempswztrue}{}\relax}% - \fenc@list - \message{)}% - \if@tempswz - \edef\f@family{#1}% - \else - \@notffamtrue - \xdef\notffam@list{\notffam@list\fam@elt<#1>}% - \fi - \fi\fi + \@notkfamfalse\@notffamfalse\edef\tmp@item{{#1}}% + \ifcsname \k@encoding+#1\endcsname % if \k@encoding+#1 is already defined + \edef\k@family{#1}% + \else % search font definition file... + \ifcsname kfam@list@\k@encoding\endcsname\else + \expandafter\gdef\csname kfam@list@\k@encoding\endcsname{} + \expandafter\gdef\csname notkfam@list@\k@encoding\endcsname{} + \fi + \edef\@templist{\@nameuse{kfam@list@\k@encoding}}% + \expandafter\expandafter\expandafter\inlist@\expandafter\tmp@item\expandafter{\@templist}% + \ifin@\edef\k@family{#1}\else% + \edef\@templist{\@nameuse{notkfam@list@\k@encoding}}% + \expandafter\expandafter\expandafter\inlist@\expandafter\tmp@item\expandafter{\@templist}% + \ifin@\@notkfamtrue\else% + \def\@temp##1+{\lowercase{\def\@@temp{##1}}}\expandafter\@temp\k@encoding+% + \message{(I search kanjifont definition file: \@@temp#1.fd)}% + \IfFileExists{\@@temp#1.fd}{\@tempswztrue}{\@tempswzfalse}% + \if@tempswz + \expandafter\xdef\csname kfam@list@\k@encoding\endcsname + {\@nameuse{kfam@list@\k@encoding}\fam@elt<#1>}\edef\k@family{#1}% + \else + \expandafter\xdef\csname notkfam@list@\k@encoding\endcsname + {\@nameuse{notkfam@list@\k@encoding}\fam@elt<#1>}\@notkfamtrue% + \fi + \fi + \fi + \fi + \ifcsname \f@encoding+#1\endcsname + \edef\f@family{#1}% + \else % search font definition file... + \ifcsname ffam@list@\f@encoding\endcsname\else + \expandafter\gdef\csname ffam@list@\f@encoding\endcsname{} + \expandafter\gdef\csname notffam@list@\f@encoding\endcsname{} + \fi + \edef\@templist{\@nameuse{ffam@list@\f@encoding}}% + \expandafter\expandafter\expandafter\inlist@\expandafter\tmp@item\expandafter{\@templist}% + \ifin@\edef\f@family{#1}\else + \edef\@templist{\@nameuse{notffam@list@\f@encoding}}% + \expandafter\expandafter\expandafter\inlist@\expandafter\tmp@item\expandafter{\@templist}% + \ifin@\@notffamtrue\else + \def\@temp##1+{\lowercase{\def\@@temp{##1}}}\expandafter\@temp\f@encoding+% + \message{(I search font definition file: \@@temp#1.fd)}% + \IfFileExists{\@@temp#1.fd}{\@tempswztrue}{\@tempswzfalse}% + \if@tempswz + \expandafter\xdef\csname ffam@list@\f@encoding\endcsname + {\@nameuse{ffam@list@\f@encoding}\fam@elt<#1>}\edef\f@family{#1}% + \else + \expandafter\xdef\csname notffam@list@\f@encoding\endcsname + {\@nameuse{notffam@list@\f@encoding}\fam@elt<#1>}\@notffamtrue% + \fi + \fi + \fi + \fi \if@notkfam\if@notffam - \edef\k@family{#1}\edef\f@family{#1}% - \fi\fi} + {\ifcsname D@\k@encoding\endcsname\@nameuse{D@\k@encoding}\fi + \xdef\@@temp{\default@family}}\edef\k@family{\@@temp}% + {\ifcsname D@\f@encoding\endcsname\@nameuse{D@\f@encoding}\fi + \xdef\@@temp{\default@family}}\edef\f@family{\@@temp}% + \fi\fi +} \DeclareRobustCommand\romanseries[1]{\edef\f@series{#1}} \DeclareRobustCommand\kanjiseries[1]{\edef\k@series{#1}} \DeclareRobustCommand\fontseries[1]{\kanjiseries{#1}\romanseries{#1}} @@ -630,7 +620,7 @@ \ltj@@al@do@subst@correction \fi } - +\let\@@italiccorr=\/ %%%%%% Japanese font for math mode @@ -654,8 +644,9 @@ \def\getanddefine@fonts#1#2{% \ltj@tempcnta=#1\ltj@@IsFontJapanese{\string#2}% - \ifin@\ltj@@ja@getanddefine@fonts{#1}{#2}% - \else \ltj@@al@getanddefine@fonts{#1}{#2}\fi + \ifin@\let\ltj@temp=\ltj@@ja@getanddefine@fonts% + \else \let\ltj@temp=\ltj@@al@getanddefine@fonts\fi + \ltj@temp{#1}{#2}% } \def\use@mathgroup#1#2{\relax\ifmmode \math@bgroup