From: Hironori Kitagawa Date: Thu, 8 May 2014 09:05:33 +0000 (+0900) Subject: Use everysel package for patching \selectfont. X-Git-Tag: 20140621.0~12 X-Git-Url: http://git.osdn.jp/view?a=commitdiff_plain;h=03d183a08354b48ebfd953380c36fa79766642c6;p=luatex-ja%2Fluatexja.git Use everysel package for patching \selectfont. (Backport of commit ad5ab423) --- diff --git a/src/patches/lltjfont.sty b/src/patches/lltjfont.sty index 2933844..17a690e 100644 --- a/src/patches/lltjfont.sty +++ b/src/patches/lltjfont.sty @@ -1,6 +1,6 @@ % % lltjfont.sty: derived from plfonts.dtx in pLaTeX. -% +% \NeedsTeXFormat{LaTeX2e} \ProvidesPackage{lltjfont}[2014/01/23 Patch to NFSS2 for LuaTeX-ja] @@ -203,7 +203,7 @@ \else %\directlua{luatexja.jfont.is_ktenc('\luatexluaescapestring{#2}')}\ifin@% % \usekanji{#2}{#3}{#4}{#5}% - % \let\font\tfont + % \global\let#1\gettfont %\else \useroman{#2}{#3}{#4}{#5}% \global\expandafter\let\expandafter#1\the\font @@ -213,7 +213,7 @@ } \def\DLMfontsw@standard#1#2#3{#1{#2{#3}}} \def\reDeclareMathAlphabet#1#2#3{% - \ifdefined#2 + \ifdefined#2 \@temptokena\expandafter{#2}% \else \@temptokena{#2}% @@ -256,7 +256,11 @@ } \newif\if@knjcmd \def\userelfont{\@knjcmdtrue} -\DeclareRobustCommand\selectfont{% + + +\RequirePackage{everysel} +\@EverySelectfont@Init +\def\ltj@selectfont@patch{% \let\tmp@error@fontshape\error@fontshape \let\error@fontshape\error@kfontshape \directlua{luatexja.jfont.is_kyenc('\luatexluaescapestring{\k@encoding}')}\ifin@% @@ -270,41 +274,40 @@ \@latex@error{KANJI Encoding scheme `\k@encoding' unknown}\@eha %\fi \fi +% \let\k@encoding\cy@encoding \xdef\font@name{\csname\curr@kfontshape/\f@size\endcsname}% \pickup@jfont \font@name + \ltj@@does@alt@set{\curr@kfontshape}% + % alt fonts の定義 + \directlua{luatexja.jfont.output_alt_font_cmd('\luatexluaescapestring{\curr@kfontshape}')}% + % 定義した alt fonts のデータを \ltjdeclarealtfont に渡すのと同等の処理をする + \directlua{luatexja.jfont.pickup_alt_font_a('\f@size')}% + \fi +% \edef\tmp@item{{\k@encoding}}\expandafter\def\expandafter\k@encoding\tmp@item \kenc@update \let\error@fontshape\tmp@error@fontshape +% \if@knjcmd \@knjcmdfalse \expandafter\ifx \csname rel@\k@encoding/\k@family/\k@series/\k@shape\endcsname\relax \expandafter\ifx \csname rel@\k@encoding/\k@family/\k@series/all\endcsname\relax \else - \csname rel@\k@encoding/\k@family/\k@series/all\endcsname + \csname rel@\k@encoding/\k@family/\k@series/all\endcsname\selectfont + % 警告: 再び \selectfont を呼んでいる.無限ループの可能性あり \fi \else - \csname rel@\k@encoding/\k@family/\k@series/\k@shape\endcsname + \csname rel@\k@encoding/\k@family/\k@series/\k@shape\endcsname\selectfont + % 警告: 再び \selectfont を呼んでいる.無限ループの可能性あり \fi \fi - \xdef\font@name{\csname\curr@fontshape/\f@size\endcsname}% - \pickup@font - \font@name - \enc@update - \ifx\f@linespread\baselinestretch \else - \set@fontsize\baselinestretch\f@size\f@baselineskip - \fi - \size@update -% ここからは altfont 用 - \ltj@@does@alt@set{\curr@kfontshape}% - % alt fonts の定義 - \directlua{luatexja.jfont.output_alt_font_cmd('\luatexluaescapestring{\curr@kfontshape}')}% - % 定義した alt fonts のデータを \ltjdeclarealtfont に渡すのと同等の処理をする - \directlua{luatexja.jfont.pickup_alt_font_a('\f@size')}% - \fi } +\EverySelectfont{\ltj@selectfont@patch} +\def\@EverySelectfont@Init{\let\@EverySelectfont@Init\undefined} + \def\KanjiEncodingPair#1#2{\@namedef{t@enc@#1}{#2}\@namedef{y@enc@#2}{#1}} \KanjiEncodingPair{JY3}{JT3} \def\set@fontsize#1#2#3{% @@ -340,14 +343,15 @@ \chs\cwd \cHT\cht \advance\cHT\cdp % \iftdir - % \setbox\adjust@box\hbox{\tbaselineshift\z@ M}% + % \setbox0\hbox{\tate\ltjsetparameter{tjabaselineshift=\z@}あ}% + % \setbox\adjust@box\hbox{\tate\ltjsetparameter{talbaselineshift=\z@}M}% % \adjust@dimen\ht\adjust@box % \advance\adjust@dimen\dp\adjust@box - % \advance\adjust@dimen-\cHT + % \advance\adjust@dimen-\ht0 % \divide\adjust@dimen\tw@ - % \advance\adjust@dimen\cdp + % \advance\adjust@dimen0.5\dp0 % \advance\adjust@dimen-\dp\adjust@box - % \tbaselineshift\adjust@dimen + % \ltjsetparameter{talbaselineshift=\adjust@dimen} % \fi } \DeclareRobustCommand\romanencoding[1]{% @@ -630,7 +634,7 @@ \ifx\ltj@temp\empty\ltj@tempcntb="10FFFF\else\ltj@tempcntb=#2\fi\relax%" \fi \directlua{luatexja.jfont.set_alt_font_latex( - \the\ltj@tempcnta,\the\ltj@tempcntb, + \the\ltj@tempcnta,\the\ltj@tempcntb, '\luatexluaescapestring{\ltj@temp@afont}', '\luatexluaescapestring{\ltj@temp@bfont}')}% }