-Copyright (c) 2011--2013 The LuaTeX-ja project, All rights reserved.
+Copyright (c) 2011--2014 The LuaTeX-ja project, All rights reserved.
Redistribution and use in source and binary forms, with or without
modification, are permitted provided that the following conditions are met:
THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND
ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED
WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE
-DISCLAIMED. IN NO EVENT SHALL THE LUATEX-JA PROJECT OR CONTRIBUTORS BE LIABLE
+DISCLAIMED. IN NO EVENT SHALL THE LUATEX-JA PROJECT OR CONTRIBUTORS BE LIABLE
FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES
(INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES;
LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND
\expandafter\endinput\fi\relax
%%------------------
+
%! Main part of luatexja-adjust
\RequireLuaTeXjaSubmodule{adjust}
\ifltj@japaram@adjust\ltjenableadjust\else\ltjdisableadjust\fi
}
-\ifltj@in@latex
- \RequirePackage{expl3}
- \ExplSyntaxOn
- \cs_new:Nn \ltj_adjust_inittable: {
- % To be filled...
- }
- \cs_new:Nn \ltj_adjust_appendtable:n {
- % To be filled
- }
- \clist_new:N \l_ltj_adjust_priority
- \define@key[ltj]{japaram}{adjustpriority}{% COMMA LIST
- \clist_set:Nx \l_ltj_adjust_priority {#1}
- \ltj_adjust_inittable:
- \clist_map_function:NN \l_ltj_adjust_priority \ltj_adjust_appendtable:n
- }
- \ExplSyntaxOff
-\fi
%%------------------ all done
\ltj@adjust@AtEnd
module('luatexja.jfmglue', package.seeall)
local err, warn, info, log = luatexbase .errwarinf(_NAME)
+luatexja.load_module('base'); local ltjb = luatexja.base
luatexja.load_module('stack'); local ltjs = luatexja.stack
luatexja.load_module('jfont'); local ltjf = luatexja.jfont
local pairs = pairs
end
-- 文字クラスの決定
-local function slow_find_char_class(c, m, oc)
- local xc = c or oc
- local cls = ltjf_find_char_class(oc, m)
- if xc ~= oc and cls==0 then cls = ltjf_find_char_class(-xc, m) end
- return cls, xc
+local slow_find_char_class
+do
+ slow_find_char_class = function (c, m, oc)
+ local cls = ltjf_find_char_class(oc, m)
+ if not c and cls==0 then
+ return ltjf_find_char_class(-c, m), oc
+ else
+ return cls, oc
+ end
+ end
end
local zero_glue = node_new(id_glue)
%% Right brace \} Tilde \~}
\NeedsTeXFormat{LaTeX2e}
\ProvidesClass{ltjsarticle}
- [2014/03/28 ]
+ [2014/05/14 ]
\RequirePackage{luatexja}
\newif\if@restonecol
\newif\if@titlepage
\parindent=1\zw
\fi
\fi
- \ltjsetparameter{kanjiskip={0\zw plus .1\zw minus .01\zw}}
- \if@slide \ltjsetparameter{xkanjiskip={0.1em}} \else
- \ltjsetparameter{xkanjiskip={0.25em plus 0.15em minus 0.06em}}
+ \ltj@setpar@global
+ \ltjsetkanjiskip{0pt plus .1\zw minus .01\zw}
+ \if@slide
+ \ltjsetxkanjiskip{0.1em}
+ \else
+ \ltjsetxkanjiskip{0.25em plus 0.15em minus 0.06em}
\fi}
\emergencystretch 3\zw
\newif\ifnarrowbaselines
\renewcommand\kanjifamilydefault{\gtdefault}
\renewcommand\familydefault{\sfdefault}
\raggedright
- \ltjsetparameter{xkanjiskip={0.1em}}\relax
+ \ltj@setpar@global
+ \ltjsetxkanjiskip{0.1em}\relax
\fi
\endinput
%%
%% Right brace \} Tilde \~}
\NeedsTeXFormat{LaTeX2e}
\ProvidesClass{ltjsbook}
- [2014/03/28 ]
+ [2014/05/14 ]
\RequirePackage{luatexja}
\newif\if@restonecol
\newif\if@titlepage
\parindent=1\zw
\fi
\fi
- \ltjsetparameter{kanjiskip={0\zw plus .1\zw minus .01\zw}}
- \if@slide \ltjsetparameter{xkanjiskip={0.1em}} \else
- \ltjsetparameter{xkanjiskip={0.25em plus 0.15em minus 0.06em}}
+ \ltj@setpar@global
+ \ltjsetkanjiskip{0pt plus .1\zw minus .01\zw}
+ \if@slide
+ \ltjsetxkanjiskip{0.1em}
+ \else
+ \ltjsetxkanjiskip{0.25em plus 0.15em minus 0.06em}
\fi}
\emergencystretch 3\zw
\newif\ifnarrowbaselines
\renewcommand\kanjifamilydefault{\gtdefault}
\renewcommand\familydefault{\sfdefault}
\raggedright
- \ltjsetparameter{xkanjiskip={0.1em}}\relax
+ \ltj@setpar@global
+ \ltjsetxkanjiskip{0.1em}\relax
\fi
\endinput
%%
% -----------------------------------------
%
% \fi
-% \CheckSum{5202}
+% \CheckSum{5203}
%% \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
%<*driver>
\ProvidesFile{ltjsclasses.dtx}
%</driver>
- [2014/03/28 ]
+ [2014/05/14 ]
%<*driver>
\documentclass{ltjsarticle}
\usepackage{doc}
%
% [2008-02-18] |english| オプションで |\parindent| を 1em にしました。
%
+% [2014-05-14 LTJ] |\ltjsetparameter|の実行は時間がかかるので,
+% |\ltjsetkanjiskip| と |\ltjsetxkanjiskip|(両者とも,
+% 実行前には |\ltj@setpar@global| の実行が必要)にしました.
+%
% \begin{macrocode}
\def\@setfontsize#1#2#3{%
% \@nomath#1%
\parindent=1\zw
\fi
\fi
- \ltjsetparameter{kanjiskip={0\zw plus .1\zw minus .01\zw}}
- \if@slide \ltjsetparameter{xkanjiskip={0.1em}} \else
- \ltjsetparameter{xkanjiskip={0.25em plus 0.15em minus 0.06em}}
+ \ltj@setpar@global
+ \ltjsetkanjiskip{0pt plus .1\zw minus .01\zw}
+ \if@slide
+ \ltjsetxkanjiskip{0.1em}
+ \else
+ \ltjsetxkanjiskip{0.25em plus 0.15em minus 0.06em}
\fi}
% \end{macrocode}
% \end{macro}
\renewcommand\kanjifamilydefault{\gtdefault}
\renewcommand\familydefault{\sfdefault}
\raggedright
- \ltjsetparameter{xkanjiskip={0.1em}}\relax
+ \ltj@setpar@global
+ \ltjsetxkanjiskip{0.1em}\relax
\fi
% \end{macrocode}
%
%% Right brace \} Tilde \~}
\NeedsTeXFormat{LaTeX2e}
\ProvidesClass{ltjskiyou}
- [2014/03/28 ]
+ [2014/05/14 ]
\RequirePackage{luatexja}
\newif\if@restonecol
\newif\if@titlepage
\parindent=1\zw
\fi
\fi
- \ltjsetparameter{kanjiskip={0\zw plus .1\zw minus .01\zw}}
- \if@slide \ltjsetparameter{xkanjiskip={0.1em}} \else
- \ltjsetparameter{xkanjiskip={0.25em plus 0.15em minus 0.06em}}
+ \ltj@setpar@global
+ \ltjsetkanjiskip{0pt plus .1\zw minus .01\zw}
+ \if@slide
+ \ltjsetxkanjiskip{0.1em}
+ \else
+ \ltjsetxkanjiskip{0.25em plus 0.15em minus 0.06em}
\fi}
\emergencystretch 3\zw
\newif\ifnarrowbaselines
\renewcommand\kanjifamilydefault{\gtdefault}
\renewcommand\familydefault{\sfdefault}
\raggedright
- \ltjsetparameter{xkanjiskip={0.1em}}\relax
+ \ltj@setpar@global
+ \ltjsetxkanjiskip{0.1em}\relax
\fi
\endinput
%%
%% Right brace \} Tilde \~}
\NeedsTeXFormat{LaTeX2e}
\ProvidesClass{ltjspf}
- [2014/03/28 ]
+ [2014/05/14 ]
\RequirePackage{luatexja}
\newif\if@restonecol
\newif\if@titlepage
\parindent=1\zw
\fi
\fi
- \ltjsetparameter{kanjiskip={0\zw plus .1\zw minus .01\zw}}
- \if@slide \ltjsetparameter{xkanjiskip={0.1em}} \else
- \ltjsetparameter{xkanjiskip={0.25em plus 0.15em minus 0.06em}}
+ \ltj@setpar@global
+ \ltjsetkanjiskip{0pt plus .1\zw minus .01\zw}
+ \if@slide
+ \ltjsetxkanjiskip{0.1em}
+ \else
+ \ltjsetxkanjiskip{0.25em plus 0.15em minus 0.06em}
\fi}
\emergencystretch 3\zw
\newif\ifnarrowbaselines
\renewcommand\kanjifamilydefault{\gtdefault}
\renewcommand\familydefault{\sfdefault}
\raggedright
- \ltjsetparameter{xkanjiskip={0.1em}}\relax
+ \ltj@setpar@global
+ \ltjsetxkanjiskip{0.1em}\relax
\fi
\endinput
%%
\fi}
% [x]]kanjiskip = <dimen>
-\define@key[ltj]{japaram}{kanjiskip}{% % SKIP
+\define@key[ltj]{japaram}{kanjiskip}{\ltjsetkanjiskip{#1}}
+\define@key[ltj]{japaram}{xkanjiskip}{\ltjsetxkanjiskip{#1}}
+\protected\def\ltjsetkanjiskip#1{% % SKIP
\directlua{%
local d = \ltj@safe@glue{#1}
luatexja.stack.set_stack_skip(luatexja.stack_table_index.KSK, d); node.free(d)
-}}
-\define@key[ltj]{japaram}{xkanjiskip}{% % SKIP
+}\ignorespaces}
+\protected\def\ltjsetxkanjiskip#1{% % SKIP
\directlua{%
local d = \ltj@safe@glue{#1}
luatexja.stack.set_stack_skip(luatexja.stack_table_index.XSK, d); node.free(d)
-}}
+}\ignorespaces}
+
% jcharwidowpenalty = <count>
\define@key[ltj]{japaram}{jcharwidowpenalty}{% %COUNT
\else\directlua{luatexja.isglobal=''}\fi
}
\protected\def\ltjsetparameter#1{%
- \ltj@setpar@global\setkeys[ltj]{japaram}{#1}\ignorespaces}
+ \ltj@setpar@global\setkeys[ltj]{japaram}{#1}%
+ \ignorespaces}
\protected\def\ltjglobalsetparameter#1{%
\relax\ifnum\globaldefs<0\directlua{luatexja.isglobal=''}%
\else\directlua{luatexja.isglobal='global'}\fi%
- \setkeys[ltj]{japaram}{#1}\ignorespaces}
+ \setkeys[ltj]{japaram}{#1}%
+ \ignorespaces}
%%%%%%%% \ltjgetparameter
\def\ltj@@decl@array@param#1{%
{\ltj@@getparam@one{#1}}%
}
\def\ltj@@getparam@one#1{%
- \directlua{luatexja.ext_get_parameter_unary('#1')}}%
+ \directlua{luatexja.ext_get_parameter_unary('#1')}%
+}%
\def\ltj@@getparam@two#1#2{%
\directlua{luatexja.ext_get_parameter_binary('#1', \ltj@safe@num@or{nil}{#2})}%
}
{\ltj@@getjfontnumber#1%
\directlua{luatexja.jfont.clear_alt_font(\the\ltj@tempcntc)}}\ignorespaces}
-
%%------------------ Load module for the format
\ifltj@in@latex %<*LaTeX>
%
% 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}
+\let\ltj@@EverySelectfont@Init=\@EverySelectfont@Init
+\expandafter\expandafter\expandafter\let
+\expandafter\expandafter\csname ltj@@orig@selectfont\endcsname\csname selectfont\space\endcsname
+\@EverySelectfont@Init
+\def\@EverySelectfont@Init{%
+ \expandafter\let\csname selectfont\space \endcsname \ltj@@orig@selectfont
+ \ltj@@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{%
\newbox\adjust@box
\newdimen\adjust@dimen
\def\adjustbaseline{%
- \setbox\adjust@box\hbox{\ltjsetparameter{yjabaselineshift=\z@}あ}%
+ \setbox\adjust@box\hbox{\ltj@ykblshift=0あ}%
\cht\ht\adjust@box
\cdp\dp\adjust@box
\cwd\wd\adjust@box
\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}')}%
}