%
% lltjfont.sty: derived from plfonts.dtx in pLaTeX.
-%
+%
\NeedsTeXFormat{LaTeX2e}
\ProvidesPackage{lltjfont}[2014/01/23 Patch to NFSS2 for LuaTeX-ja]
\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
}
\def\DLMfontsw@standard#1#2#3{#1{#2{#3}}}
\def\reDeclareMathAlphabet#1#2#3{%
- \ifdefined#2
+ \ifdefined#2
\@temptokena\expandafter{#2}%
\else
\@temptokena{#2}%
}
\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@%
\@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{%
\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]{%
\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}')}%
}