From 68df63effba2e77fb0218b91a6722821355885cd Mon Sep 17 00:00:00 2001 From: Norbert Preining Date: Sun, 9 Aug 2020 03:02:03 +0000 Subject: CTAN sync 202008090302 --- macros/luatex/generic/luatexja/README | 21 +- .../luatex/generic/luatexja/doc/lltjp-geometry.pdf | Bin 164277 -> 166499 bytes .../luatex/generic/luatexja/doc/lltjp-geometry.tex | 20 +- macros/luatex/generic/luatexja/doc/ltjclasses.pdf | Bin 400100 -> 400552 bytes macros/luatex/generic/luatexja/doc/ltjsclasses.pdf | Bin 455647 -> 457743 bytes macros/luatex/generic/luatexja/doc/luatexja-en.pdf | Bin 687538 -> 687159 bytes macros/luatex/generic/luatexja/doc/luatexja-ja.pdf | Bin 1104209 -> 1105103 bytes macros/luatex/generic/luatexja/doc/luatexja.dtx | 58 ++- macros/luatex/generic/luatexja/src/lltjext.sty | 4 +- macros/luatex/generic/luatexja/src/ltj-base.sty | 15 +- .../luatex/generic/luatexja/src/ltj-direction.lua | 24 +- macros/luatex/generic/luatexja/src/ltj-kinsoku.tex | 468 +++++++++++++++++++++ .../generic/luatexja/src/ltj-kinsoku_make.tex | 456 -------------------- macros/luatex/generic/luatexja/src/ltj-latex.sty | 77 ++-- macros/luatex/generic/luatexja/src/ltj-plain.sty | 12 +- macros/luatex/generic/luatexja/src/ltjclasses.dtx | 13 +- .../generic/luatexja/src/luatexja-compat.sty | 22 +- .../luatex/generic/luatexja/src/luatexja-core.sty | 26 +- macros/luatex/generic/luatexja/src/luatexja.lua | 22 +- macros/luatex/generic/luatexja/src/luatexja.sty | 4 +- .../generic/luatexja/src/patches/lltjdefs.sty | 15 +- .../luatexja/src/patches/lltjp-atbegshi.sty | 62 +-- .../luatexja/src/patches/lltjp-geometry.sty | 52 ++- 23 files changed, 715 insertions(+), 656 deletions(-) create mode 100644 macros/luatex/generic/luatexja/src/ltj-kinsoku.tex delete mode 100644 macros/luatex/generic/luatexja/src/ltj-kinsoku_make.tex (limited to 'macros/luatex/generic/luatexja') diff --git a/macros/luatex/generic/luatexja/README b/macros/luatex/generic/luatexja/README index 9998677f89..41528dbd95 100644 --- a/macros/luatex/generic/luatexja/README +++ b/macros/luatex/generic/luatexja/README @@ -1,4 +1,4 @@ -The LuaTeX-ja Package 20200802.0 +The LuaTeX-ja Package 20200808.0 -------------------------------- Copyright (c) 2011--2020 The LuaTeX-ja project License: modified BSD (see COPYING) @@ -45,9 +45,9 @@ Installation 2. If you must/want to install manually: a. Download the source archive from CTAN, - or tagged as 20200802.0 in the Git repository by + or tagged as 20200808.0 in the Git repository by + ;a=snapshot;h=refs/tags/20200808.0;sf=tgz> b. Extract the archive and process following three files by LuaLaTeX to generate classes for Japanese typesetting: @@ -55,16 +55,13 @@ Installation src/ltjltxdoc.ins src/ltjsclasses.ins - c. Process src/ltj-kinsoku_make.tex by (plain) LuaTeX to generate ltj-kinsoku.lua, - which stores default "kinsoku" parameters. - - d. Put src/ into your TEXMF tree. + c. Put src/ into your TEXMF tree. An example location is TEXMF/tex/luatex/luatexja. If you are updating from old version, you MUST remove it before extracting the new version of LuaTeX-ja. - e. You may need to update the filename database, by mktexlsr (or by another program). + d. You may need to update the filename database, by mktexlsr (or by another program). Basic Usage @@ -93,6 +90,10 @@ Notes No .{dtx,ins} pair generates .sty files of LuaTeX-ja package. -* src/*.{ins.dtx} and src/ltj-kinsoku_make.tex are not needed in regular use. +* src/*.{ins.dtx} are not needed in regular use. + +* ltj-kinsoku_make.tex is removed in version 20200808.0. + This file and ltj-kinsoku.lua are not used anymore. + (Do not remove ltj-kinsoku.tex.) -Last commit date: Sun Aug 2 19:53:42 2020 +0900 +Last commit date: Sat Aug 8 18:25:40 2020 +0900 diff --git a/macros/luatex/generic/luatexja/doc/lltjp-geometry.pdf b/macros/luatex/generic/luatexja/doc/lltjp-geometry.pdf index 92ac414f9f..20c4edb88f 100644 Binary files a/macros/luatex/generic/luatexja/doc/lltjp-geometry.pdf and b/macros/luatex/generic/luatexja/doc/lltjp-geometry.pdf differ diff --git a/macros/luatex/generic/luatexja/doc/lltjp-geometry.tex b/macros/luatex/generic/luatexja/doc/lltjp-geometry.tex index 1b2aa5ed59..28be8dad3c 100644 --- a/macros/luatex/generic/luatexja/doc/lltjp-geometry.tex +++ b/macros/luatex/generic/luatexja/doc/lltjp-geometry.tex @@ -1,6 +1,6 @@ %#! lualatex -\documentclass[a4paper,10pt]{ltjsarticle} -\usepackage[textwidth=45\zw, lines=45, footskip=2\zh, verbose]{geometry} +\documentclass[a4paper,10ptj]{ltjsarticle} +\usepackage[textwidth=42\zw, lines=42, footskip=2\zh, verbose]{geometry} \usepackage{listings,amsmath,booktabs,lltjext,bxghost} \usepackage{unicode-math} \setmathfont{Latin Modern Math} @@ -48,10 +48,10 @@ \section{利用方法} \Pkg{lltjp-geometry}パッケージは,\LuaTeX-jaに標準で含まれている. 本パッケージの動作には\href{http://www.ctan.org/pkg/ifluatex}{\Pkg{ifluatex}}, -\href{http://www.ctan.org/pkg/filehook}{\Pkg{filehook}}パッケージが必要である. +\href{https://www.ctan.org/pkg/etoolbox}{\Pkg{etoolbox}}パッケージが必要である. +また,\LaTeXe~2020\nobreakdash-02\nobreakdash-02以前では\href{http://www.ctan.org/pkg/filehook}{\Pkg{filehook}}パッケージも必要である. -\LuaTeX-jaでは,\Pkg{geometry}パッケージ読み込み時に -自動的に\Pkg{lltjp-geometry}パッケージが読み込まれる. +\LuaTeX-jaでは,自動的に\Pkg{lltjp-geometry}パッケージが読み込まれる. 縦組クラスか否かの自動判定(\ref{ssec:auto}節)を上書きしたい場合は, \begin{lstlisting} % \PassOptionsToPackage{force}{lltjp-geometry} % 強制的に有効 @@ -60,7 +60,7 @@ \usepackage[...]{geometry} \end{lstlisting} のように\emph{\Pkg{luatexja}の読み込み前}に\cs{PassOptionsToPackage}で -本パッケージに渡すオプションを指定する(\cs{usepackage\{lltjp-geometry\}}\>は使えない). +本パッケージに渡すオプションを指定する(\cs{usepackage\{lltjp-geometry\}}\>を行っても意味がない). \pTeX 系列では,\Pkg{tarticle}, \Pkg{tbook}, \Pkg{treport}といった \emph{縦組クラスを使う場合}に, @@ -68,7 +68,7 @@ \usepackage[...]{lltjp-geometry} \usepackage[...]{geometry} \end{lstlisting} -と,\Pkg{geometry}パッケージの前に読み込む. +と,\Pkg{geometry}パッケージの\emph{前}に読み込む. \subsection{縦組クラスか否かの判定} \label{ssec:auto} @@ -76,10 +76,12 @@ \Pkg{geometry}パッケージ読み込み直後にパッチを当てる: \begin{enumerate} \item \Pkg{geometry}パッケージを読み込む際に,現在の組方向が縦組になっている. - \item \cs{AtBeginDocument}により指定される,\cs{begin\{document\}}\>時に実行される内容に - \cs{tate}(というトークン)が含まれている. + \item \cs{AtBeginDocument}により + \footnote{\LaTeXe~2020-10-01以降ではそれと同義な\>\cs{AddToHook\{begindocument\}}\>も含む.}指定される, + \cs{begin\{document\}}\>時に実行される内容に\cs{tate}(というトークン)が含まれている. \item 本パッケージを読み込む際に\texttt{force}オプションが指定されている. \end{enumerate} + \LuaTeX-jaで縦組クラスを利用する場合は主に1.の, \pTeX 系列で縦組クラスを利用する場合は主に2.の状況となる \footnote{% diff --git a/macros/luatex/generic/luatexja/doc/ltjclasses.pdf b/macros/luatex/generic/luatexja/doc/ltjclasses.pdf index 46209980cc..4184764810 100644 Binary files a/macros/luatex/generic/luatexja/doc/ltjclasses.pdf and b/macros/luatex/generic/luatexja/doc/ltjclasses.pdf differ diff --git a/macros/luatex/generic/luatexja/doc/ltjsclasses.pdf b/macros/luatex/generic/luatexja/doc/ltjsclasses.pdf index e7b415f52b..b9edb1d562 100644 Binary files a/macros/luatex/generic/luatexja/doc/ltjsclasses.pdf and b/macros/luatex/generic/luatexja/doc/ltjsclasses.pdf differ diff --git a/macros/luatex/generic/luatexja/doc/luatexja-en.pdf b/macros/luatex/generic/luatexja/doc/luatexja-en.pdf index dbe97a5116..ba86234554 100644 Binary files a/macros/luatex/generic/luatexja/doc/luatexja-en.pdf and b/macros/luatex/generic/luatexja/doc/luatexja-en.pdf differ diff --git a/macros/luatex/generic/luatexja/doc/luatexja-ja.pdf b/macros/luatex/generic/luatexja/doc/luatexja-ja.pdf index 72227e28e7..6936022302 100644 Binary files a/macros/luatex/generic/luatexja/doc/luatexja-ja.pdf and b/macros/luatex/generic/luatexja/doc/luatexja-ja.pdf differ diff --git a/macros/luatex/generic/luatexja/doc/luatexja.dtx b/macros/luatex/generic/luatexja/doc/luatexja.dtx index 18ca18cdae..3467498552 100644 --- a/macros/luatex/generic/luatexja/doc/luatexja.dtx +++ b/macros/luatex/generic/luatexja/doc/luatexja.dtx @@ -651,15 +651,16 @@ and \emph{Japanese fonts} for fonts used in \textbf{JAchar}. \item \Pkg{adobemapping} (Adobe cmap and pdfmapping files) \item \LaTeX\ 2020-02-02 patch level 5 or later % (if you want to use \LuaTeX-ja with \LaTeXe) -% (\LaTeX 下で\LuaTeX-jaを使う場合) +% (\LaTeXe 下で\LuaTeX-jaを使う場合) \item \href{https://github.com/josephwright/etoolbox/}{\Pkg{etoolbox}}, \Pkg{everysel} % (if you want to use \LuaTeX-ja with \LaTeXe) -% (\LaTeX 下で\LuaTeX-jaを使う場合) -\item \Pkg{ltxcmds}, \Pkg{pdftexcmds}, \Pkg{filehook}, \Pkg{atbegshi} +% (\LaTeXe 下で\LuaTeX-jaを使う場合) +\item \Pkg{ltxcmds}, \Pkg{pdftexcmds} +\item \Pkg{filehook}, \Pkg{atbegshi} +% (not needed if you want to use \LuaTeX-ja with \LaTeXe~2020-10-01 or later) +% (\LaTeXe 2020-10-01以降で\LuaTeX-jaを使う場合はどちらも不要) \item \href{https://github.com/wspr/fontspec/}{\Pkg{fontspec}} v2.7c (or later) -%%% %\item \emph{IPAex fonts} (\url{http://ipafont.ipa.go.jp/}) -%%% %\item \emph{IPAexフォント(\url{http://ipafont.ipa.go.jp/})} %<*en> \item \emph{Harano Aji fonts} (\url{https://github.com/trueroad/HaranoAjiFonts})\\ More specifically, HaranoAjiMincho-Regular~and~HaranoAjiGothic-Medium. @@ -678,9 +679,10 @@ the following distributions: \begin{itemize} \item \href{https://www.tug.org/texlive/}{\TeX~Live} (in \texttt{texmf-dist/tex/luatex/luatexja}) \item \href{http://w32tex.org/}{W32\TeX}\ (in \texttt{luatexja.tar.xz}) - \item MiK\TeX\ (in \texttt{luatexja.tar.lzma}); see the next subsection + \item MiK\TeX\ (in \texttt{luatexja.tar.xz}) \end{itemize} -Harano Aji fonts are available in \TeX~Live and MiK\TeX. +Harano Aji fonts are also available in these distributions +(\texttt{haranoaji} in \TeX~Live and MiK\TeX, and \texttt{luatexja.tar.xz} in W32\TeX). % %<*ja> 現在,\LuaTeX-jaはCTAN (\texttt{macros/luatex/generic/luatexja})に収録されている他, @@ -690,7 +692,8 @@ Harano Aji fonts are available in \TeX~Live and MiK\TeX. \item \TeX~Live (\texttt{texmf-dist/tex/luatex/luatexja}) \item W32\TeX\ (\texttt{luatexja.tar.xz}) \end{itemize} -\TeX~Live, MiK\TeX は原ノ味フォントも収録している. +これらのディストリビューションは原ノ味フォントも収録している +(\TeX~Live, MiK\TeX では\texttt{haranoaji},W32\TeX では\texttt{luatexja.tar.xz}). % %<*en> @@ -766,13 +769,10 @@ But only the contents in \texttt{src/} are needed to work \LuaTeX-ja. %<*en> \item If you downloaded this package from CTAN, you have to run following commands - to generate classes - and \texttt{ltj-kinsoku.lua} (the file which stores default ``\textit{kinsoku}'' parameters): + to generate classes: % %<*ja> -\item もしCTANから本パッケージを取得したのであれば,日本語用クラスファイルや -標準の禁則処理用パラメータを -格納した \texttt{ltj-kinsoku.lua} を生成するために, +\item もしCTANから本パッケージを取得したのであれば,日本語用クラスファイルを生成するために, 以下を実行する必要がある: % \begin{lstlisting} @@ -780,19 +780,7 @@ $ cd src $ lualatex ltjclasses.ins $ lualatex ltjsclasses.ins $ lualatex ltjltxdoc.ins -$ luatex ltj-kinsoku_make.tex \end{lstlisting} -%<*en> -\emph{Do not forget processing \texttt{ltj-kinsoku\_make.tex}}. -\texttt{*.\{dtx,ins\}} and \texttt{ltj-kinsoku\_make.tex} used here are not needed in regular use. -% -%<*ja> -\emph{最後の \texttt{ltj-kinsoku\_make.tex} の実行を忘れないように注意}. -ここで使用した \texttt{*.\{dtx,ins\}} と \texttt{ltj-kinsoku\_make.tex} は -通常の使用にあたっては必要ない. -% - - %<*en> \item Copy all the contents of \texttt{src/} into one of your \texttt{TEXMF} tree. @@ -1149,7 +1137,7 @@ By default, the following fonts are used for these two families. フォントを変更する命令)の前で実行することにより使うことができる. \pLaTeX では標準の欧文フォントはOT1エンコーディングのComputer Modern Roman (\texttt{cmr})% - であったが,2017年以降の\LuaLaTeX ではTUエンコーディングのlatin Modern Roman (\texttt{lmr})% + であったが,2017年以降の\LuaLaTeX ではTUエンコーディングのLatin Modern Roman (\texttt{lmr})% に変更されている.そのため,前段落で述べた「従属欧文」も,Latin Modern Romanに設定している. % @@ -1694,7 +1682,8 @@ as an external package \Pkg{luatexja-otf}. % \begin{LTXexample}[width=0.4\textwidth] -森\UTF{9DD7}外と内田百\UTF{9592}とが\UTF{9AD9}島屋に\\ +森\UTF{9DD7}外と\CID{13966}田百\UTF{9592}とが +\UTF{9AD9}島屋に\\ \CID{7652}飾区の\CID{13706}野家, \CID{1481}城市,葛西駅,\\ 高崎と\CID{8705}\UTF{FA11},濱と\ajMayuHama\\ @@ -1827,7 +1816,7 @@ determined from the following data: %\item Blocks in Unicode~12.0.0. %\item Unicode~12.0のブロック. %\item The \texttt{Adobe-Japan1-UCS2} mapping between a CID Adobe-Japan1- and Unicode. -%\item Adobe-Japan1-7のCIDとUnicodeの間の対応表\texttt{Adobe-Japan1-UCS2}7. +%\item Adobe-Japan1-7のCIDとUnicodeの間の対応表\texttt{Adobe-Japan1-UCS2}. %\item The \Pkg{PXbase} bundle for \upTeX\ by Takayuki Yato. %\item 八登崇之氏による\upTeX 用の\Pkg{PXbase}バンドル. \end{itemize} @@ -2019,12 +2008,12 @@ these eight ranges belongs to the character range~217. で構成されている.したがって,ブロックのリストを示す 代わりに,範囲の定義そのものを示す. % -\begin{lstlisting} +\begin{lstlisting}[escapechar=\!] \ltjdefcharrange{4}{% "500-"10FF, "1200-"1DFF, "2440-"245F, "27C0-"28FF, "2A00-"2AFF, "2C00-"2E7F, "4DC0-"4DFF, "A4D0-"A95F, "A980-"ABFF, "E000-"F8FF, "FB00-"FE0F, "FE20-"FE2F, "FE70-"FEFF, "10000-"1AFFF, "1B170-"1F0FF, - "1F300-"1FFFF, ... (characters in "2000-"206F which are not in range 9) + "1F300-"1FFFF, ... !\rmfamily (and characters in \texttt{U+2000}--\texttt{U+206F} which are not in range 9)! } % non-Japanese \end{lstlisting} %\item[Range~5${}^{\text{A}}$] Surrogates and Supplementary Private Use Areas. @@ -11104,6 +11093,15 @@ Adobe-CNS1-*<j-cid-auto-adobe-cns1.\{lua.gz,luc\}&UniCNS-UTF32-*&Adobe-CNS1-UC \end{tabular} \end{table} +%<*ja> +\item[ltj-kinsoku\_default.\{lua.gz,luc\}] +禁則処理,\Param{kansujichar}などの標準設定が格納されたファイルである. +% +%<*en> +\item[ltj-kinsoku.luc] +The bytecode cache which default \textit{kinsoku} parameters are stored. +% + %<*ja> \item[ltj-jisx0208.luc] \LuaTeX-ja配布中の\texttt{ltj-jisx0208.lua}をバイトコード化したものである. diff --git a/macros/luatex/generic/luatexja/src/lltjext.sty b/macros/luatex/generic/luatexja/src/lltjext.sty index 9e1421b130..d19db9ab61 100644 --- a/macros/luatex/generic/luatexja/src/lltjext.sty +++ b/macros/luatex/generic/luatexja/src/lltjext.sty @@ -738,7 +738,6 @@ \lineskip\z@skip\baselineskip\z@skip\@preamble} \def\endarray{\crcr\egroup\egroup\@end@alignbox\@arrayright} } - \@ifpackageloaded{array}{% \let\tabular=\ltj@lltjext@orig@tabular \let\array=\ltj@lltjext@orig@array @@ -746,8 +745,7 @@ }{% \let\ltj@lltjext@orig@tabular\relax \let\ltj@lltjext@orig@array\relax - \RequirePackage{filehook,etoolbox} - \AtEndOfPackageFile{array}{\ltj@lltjext@patch@array} + \ltj@ExecuteAfterPackage{array}{\ltj@lltjext@patch@array} } %%%%%%%%%%%%%%%% LuaTeX-ja original diff --git a/macros/luatex/generic/luatexja/src/ltj-base.sty b/macros/luatex/generic/luatexja/src/ltj-base.sty index 605797f3a3..622b387723 100644 --- a/macros/luatex/generic/luatexja/src/ltj-base.sty +++ b/macros/luatex/generic/luatexja/src/ltj-base.sty @@ -13,7 +13,7 @@ \ifltj@in@latex %<*LaTeX> \NeedsTeXFormat{LaTeX2e} - \ProvidesPackage{ltj-base}[2020-07-27] + \ProvidesPackage{ltj-base}[2020-08-04] \fi % %%------------------ Tiny helpers @@ -96,13 +96,6 @@ %! plain であるか. \ltj@csletcs{ifltj@in@plain}{iffalse} -%% \ltj@require@package{}{} -%! サブパッケージを読み込む. LaTeX では \RequirePackage、それ以外では -%! \input を使う. は必須だが空でもよい. -\def\ltj@require@package#1#2{ - \RequirePackage{#1}[#2] -} - %% \ltj@print{} %! 端末への出力. \let\ltj@print\typeout @@ -116,11 +109,6 @@ \ltj@csletcs{ifltj@in@plain}{iffalse} \fi -%% \ltj@require@package{}{} -\def\ltj@require@package#1#2{ - \input #1.sty\relax -} - %% \ltj@print{} \def\ltj@print#1{ \immediate\write16{#1} @@ -299,6 +287,7 @@ %% from Sonja Maus, ``Looking Ahead for a '', %% TUGBoat, 11, No. 4, 1990. \newbox\ltj@afbox +\directlua{luatexja.afbox_number=\the\ltj@afbox} \protected\def\ltj@afterbox#1{% \def\ltj@afb@xarg{#1}% \afterassignment\ltj@afb@x diff --git a/macros/luatex/generic/luatexja/src/ltj-direction.lua b/macros/luatex/generic/luatexja/src/ltj-direction.lua index 523397d804..4c6c3b6bd7 100644 --- a/macros/luatex/generic/luatexja/src/ltj-direction.lua +++ b/macros/luatex/generic/luatexja/src/ltj-direction.lua @@ -900,8 +900,7 @@ do local sd = to_direct(s) local box_dir = get_box_dir(sd, dir_yoko) if box_dir%dir_math_mod ~= list_dir then - setbox( - 'ltj@afbox', + setbox('ltj@afbox', to_node(copy_list(make_dir_whatsit(sd, sd, list_dir, 'box_move'))) -- copy_list しないとリストの整合性が崩れる……? ) @@ -1059,8 +1058,7 @@ do local finalize_inner local function finalize_dir_node(db,new_dir) local b = getlist(db) - if getid(b)==id_whatsit and getsubtype(b)==sid_user - and getfield(b, 'user_id')==DIR then + while b and ((getid(b)~=id_hlist) and (getid(b)~=id_vlist)) do local ob = b; b = node_remove(b,b); setfield(db, 'head', b); node_free(ob) end @@ -1115,19 +1113,21 @@ do end end end - local getbox = tex.getbox + local getbox, shipout = tex.getbox, tex.shipout local setbox, copy = node.direct.setbox, node.direct.copy - local lua_mem_kb = 0 - function luatexja.direction.finalize() - local a = to_direct(tex.getbox("AtBeginShipoutBox")) + local afbox + function luatexja.direction.shipout() + start_time_measure 'box_primitive_hook' + if (not afbox) and luatexja.afbox_number then afbox = luatexja.afbox_number end + local a = to_direct(getbox 'ltj@afbox') local a_dir = get_box_dir(a, dir_yoko) if a_dir~=dir_yoko then local b = create_dir_node(a, a_dir, dir_yoko, false) setfield(b, 'head', a); a = b end - setfield(shipout_temp, 'head', a) - finalize_inner(shipout_temp) - setbox('global', "AtBeginShipoutBox", copy(getlist(shipout_temp))) - setfield(shipout_temp, 'head',nil) + setfield(shipout_temp, 'head', a); finalize_inner(shipout_temp) + setbox(afbox, copy(getlist(shipout_temp))); setfield(shipout_temp, 'head',nil) + shipout(afbox) + stop_time_measure 'box_primitive_hook' end end diff --git a/macros/luatex/generic/luatexja/src/ltj-kinsoku.tex b/macros/luatex/generic/luatexja/src/ltj-kinsoku.tex new file mode 100644 index 0000000000..d5b9c183b7 --- /dev/null +++ b/macros/luatex/generic/luatexja/src/ltj-kinsoku.tex @@ -0,0 +1,468 @@ +\ltj@tempcnta="0%" +\loop\ifnum\ltj@tempcnta<"100%" + \ltjsetparameter{alxspmode={\ltj@tempcnta,0}}% + \advance\ltj@tempcnta by1 +\repeat + +\ltj@tempcnta=`0%" +\loop\ifnum\ltj@tempcnta<`:%" + \ltjsetparameter{alxspmode={\ltj@tempcnta,3}}% + \advance\ltj@tempcnta by1 +\repeat + +\ltj@tempcnta=`A%" +\loop\ifnum\ltj@tempcnta<`[%" + \ltjsetparameter{alxspmode={\ltj@tempcnta,3}}% + \advance\ltj@tempcnta by1 +\repeat + +\ltj@tempcnta=`a%" +\loop\ifnum\ltj@tempcnta<`\{%" + \ltjsetparameter{alxspmode={\ltj@tempcnta,3}}% + \advance\ltj@tempcnta by1 +\repeat + +\ltj@tempcnta="2000%" General Punctuation +\loop\ifnum\ltj@tempcnta<"2070%" + \ltjsetparameter{kcatcode={\ltj@tempcnta,1}}% + \advance\ltj@tempcnta by1 +\repeat + +\ltj@tempcnta="2500%" 罫線 +\loop\ifnum\ltj@tempcnta<"2580%" + \ltjsetparameter{alxspmode={\ltj@tempcnta,0}}% + \advance\ltj@tempcnta by1 +\repeat + +\ltj@tempcnta="3000%" CJK Symbols and Punctuation +\loop\ifnum\ltj@tempcnta<"3040%" + \ltjsetparameter{kcatcode={\ltj@tempcnta,1}}% + \advance\ltj@tempcnta by1 +\repeat + +\ltj@tempcnta="FF00%" 半角・全角形 +\loop\ifnum\ltj@tempcnta<"FFF0%" + \ltjsetparameter{kcatcode={\ltj@tempcnta,1}}% + \advance\ltj@tempcnta by1 +\repeat + +% +% 行頭、行末禁則パラメータ +% +% 1byte characters +\ltjsetparameter{prebreakpenalty={`!,10000}} +\ltjsetparameter{prebreakpenalty={`",10000}} +\ltjsetparameter{postbreakpenalty={`\#,500}} +\ltjsetparameter{postbreakpenalty={`\$,500}} +\ltjsetparameter{prebreakpenalty={`\%,500}} +\ltjsetparameter{prebreakpenalty={`\&,500}} +\ltjsetparameter{postbreakpenalty={`\`,10000}} +\ltjsetparameter{prebreakpenalty={`',10000}} +\ltjsetparameter{prebreakpenalty={`),10000}} +\ltjsetparameter{postbreakpenalty={`(,10000}} +\ltjsetparameter{prebreakpenalty={`*,500}} +\ltjsetparameter{prebreakpenalty={`+,500}} +\ltjsetparameter{prebreakpenalty={`-,10000}} +\ltjsetparameter{prebreakpenalty={`.,10000}} +\ltjsetparameter{prebreakpenalty={44,10000}} +\ltjsetparameter{prebreakpenalty={`/,500}} +\ltjsetparameter{prebreakpenalty={`;,10000}} +\ltjsetparameter{prebreakpenalty={`?,10000}} +\ltjsetparameter{prebreakpenalty={`:,10000}} +\ltjsetparameter{prebreakpenalty={`],10000}} +\ltjsetparameter{postbreakpenalty={`[,10000}} +%全角文字 +\ltjsetparameter{prebreakpenalty={`、,10000}} +\ltjsetparameter{prebreakpenalty={`。,10000}} +\ltjsetparameter{prebreakpenalty={`,,10000}} +\ltjsetparameter{prebreakpenalty={`.,10000}} +\ltjsetparameter{prebreakpenalty={`・,10000}} +\ltjsetparameter{prebreakpenalty={`:,10000}} +\ltjsetparameter{prebreakpenalty={`;,10000}} +\ltjsetparameter{prebreakpenalty={`?,10000}} +\ltjsetparameter{prebreakpenalty={`!,10000}} +\ltjsetparameter{prebreakpenalty={`゛,10000}}%\jis"212B +\ltjsetparameter{prebreakpenalty={`゜,10000}}%\jis"212C +\ltjsetparameter{prebreakpenalty={`´,10000}}%\jis"212D +\ltjsetparameter{postbreakpenalty={``,10000}}%\jis"212E +\ltjsetparameter{prebreakpenalty={`々,10000}}%\jis"2139 +\ltjsetparameter{prebreakpenalty={`…,250}}%\jis"2144 +\ltjsetparameter{prebreakpenalty={`‥,250}}%\jis"2145 +\ltjsetparameter{postbreakpenalty={`‘,10000}}%\jis"2146 +\ltjsetparameter{prebreakpenalty={`’,10000}}%\jis"2147 +\ltjsetparameter{postbreakpenalty={`“,10000}}%\jis"2148 +\ltjsetparameter{prebreakpenalty={`”,10000}}%\jis"2149 +\ltjsetparameter{prebreakpenalty={`),10000}} +\ltjsetparameter{postbreakpenalty={`(,10000}} +\ltjsetparameter{prebreakpenalty={`},10000}} +\ltjsetparameter{postbreakpenalty={`{,10000}} +\ltjsetparameter{prebreakpenalty={`],10000}} +\ltjsetparameter{postbreakpenalty={`[,10000}} +%\ltjsetparameter{postbreakpenalty={`‘,10000}} +%\ltjsetparameter{prebreakpenalty={`’,10000}} +\ltjsetparameter{postbreakpenalty={`〔,10000}}%\jis"214C +\ltjsetparameter{prebreakpenalty={`〕,10000}}%\jis"214D +\ltjsetparameter{postbreakpenalty={`〈,10000}}%\jis"2152 +\ltjsetparameter{prebreakpenalty={`〉,10000}}%\jis"2153 +\ltjsetparameter{postbreakpenalty={`《,10000}}%\jis"2154 +\ltjsetparameter{prebreakpenalty={`》,10000}}%\jis"2155 +\ltjsetparameter{postbreakpenalty={`「,10000}}%\jis"2156 +\ltjsetparameter{prebreakpenalty={`」,10000}}%\jis"2157 +\ltjsetparameter{postbreakpenalty={`『,10000}}%\jis"2158 +\ltjsetparameter{prebreakpenalty={`』,10000}}%\jis"2159 +\ltjsetparameter{postbreakpenalty={`【,10000}}%\jis"215A +\ltjsetparameter{prebreakpenalty={`】,10000}}%\jis"215B +\ltjsetparameter{prebreakpenalty={`ー,10000}} +\ltjsetparameter{prebreakpenalty={`+,200}} +\ltjsetparameter{prebreakpenalty={`−,200}}% U+2212 MINUS SIGN +\ltjsetparameter{prebreakpenalty={`-,200}}% U+FF0D FULLWIDTH HYPHEN-MINUS +\ltjsetparameter{prebreakpenalty={`=,200}} +\ltjsetparameter{postbreakpenalty={`#,200}} +\ltjsetparameter{postbreakpenalty={`$,200}} +\ltjsetparameter{prebreakpenalty={`%,200}} +\ltjsetparameter{prebreakpenalty={`&,200}} +\ltjsetparameter{prebreakpenalty={`ぁ,150}} +\ltjsetparameter{prebreakpenalty={`ぃ,150}} +\ltjsetparameter{prebreakpenalty={`ぅ,150}} +\ltjsetparameter{prebreakpenalty={`ぇ,150}} +\ltjsetparameter{prebreakpenalty={`ぉ,150}} +\ltjsetparameter{prebreakpenalty={`っ,150}} +\ltjsetparameter{prebreakpenalty={`ゃ,150}} +\ltjsetparameter{prebreakpenalty={`ゅ,150}} +\ltjsetparameter{prebreakpenalty={`ょ,150}} +\ltjsetparameter{prebreakpenalty={`ゎ,150}}%\jis"246E +\ltjsetparameter{prebreakpenalty={`ァ,150}} +\ltjsetparameter{prebreakpenalty={`ィ,150}} +\ltjsetparameter{prebreakpenalty={`ゥ,150}} +\ltjsetparameter{prebreakpenalty={`ェ,150}} +\ltjsetparameter{prebreakpenalty={`ォ,150}} +\ltjsetparameter{prebreakpenalty={`ッ,150}} +\ltjsetparameter{prebreakpenalty={`ャ,150}} +\ltjsetparameter{prebreakpenalty={`ュ,150}} +\ltjsetparameter{prebreakpenalty={`ョ,150}} +\ltjsetparameter{prebreakpenalty={`ヮ,150}}%\jis"256E +\ltjsetparameter{prebreakpenalty={`ヵ,150}}%\jis"2575 +\ltjsetparameter{prebreakpenalty={`ヶ,150}}%\jis"2576 +% kinsoku JIS X 0208 additional +\ltjsetparameter{prebreakpenalty={`ヽ,10000}} +\ltjsetparameter{prebreakpenalty={`ヾ,10000}} +\ltjsetparameter{prebreakpenalty={`ゝ,10000}} +\ltjsetparameter{prebreakpenalty={`ゞ,10000}} + +% +% kinsoku JIS X 0213 +% +\ltjsetparameter{prebreakpenalty={`〳,10000}} +\ltjsetparameter{prebreakpenalty={`〴,10000}} +\ltjsetparameter{prebreakpenalty={`〵,10000}} +\ltjsetparameter{prebreakpenalty={`〻,10000}} +\ltjsetparameter{postbreakpenalty={`⦅,10000}} +\ltjsetparameter{prebreakpenalty={`⦆,10000}} +\ltjsetparameter{postbreakpenalty={`⦅,10000}} +\ltjsetparameter{prebreakpenalty={`⦆,10000}} +\ltjsetparameter{postbreakpenalty={`〘,10000}} +\ltjsetparameter{prebreakpenalty={`〙,10000}} +\ltjsetparameter{postbreakpenalty={`〖,10000}} +\ltjsetparameter{prebreakpenalty={`〗,10000}} +\ltjsetparameter{postbreakpenalty={`«,10000}} +\ltjsetparameter{prebreakpenalty={`»,10000}} +\ltjsetparameter{postbreakpenalty={`〝,10000}} +\ltjsetparameter{prebreakpenalty={`〟,10000}} +\ltjsetparameter{prebreakpenalty={`‼,10000}} +\ltjsetparameter{prebreakpenalty={`⁇,10000}} +\ltjsetparameter{prebreakpenalty={`⁈,10000}} +\ltjsetparameter{prebreakpenalty={`⁉,10000}} +\ltjsetparameter{postbreakpenalty={`¡,10000}} +\ltjsetparameter{postbreakpenalty={`¿,10000}} +\ltjsetparameter{prebreakpenalty={`ː,10000}} +\ltjsetparameter{prebreakpenalty={`·,10000}} +\ltjsetparameter{prebreakpenalty={`ª,10000}} +\ltjsetparameter{prebreakpenalty={`º,10000}} +\ltjsetparameter{prebreakpenalty={`¹,10000}} +\ltjsetparameter{prebreakpenalty={`²,10000}} +\ltjsetparameter{prebreakpenalty={`³,10000}} +\ltjsetparameter{postbreakpenalty={`€,10000}} +\ltjsetparameter{prebreakpenalty={`ゕ,150}} +\ltjsetparameter{prebreakpenalty={`ゖ,150}} +\ltjsetparameter{prebreakpenalty={`ㇰ,150}} +\ltjsetparameter{prebreakpenalty={`ㇱ,150}} +\ltjsetparameter{prebreakpenalty={`ㇲ,150}} +\ltjsetparameter{prebreakpenalty={`ㇳ,150}} +\ltjsetparameter{prebreakpenalty={`ㇴ,150}} +\ltjsetparameter{prebreakpenalty={`ㇵ,150}} +\ltjsetparameter{prebreakpenalty={`ㇶ,150}} +\ltjsetparameter{prebreakpenalty={`ㇷ,150}} +\ltjsetparameter{prebreakpenalty={`ㇸ,150}} +\ltjsetparameter{prebreakpenalty={`ㇹ,150}} +%\ltjsetparameter{prebreakpenalty={`ㇷ゚,150}} +\ltjsetparameter{prebreakpenalty={`ㇺ,150}} +\ltjsetparameter{prebreakpenalty={`ㇻ,150}} +\ltjsetparameter{prebreakpenalty={`ㇼ,150}} +\ltjsetparameter{prebreakpenalty={`ㇽ,150}} +\ltjsetparameter{prebreakpenalty={`ㇾ,150}} +\ltjsetparameter{prebreakpenalty={`ㇿ,150}} +% +% kinsoku JIS X 0212 +% +%\ltjsetparameter{postbreakpenalty={`¡,10000}} +%\ltjsetparameter{postbreakpenalty={`¿,10000}} +%\ltjsetparameter{prebreakpenalty={`º,10000}} +%\ltjsetparameter{prebreakpenalty={`ª,10000}} +\ltjsetparameter{prebreakpenalty={`™,10000}} +% +% kinsoku 半角片仮名 +% +\ltjsetparameter{prebreakpenalty={`。,10000}} +\ltjsetparameter{prebreakpenalty={`、,10000}} +\ltjsetparameter{prebreakpenalty={`゙,10000}} +\ltjsetparameter{prebreakpenalty={`゚,10000}} +\ltjsetparameter{prebreakpenalty={`」,10000}} +\ltjsetparameter{postbreakpenalty={`「,10000}} +% +% xspcode +\ltjsetparameter{alxspmode={`(,preonly}} +\ltjsetparameter{alxspmode={`),postonly}} +\ltjsetparameter{alxspmode={`[,preonly}} +\ltjsetparameter{alxspmode={`],postonly}} +\ltjsetparameter{alxspmode={``,preonly}} +\ltjsetparameter{alxspmode={`',postonly}} +\ltjsetparameter{alxspmode={`;,postonly}} +\ltjsetparameter{alxspmode={44,postonly}} +\ltjsetparameter{alxspmode={`.,postonly}} +% for 8bit Latin +\ltjsetparameter{alxspmode={"80,allow}} +\ltjsetparameter{alxspmode={"81,allow}} +\ltjsetparameter{alxspmode={"82,allow}} +\ltjsetparameter{alxspmode={"83,allow}} +\ltjsetparameter{alxspmode={"84,allow}} +\ltjsetparameter{alxspmode={"85,allow}} +\ltjsetparameter{alxspmode={"86,allow}} +\ltjsetparameter{alxspmode={"87,allow}} +\ltjsetparameter{alxspmode={"88,allow}} +\ltjsetparameter{alxspmode={"89,allow}} +\ltjsetparameter{alxspmode={"8A,allow}} +\ltjsetparameter{alxspmode={"8B,allow}} +\ltjsetparameter{alxspmode={"8C,allow}} +\ltjsetparameter{alxspmode={"8D,allow}} +\ltjsetparameter{alxspmode={"8E,allow}} +\ltjsetparameter{alxspmode={"8F,allow}} +\ltjsetparameter{alxspmode={"90,allow}} +\ltjsetparameter{alxspmode={"91,allow}} +\ltjsetparameter{alxspmode={"92,allow}} +\ltjsetparameter{alxspmode={"93,allow}} +\ltjsetparameter{alxspmode={"94,allow}} +\ltjsetparameter{alxspmode={"95,allow}} +\ltjsetparameter{alxspmode={"96,allow}} +\ltjsetparameter{alxspmode={"97,allow}} +\ltjsetparameter{alxspmode={"98,allow}} +\ltjsetparameter{alxspmode={"99,allow}} +\ltjsetparameter{alxspmode={"9A,allow}} +\ltjsetparameter{alxspmode={"9B,allow}} +\ltjsetparameter{alxspmode={"9C,allow}} +\ltjsetparameter{alxspmode={"9D,allow}} +\ltjsetparameter{alxspmode={"9E,allow}} +\ltjsetparameter{alxspmode={"9F,allow}} +\ltjsetparameter{alxspmode={"A0,allow}} +\ltjsetparameter{alxspmode={"A1,allow}} +\ltjsetparameter{alxspmode={"A2,allow}} +\ltjsetparameter{alxspmode={"A3,allow}} +\ltjsetparameter{alxspmode={"A4,allow}} +\ltjsetparameter{alxspmode={"A5,allow}} +\ltjsetparameter{alxspmode={"A6,allow}} +\ltjsetparameter{alxspmode={"A7,allow}} +\ltjsetparameter{alxspmode={"A8,allow}} +\ltjsetparameter{alxspmode={"A9,allow}} +\ltjsetparameter{alxspmode={"AA,allow}} +\ltjsetparameter{alxspmode={"AB,allow}} +\ltjsetparameter{alxspmode={"AC,allow}} +\ltjsetparameter{alxspmode={"AD,allow}} +\ltjsetparameter{alxspmode={"AE,allow}} +\ltjsetparameter{alxspmode={"AF,allow}} +\ltjsetparameter{alxspmode={"B0,allow}} +\ltjsetparameter{alxspmode={"B1,allow}} +\ltjsetparameter{alxspmode={"B2,allow}} +\ltjsetparameter{alxspmode={"B3,allow}} +\ltjsetparameter{alxspmode={"B4,allow}} +\ltjsetparameter{alxspmode={"B5,allow}} +\ltjsetparameter{alxspmode={"B6,allow}} +\ltjsetparameter{alxspmode={"B7,allow}} +\ltjsetparameter{alxspmode={"B8,allow}} +\ltjsetparameter{alxspmode={"B9,allow}} +\ltjsetparameter{alxspmode={"BA,allow}} +\ltjsetparameter{alxspmode={"BB,allow}} +\ltjsetparameter{alxspmode={"BC,allow}} +\ltjsetparameter{alxspmode={"BD,allow}} +\ltjsetparameter{alxspmode={"BE,allow}} +\ltjsetparameter{alxspmode={"BF,allow}} +\ltjsetparameter{alxspmode={"C0,allow}} +\ltjsetparameter{alxspmode={"C1,allow}} +\ltjsetparameter{alxspmode={"C2,allow}} +\ltjsetparameter{alxspmode={"C3,allow}} +\ltjsetparameter{alxspmode={"C4,allow}} +\ltjsetparameter{alxspmode={"C5,allow}} +\ltjsetparameter{alxspmode={"C6,allow}} +\ltjsetparameter{alxspmode={"C7,allow}} +\ltjsetparameter{alxspmode={"C8,allow}} +\ltjsetparameter{alxspmode={"C9,allow}} +\ltjsetparameter{alxspmode={"CA,allow}} +\ltjsetparameter{alxspmode={"CB,allow}} +\ltjsetparameter{alxspmode={"CC,allow}} +\ltjsetparameter{alxspmode={"CD,allow}} +\ltjsetparameter{alxspmode={"CE,allow}} +\ltjsetparameter{alxspmode={"CF,allow}} +\ltjsetparameter{alxspmode={"D0,allow}} +\ltjsetparameter{alxspmode={"D1,allow}} +\ltjsetparameter{alxspmode={"D2,allow}} +\ltjsetparameter{alxspmode={"D3,allow}} +\ltjsetparameter{alxspmode={"D4,allow}} +\ltjsetparameter{alxspmode={"D5,allow}} +\ltjsetparameter{alxspmode={"D6,allow}} +\ltjsetparameter{alxspmode={"D7,allow}} +\ltjsetparameter{alxspmode={"D8,allow}} +\ltjsetparameter{alxspmode={"D9,allow}} +\ltjsetparameter{alxspmode={"DA,allow}} +\ltjsetparameter{alxspmode={"DB,allow}} +\ltjsetparameter{alxspmode={"DC,allow}} +\ltjsetparameter{alxspmode={"DD,allow}} +\ltjsetparameter{alxspmode={"DE,allow}} +\ltjsetparameter{alxspmode={"DF,allow}} +\ltjsetparameter{alxspmode={"E0,allow}} +\ltjsetparameter{alxspmode={"E1,allow}} +\ltjsetparameter{alxspmode={"E2,allow}} +\ltjsetparameter{alxspmode={"E3,allow}} +\ltjsetparameter{alxspmode={"E4,allow}} +\ltjsetparameter{alxspmode={"E5,allow}} +\ltjsetparameter{alxspmode={"E6,allow}} +\ltjsetparameter{alxspmode={"E7,allow}} +\ltjsetparameter{alxspmode={"E8,allow}} +\ltjsetparameter{alxspmode={"E9,allow}} +\ltjsetparameter{alxspmode={"EA,allow}} +\ltjsetparameter{alxspmode={"EB,allow}} +\ltjsetparameter{alxspmode={"EC,allow}} +\ltjsetparameter{alxspmode={"ED,allow}} +\ltjsetparameter{alxspmode={"EE,allow}} +\ltjsetparameter{alxspmode={"EF,allow}} +\ltjsetparameter{alxspmode={"F0,allow}} +\ltjsetparameter{alxspmode={"F1,allow}} +\ltjsetparameter{alxspmode={"F2,allow}} +\ltjsetparameter{alxspmode={"F3,allow}} +\ltjsetparameter{alxspmode={"F4,allow}} +\ltjsetparameter{alxspmode={"F5,allow}} +\ltjsetparameter{alxspmode={"F6,allow}} +\ltjsetparameter{alxspmode={"F7,allow}} +\ltjsetparameter{alxspmode={"F8,allow}} +\ltjsetparameter{alxspmode={"F9,allow}} +\ltjsetparameter{alxspmode={"FA,allow}} +\ltjsetparameter{alxspmode={"FB,allow}} +\ltjsetparameter{alxspmode={"FC,allow}} +\ltjsetparameter{alxspmode={"FD,allow}} +\ltjsetparameter{alxspmode={"FE,allow}} +\ltjsetparameter{alxspmode={"FF,allow}} +% +% inhibitxspcode +\ltjsetparameter{jaxspmode={`、,postonly}} +\ltjsetparameter{jaxspmode={`。,postonly}} +\ltjsetparameter{jaxspmode={`,,postonly}} +\ltjsetparameter{jaxspmode={`.,postonly}} +\ltjsetparameter{jaxspmode={`;,postonly}} +\ltjsetparameter{jaxspmode={`?,postonly}} +\ltjsetparameter{jaxspmode={`),postonly}} +\ltjsetparameter{jaxspmode={`(,preonly}} +\ltjsetparameter{jaxspmode={`],postonly}} +\ltjsetparameter{jaxspmode={`[,preonly}} +\ltjsetparameter{jaxspmode={`},postonly}} +\ltjsetparameter{jaxspmode={`{,preonly}} +\ltjsetparameter{jaxspmode={`‘,preonly}} +\ltjsetparameter{jaxspmode={`’,postonly}} +\ltjsetparameter{jaxspmode={`“,preonly}} +\ltjsetparameter{jaxspmode={`”,postonly}} +\ltjsetparameter{jaxspmode={`〔,preonly}} +\ltjsetparameter{jaxspmode={`〕,postonly}} +\ltjsetparameter{jaxspmode={`〈,preonly}} +\ltjsetparameter{jaxspmode={`〉,postonly}} +\ltjsetparameter{jaxspmode={`《,preonly}} +\ltjsetparameter{jaxspmode={`》,postonly}} +\ltjsetparameter{jaxspmode={`「,preonly}} +\ltjsetparameter{jaxspmode={`」,postonly}} +\ltjsetparameter{jaxspmode={`『,preonly}} +\ltjsetparameter{jaxspmode={`』,postonly}} +\ltjsetparameter{jaxspmode={`【,preonly}} +\ltjsetparameter{jaxspmode={`】,postonly}} +\ltjsetparameter{jaxspmode={`—,inhibit}}% U+2014 EM DASH +\ltjsetparameter{jaxspmode={`―,inhibit}}% U+2015 HORIZONTAL BAR +\ltjsetparameter{jaxspmode={`〜,inhibit}}% U+301C WAVE DASH +\ltjsetparameter{jaxspmode={`~,inhibit}}% U+FF5E FULLWIDTH TILDE +\ltjsetparameter{jaxspmode={`…,inhibit}} +\ltjsetparameter{jaxspmode={`¥,inhibit}}% U+00A5 YEN SIGN +\ltjsetparameter{jaxspmode={`¥,inhibit}}% U+FFE5 FULLWIDTH YEN SIGN +\ltjsetparameter{jaxspmode={`°,postonly}} +\ltjsetparameter{jaxspmode={`′,postonly}} +\ltjsetparameter{jaxspmode={`″,postonly}} +% +% inhibitxspcode JIS X 0213 +% +\ltjsetparameter{jaxspmode={`⦅,preonly}} +\ltjsetparameter{jaxspmode={`⦆,postonly}} +\ltjsetparameter{jaxspmode={`⦅,preonly}} +\ltjsetparameter{jaxspmode={`⦆,postonly}} +\ltjsetparameter{jaxspmode={`〘,preonly}} +\ltjsetparameter{jaxspmode={`〙,postonly}} +\ltjsetparameter{jaxspmode={`〖,preonly}} +\ltjsetparameter{jaxspmode={`〗,postonly}} +\ltjsetparameter{jaxspmode={`«,preonly}} +\ltjsetparameter{jaxspmode={`»,postonly}} +\ltjsetparameter{jaxspmode={`〝,preonly}} +\ltjsetparameter{jaxspmode={`〟,postonly}} +\ltjsetparameter{jaxspmode={`‼,postonly}} +\ltjsetparameter{jaxspmode={`⁇,postonly}} +\ltjsetparameter{jaxspmode={`⁈,postonly}} +\ltjsetparameter{jaxspmode={`⁉,postonly}} +\ltjsetparameter{jaxspmode={`¡,preonly}} +\ltjsetparameter{jaxspmode={`¿,preonly}} +\ltjsetparameter{jaxspmode={`ª,postonly}} +\ltjsetparameter{jaxspmode={`º,postonly}} +\ltjsetparameter{jaxspmode={`¹,postonly}} +\ltjsetparameter{jaxspmode={`²,postonly}} +\ltjsetparameter{jaxspmode={`³,postonly}} +\ltjsetparameter{jaxspmode={`€,preonly}} +% +% inhibitxspcode JIS X 0212 +% +%\ltjsetparameter{jaxspmode={`¡,preonly}} +%\ltjsetparameter{jaxspmode={`¿,preonly}} +%\ltjsetparameter{jaxspmode={`º,postonly}} +%\ltjsetparameter{jaxspmode={`ª,postonly}} +\ltjsetparameter{jaxspmode={`™,postonly}} +% +% inhibitxspcode 半角片仮名 +% +\ltjsetparameter{jaxspmode={`。,postonly}} +\ltjsetparameter{jaxspmode={`、,postonly}} +\ltjsetparameter{jaxspmode={`「,preonly}} +\ltjsetparameter{jaxspmode={`」,postonly}} + +\ltjsetparameter{% + kanjiskip=\z@ plus .4pt minus .5pt, + xkanjiskip=2.40554pt plus 1pt minus 1pt, + yalbaselineshift=\z@, yjabaselineshift=\z@, + jcharwidowpenalty=500 +} + +% default setting of kansujichar (luatexja-compat) +\define@key[ltj]{japaram}{kansujichar}{\ltj@@set@stack{KSJ}{0}{0x7FFFFFFF}#1 } + +\ltjsetparameter{kansujichar={0,`〇}} +\ltjsetparameter{kansujichar={1,`一}} +\ltjsetparameter{kansujichar={2,`二}} +\ltjsetparameter{kansujichar={3,`三}} +\ltjsetparameter{kansujichar={4,`四}} +\ltjsetparameter{kansujichar={5,`五}} +\ltjsetparameter{kansujichar={6,`六}} +\ltjsetparameter{kansujichar={7,`七}} +\ltjsetparameter{kansujichar={8,`八}} +\ltjsetparameter{kansujichar={9,`九}} + +\directlua{% + local s = table.copy(luatexja.stack.charprop_stack_table[0]) + luatexja.base.save_cache('ltj-kinsoku_default', {s, version=1}) +} diff --git a/macros/luatex/generic/luatexja/src/ltj-kinsoku_make.tex b/macros/luatex/generic/luatexja/src/ltj-kinsoku_make.tex deleted file mode 100644 index 5d25ff0f11..0000000000 --- a/macros/luatex/generic/luatexja/src/ltj-kinsoku_make.tex +++ /dev/null @@ -1,456 +0,0 @@ -%#!luatex ltj-kinsoku_make.tex -%\tracingall -\input luatexja.sty - -\catcode`\@=11 -\ltj@tempcnta="0%" -\loop\ifnum\ltj@tempcnta<"100%" - \ltjsetparameter{alxspmode={\ltj@tempcnta,0}}% - \advance\ltj@tempcnta by1 -\repeat - -\ltj@tempcnta=`\0%" -\loop\ifnum\ltj@tempcnta<`\:%" - \ltjsetparameter{alxspmode={\ltj@tempcnta,3}}% - \advance\ltj@tempcnta by1 -\repeat - -\ltj@tempcnta=`\A%" -\loop\ifnum\ltj@tempcnta<`\[%" - \ltjsetparameter{alxspmode={\ltj@tempcnta,3}}% - \advance\ltj@tempcnta by1 -\repeat - -\ltj@tempcnta=`\a%" -\loop\ifnum\ltj@tempcnta<`\{%" - \ltjsetparameter{alxspmode={\ltj@tempcnta,3}}% - \advance\ltj@tempcnta by1 -\repeat - -\ltj@tempcnta="2000%" General Punctuation -\loop\ifnum\ltj@tempcnta<"2070%" - \ltjsetparameter{kcatcode={\ltj@tempcnta,1}}% - \advance\ltj@tempcnta by1 -\repeat - -\ltj@tempcnta="2500%" 罫線 -\loop\ifnum\ltj@tempcnta<"2580%" - \ltjsetparameter{alxspmode={\ltj@tempcnta,0}}% - \advance\ltj@tempcnta by1 -\repeat - -\ltj@tempcnta="3000%" CJK Symbols and Punctuation -\loop\ifnum\ltj@tempcnta<"3040%" - \ltjsetparameter{kcatcode={\ltj@tempcnta,1}}% - \advance\ltj@tempcnta by1 -\repeat - -\ltj@tempcnta="FF00%" 半角・全角形 -\loop\ifnum\ltj@tempcnta<"FFF0%" - \ltjsetparameter{kcatcode={\ltj@tempcnta,1}}% - \advance\ltj@tempcnta by1 -\repeat - -% -% 行頭、行末禁則パラメータ -% -% 1byte characters -\ltjsetparameter{prebreakpenalty={`!,10000}} -\ltjsetparameter{prebreakpenalty={`",10000}} -\ltjsetparameter{postbreakpenalty={`\#,500}} -\ltjsetparameter{postbreakpenalty={`\$,500}} -\ltjsetparameter{prebreakpenalty={`\%,500}} -\ltjsetparameter{prebreakpenalty={`\&,500}} -\ltjsetparameter{postbreakpenalty={`\`,10000}} -\ltjsetparameter{prebreakpenalty={`',10000}} -\ltjsetparameter{prebreakpenalty={`),10000}} -\ltjsetparameter{postbreakpenalty={`(,10000}} -\ltjsetparameter{prebreakpenalty={`*,500}} -\ltjsetparameter{prebreakpenalty={`+,500}} -\ltjsetparameter{prebreakpenalty={`-,10000}} -\ltjsetparameter{prebreakpenalty={`.,10000}} -\ltjsetparameter{prebreakpenalty={44,10000}} -\ltjsetparameter{prebreakpenalty={`/,500}} -\ltjsetparameter{prebreakpenalty={`;,10000}} -\ltjsetparameter{prebreakpenalty={`?,10000}} -\ltjsetparameter{prebreakpenalty={`:,10000}} -\ltjsetparameter{prebreakpenalty={`],10000}} -\ltjsetparameter{postbreakpenalty={`[,10000}} -%全角文字 -\ltjsetparameter{prebreakpenalty={`、,10000}} -\ltjsetparameter{prebreakpenalty={`。,10000}} -\ltjsetparameter{prebreakpenalty={`,,10000}} -\ltjsetparameter{prebreakpenalty={`.,10000}} -\ltjsetparameter{prebreakpenalty={`・,10000}} -\ltjsetparameter{prebreakpenalty={`:,10000}} -\ltjsetparameter{prebreakpenalty={`;,10000}} -\ltjsetparameter{prebreakpenalty={`?,10000}} -\ltjsetparameter{prebreakpenalty={`!,10000}} -\ltjsetparameter{prebreakpenalty={`゛,10000}}%\jis"212B -\ltjsetparameter{prebreakpenalty={`゜,10000}}%\jis"212C -\ltjsetparameter{prebreakpenalty={`´,10000}}%\jis"212D -\ltjsetparameter{postbreakpenalty={``,10000}}%\jis"212E -\ltjsetparameter{prebreakpenalty={`々,10000}}%\jis"2139 -\ltjsetparameter{prebreakpenalty={`…,250}}%\jis"2144 -\ltjsetparameter{prebreakpenalty={`‥,250}}%\jis"2145 -\ltjsetparameter{postbreakpenalty={`‘,10000}}%\jis"2146 -\ltjsetparameter{prebreakpenalty={`’,10000}}%\jis"2147 -\ltjsetparameter{postbreakpenalty={`“,10000}}%\jis"2148 -\ltjsetparameter{prebreakpenalty={`”,10000}}%\jis"2149 -\ltjsetparameter{prebreakpenalty={`),10000}} -\ltjsetparameter{postbreakpenalty={`(,10000}} -\ltjsetparameter{prebreakpenalty={`},10000}} -\ltjsetparameter{postbreakpenalty={`{,10000}} -\ltjsetparameter{prebreakpenalty={`],10000}} -\ltjsetparameter{postbreakpenalty={`[,10000}} -%\ltjsetparameter{postbreakpenalty={`‘,10000}} -%\ltjsetparameter{prebreakpenalty={`’,10000}} -\ltjsetparameter{postbreakpenalty={`〔,10000}}%\jis"214C -\ltjsetparameter{prebreakpenalty={`〕,10000}}%\jis"214D -\ltjsetparameter{postbreakpenalty={`〈,10000}}%\jis"2152 -\ltjsetparameter{prebreakpenalty={`〉,10000}}%\jis"2153 -\ltjsetparameter{postbreakpenalty={`《,10000}}%\jis"2154 -\ltjsetparameter{prebreakpenalty={`》,10000}}%\jis"2155 -\ltjsetparameter{postbreakpenalty={`「,10000}}%\jis"2156 -\ltjsetparameter{prebreakpenalty={`」,10000}}%\jis"2157 -\ltjsetparameter{postbreakpenalty={`『,10000}}%\jis"2158 -\ltjsetparameter{prebreakpenalty={`』,10000}}%\jis"2159 -\ltjsetparameter{postbreakpenalty={`【,10000}}%\jis"215A -\ltjsetparameter{prebreakpenalty={`】,10000}}%\jis"215B -\ltjsetparameter{prebreakpenalty={`ー,10000}} -\ltjsetparameter{prebreakpenalty={`+,200}} -\ltjsetparameter{prebreakpenalty={`−,200}}% U+2212 MINUS SIGN -\ltjsetparameter{prebreakpenalty={`-,200}}% U+FF0D FULLWIDTH HYPHEN-MINUS -\ltjsetparameter{prebreakpenalty={`=,200}} -\ltjsetparameter{postbreakpenalty={`#,200}} -\ltjsetparameter{postbreakpenalty={`$,200}} -\ltjsetparameter{prebreakpenalty={`%,200}} -\ltjsetparameter{prebreakpenalty={`&,200}} -\ltjsetparameter{prebreakpenalty={`ぁ,150}} -\ltjsetparameter{prebreakpenalty={`ぃ,150}} -\ltjsetparameter{prebreakpenalty={`ぅ,150}} -\ltjsetparameter{prebreakpenalty={`ぇ,150}} -\ltjsetparameter{prebreakpenalty={`ぉ,150}} -\ltjsetparameter{prebreakpenalty={`っ,150}} -\ltjsetparameter{prebreakpenalty={`ゃ,150}} -\ltjsetparameter{prebreakpenalty={`ゅ,150}} -\ltjsetparameter{prebreakpenalty={`ょ,150}} -\ltjsetparameter{prebreakpenalty={`ゎ,150}}%\jis"246E -\ltjsetparameter{prebreakpenalty={`ァ,150}} -\ltjsetparameter{prebreakpenalty={`ィ,150}} -\ltjsetparameter{prebreakpenalty={`ゥ,150}} -\ltjsetparameter{prebreakpenalty={`ェ,150}} -\ltjsetparameter{prebreakpenalty={`ォ,150}} -\ltjsetparameter{prebreakpenalty={`ッ,150}} -\ltjsetparameter{prebreakpenalty={`ャ,150}} -\ltjsetparameter{prebreakpenalty={`ュ,150}} -\ltjsetparameter{prebreakpenalty={`ョ,150}} -\ltjsetparameter{prebreakpenalty={`ヮ,150}}%\jis"256E -\ltjsetparameter{prebreakpenalty={`ヵ,150}}%\jis"2575 -\ltjsetparameter{prebreakpenalty={`ヶ,150}}%\jis"2576 -% kinsoku JIS X 0208 additional -\ltjsetparameter{prebreakpenalty={`ヽ,10000}} -\ltjsetparameter{prebreakpenalty={`ヾ,10000}} -\ltjsetparameter{prebreakpenalty={`ゝ,10000}} -\ltjsetparameter{prebreakpenalty={`ゞ,10000}} - -% -% kinsoku JIS X 0213 -% -\ltjsetparameter{prebreakpenalty={`〳,10000}} -\ltjsetparameter{prebreakpenalty={`〴,10000}} -\ltjsetparameter{prebreakpenalty={`〵,10000}} -\ltjsetparameter{prebreakpenalty={`〻,10000}} -\ltjsetparameter{postbreakpenalty={`⦅,10000}} -\ltjsetparameter{prebreakpenalty={`⦆,10000}} -\ltjsetparameter{postbreakpenalty={`⦅,10000}} -\ltjsetparameter{prebreakpenalty={`⦆,10000}} -\ltjsetparameter{postbreakpenalty={`〘,10000}} -\ltjsetparameter{prebreakpenalty={`〙,10000}} -\ltjsetparameter{postbreakpenalty={`〖,10000}} -\ltjsetparameter{prebreakpenalty={`〗,10000}} -\ltjsetparameter{postbreakpenalty={`«,10000}} -\ltjsetparameter{prebreakpenalty={`»,10000}} -\ltjsetparameter{postbreakpenalty={`〝,10000}} -\ltjsetparameter{prebreakpenalty={`〟,10000}} -\ltjsetparameter{prebreakpenalty={`‼,10000}} -\ltjsetparameter{prebreakpenalty={`⁇,10000}} -\ltjsetparameter{prebreakpenalty={`⁈,10000}} -\ltjsetparameter{prebreakpenalty={`⁉,10000}} -\ltjsetparameter{postbreakpenalty={`¡,10000}} -\ltjsetparameter{postbreakpenalty={`¿,10000}} -\ltjsetparameter{prebreakpenalty={`ː,10000}} -\ltjsetparameter{prebreakpenalty={`·,10000}} -\ltjsetparameter{prebreakpenalty={`ª,10000}} -\ltjsetparameter{prebreakpenalty={`º,10000}} -\ltjsetparameter{prebreakpenalty={`¹,10000}} -\ltjsetparameter{prebreakpenalty={`²,10000}} -\ltjsetparameter{prebreakpenalty={`³,10000}} -\ltjsetparameter{postbreakpenalty={`€,10000}} -\ltjsetparameter{prebreakpenalty={`ゕ,150}} -\ltjsetparameter{prebreakpenalty={`ゖ,150}} -\ltjsetparameter{prebreakpenalty={`ㇰ,150}} -\ltjsetparameter{prebreakpenalty={`ㇱ,150}} -\ltjsetparameter{prebreakpenalty={`ㇲ,150}} -\ltjsetparameter{prebreakpenalty={`ㇳ,150}} -\ltjsetparameter{prebreakpenalty={`ㇴ,150}} -\ltjsetparameter{prebreakpenalty={`ㇵ,150}} -\ltjsetparameter{prebreakpenalty={`ㇶ,150}} -\ltjsetparameter{prebreakpenalty={`ㇷ,150}} -\ltjsetparameter{prebreakpenalty={`ㇸ,150}} -\ltjsetparameter{prebreakpenalty={`ㇹ,150}} -%\ltjsetparameter{prebreakpenalty={`ㇷ゚,150}} -\ltjsetparameter{prebreakpenalty={`ㇺ,150}} -\ltjsetparameter{prebreakpenalty={`ㇻ,150}} -\ltjsetparameter{prebreakpenalty={`ㇼ,150}} -\ltjsetparameter{prebreakpenalty={`ㇽ,150}} -\ltjsetparameter{prebreakpenalty={`ㇾ,150}} -\ltjsetparameter{prebreakpenalty={`ㇿ,150}} -% -% kinsoku JIS X 0212 -% -%\ltjsetparameter{postbreakpenalty={`¡,10000}} -%\ltjsetparameter{postbreakpenalty={`¿,10000}} -%\ltjsetparameter{prebreakpenalty={`º,10000}} -%\ltjsetparameter{prebreakpenalty={`ª,10000}} -\ltjsetparameter{prebreakpenalty={`™,10000}} -% -% kinsoku 半角片仮名 -% -\ltjsetparameter{prebreakpenalty={`。,10000}} -\ltjsetparameter{prebreakpenalty={`、,10000}} -\ltjsetparameter{prebreakpenalty={`゙,10000}} -\ltjsetparameter{prebreakpenalty={`゚,10000}} -\ltjsetparameter{prebreakpenalty={`」,10000}} -\ltjsetparameter{postbreakpenalty={`「,10000}} -% -% xspcode -\ltjsetparameter{alxspmode={`(,preonly}} -\ltjsetparameter{alxspmode={`),postonly}} -\ltjsetparameter{alxspmode={`[,preonly}} -\ltjsetparameter{alxspmode={`],postonly}} -\ltjsetparameter{alxspmode={``,preonly}} -\ltjsetparameter{alxspmode={`',postonly}} -\ltjsetparameter{alxspmode={`;,postonly}} -\ltjsetparameter{alxspmode={44,postonly}} -\ltjsetparameter{alxspmode={`.,postonly}} -% for 8bit Latin -\ltjsetparameter{alxspmode={"80,allow}} -\ltjsetparameter{alxspmode={"81,allow}} -\ltjsetparameter{alxspmode={"82,allow}} -\ltjsetparameter{alxspmode={"83,allow}} -\ltjsetparameter{alxspmode={"84,allow}} -\ltjsetparameter{alxspmode={"85,allow}} -\ltjsetparameter{alxspmode={"86,allow}} -\ltjsetparameter{alxspmode={"87,allow}} -\ltjsetparameter{alxspmode={"88,allow}} -\ltjsetparameter{alxspmode={"89,allow}} -\ltjsetparameter{alxspmode={"8A,allow}} -\ltjsetparameter{alxspmode={"8B,allow}} -\ltjsetparameter{alxspmode={"8C,allow}} -\ltjsetparameter{alxspmode={"8D,allow}} -\ltjsetparameter{alxspmode={"8E,allow}} -\ltjsetparameter{alxspmode={"8F,allow}} -\ltjsetparameter{alxspmode={"90,allow}} -\ltjsetparameter{alxspmode={"91,allow}} -\ltjsetparameter{alxspmode={"92,allow}} -\ltjsetparameter{alxspmode={"93,allow}} -\ltjsetparameter{alxspmode={"94,allow}} -\ltjsetparameter{alxspmode={"95,allow}} -\ltjsetparameter{alxspmode={"96,allow}} -\ltjsetparameter{alxspmode={"97,allow}} -\ltjsetparameter{alxspmode={"98,allow}} -\ltjsetparameter{alxspmode={"99,allow}} -\ltjsetparameter{alxspmode={"9A,allow}} -\ltjsetparameter{alxspmode={"9B,allow}} -\ltjsetparameter{alxspmode={"9C,allow}} -\ltjsetparameter{alxspmode={"9D,allow}} -\ltjsetparameter{alxspmode={"9E,allow}} -\ltjsetparameter{alxspmode={"9F,allow}} -\ltjsetparameter{alxspmode={"A0,allow}} -\ltjsetparameter{alxspmode={"A1,allow}} -\ltjsetparameter{alxspmode={"A2,allow}} -\ltjsetparameter{alxspmode={"A3,allow}} -\ltjsetparameter{alxspmode={"A4,allow}} -\ltjsetparameter{alxspmode={"A5,allow}} -\ltjsetparameter{alxspmode={"A6,allow}} -\ltjsetparameter{alxspmode={"A7,allow}} -\ltjsetparameter{alxspmode={"A8,allow}} -\ltjsetparameter{alxspmode={"A9,allow}} -\ltjsetparameter{alxspmode={"AA,allow}} -\ltjsetparameter{alxspmode={"AB,allow}} -\ltjsetparameter{alxspmode={"AC,allow}} -\ltjsetparameter{alxspmode={"AD,allow}} -\ltjsetparameter{alxspmode={"AE,allow}} -\ltjsetparameter{alxspmode={"AF,allow}} -\ltjsetparameter{alxspmode={"B0,allow}} -\ltjsetparameter{alxspmode={"B1,allow}} -\ltjsetparameter{alxspmode={"B2,allow}} -\ltjsetparameter{alxspmode={"B3,allow}} -\ltjsetparameter{alxspmode={"B4,allow}} -\ltjsetparameter{alxspmode={"B5,allow}} -\ltjsetparameter{alxspmode={"B6,allow}} -\ltjsetparameter{alxspmode={"B7,allow}} -\ltjsetparameter{alxspmode={"B8,allow}} -\ltjsetparameter{alxspmode={"B9,allow}} -\ltjsetparameter{alxspmode={"BA,allow}} -\ltjsetparameter{alxspmode={"BB,allow}} -\ltjsetparameter{alxspmode={"BC,allow}} -\ltjsetparameter{alxspmode={"BD,allow}} -\ltjsetparameter{alxspmode={"BE,allow}} -\ltjsetparameter{alxspmode={"BF,allow}} -\ltjsetparameter{alxspmode={"C0,allow}} -\ltjsetparameter{alxspmode={"C1,allow}} -\ltjsetparameter{alxspmode={"C2,allow}} -\ltjsetparameter{alxspmode={"C3,allow}} -\ltjsetparameter{alxspmode={"C4,allow}} -\ltjsetparameter{alxspmode={"C5,allow}} -\ltjsetparameter{alxspmode={"C6,allow}} -\ltjsetparameter{alxspmode={"C7,allow}} -\ltjsetparameter{alxspmode={"C8,allow}} -\ltjsetparameter{alxspmode={"C9,allow}} -\ltjsetparameter{alxspmode={"CA,allow}} -\ltjsetparameter{alxspmode={"CB,allow}} -\ltjsetparameter{alxspmode={"CC,allow}} -\ltjsetparameter{alxspmode={"CD,allow}} -\ltjsetparameter{alxspmode={"CE,allow}} -\ltjsetparameter{alxspmode={"CF,allow}} -\ltjsetparameter{alxspmode={"D0,allow}} -\ltjsetparameter{alxspmode={"D1,allow}} -\ltjsetparameter{alxspmode={"D2,allow}} -\ltjsetparameter{alxspmode={"D3,allow}} -\ltjsetparameter{alxspmode={"D4,allow}} -\ltjsetparameter{alxspmode={"D5,allow}} -\ltjsetparameter{alxspmode={"D6,allow}} -\ltjsetparameter{alxspmode={"D7,allow}} -\ltjsetparameter{alxspmode={"D8,allow}} -\ltjsetparameter{alxspmode={"D9,allow}} -\ltjsetparameter{alxspmode={"DA,allow}} -\ltjsetparameter{alxspmode={"DB,allow}} -\ltjsetparameter{alxspmode={"DC,allow}} -\ltjsetparameter{alxspmode={"DD,allow}} -\ltjsetparameter{alxspmode={"DE,allow}} -\ltjsetparameter{alxspmode={"DF,allow}} -\ltjsetparameter{alxspmode={"E0,allow}} -\ltjsetparameter{alxspmode={"E1,allow}} -\ltjsetparameter{alxspmode={"E2,allow}} -\ltjsetparameter{alxspmode={"E3,allow}} -\ltjsetparameter{alxspmode={"E4,allow}} -\ltjsetparameter{alxspmode={"E5,allow}} -\ltjsetparameter{alxspmode={"E6,allow}} -\ltjsetparameter{alxspmode={"E7,allow}} -\ltjsetparameter{alxspmode={"E8,allow}} -\ltjsetparameter{alxspmode={"E9,allow}} -\ltjsetparameter{alxspmode={"EA,allow}} -\ltjsetparameter{alxspmode={"EB,allow}} -\ltjsetparameter{alxspmode={"EC,allow}} -\ltjsetparameter{alxspmode={"ED,allow}} -\ltjsetparameter{alxspmode={"EE,allow}} -\ltjsetparameter{alxspmode={"EF,allow}} -\ltjsetparameter{alxspmode={"F0,allow}} -\ltjsetparameter{alxspmode={"F1,allow}} -\ltjsetparameter{alxspmode={"F2,allow}} -\ltjsetparameter{alxspmode={"F3,allow}} -\ltjsetparameter{alxspmode={"F4,allow}} -\ltjsetparameter{alxspmode={"F5,allow}} -\ltjsetparameter{alxspmode={"F6,allow}} -\ltjsetparameter{alxspmode={"F7,allow}} -\ltjsetparameter{alxspmode={"F8,allow}} -\ltjsetparameter{alxspmode={"F9,allow}} -\ltjsetparameter{alxspmode={"FA,allow}} -\ltjsetparameter{alxspmode={"FB,allow}} -\ltjsetparameter{alxspmode={"FC,allow}} -\ltjsetparameter{alxspmode={"FD,allow}} -\ltjsetparameter{alxspmode={"FE,allow}} -\ltjsetparameter{alxspmode={"FF,allow}} -% -% inhibitxspcode -\ltjsetparameter{jaxspmode={`、,postonly}} -\ltjsetparameter{jaxspmode={`。,postonly}} -\ltjsetparameter{jaxspmode={`,,postonly}} -\ltjsetparameter{jaxspmode={`.,postonly}} -\ltjsetparameter{jaxspmode={`;,postonly}} -\ltjsetparameter{jaxspmode={`?,postonly}} -\ltjsetparameter{jaxspmode={`),postonly}} -\ltjsetparameter{jaxspmode={`(,preonly}} -\ltjsetparameter{jaxspmode={`],postonly}} -\ltjsetparameter{jaxspmode={`[,preonly}} -\ltjsetparameter{jaxspmode={`},postonly}} -\ltjsetparameter{jaxspmode={`{,preonly}} -\ltjsetparameter{jaxspmode={`‘,preonly}} -\ltjsetparameter{jaxspmode={`’,postonly}} -\ltjsetparameter{jaxspmode={`“,preonly}} -\ltjsetparameter{jaxspmode={`”,postonly}} -\ltjsetparameter{jaxspmode={`〔,preonly}} -\ltjsetparameter{jaxspmode={`〕,postonly}} -\ltjsetparameter{jaxspmode={`〈,preonly}} -\ltjsetparameter{jaxspmode={`〉,postonly}} -\ltjsetparameter{jaxspmode={`《,preonly}} -\ltjsetparameter{jaxspmode={`》,postonly}} -\ltjsetparameter{jaxspmode={`「,preonly}} -\ltjsetparameter{jaxspmode={`」,postonly}} -\ltjsetparameter{jaxspmode={`『,preonly}} -\ltjsetparameter{jaxspmode={`』,postonly}} -\ltjsetparameter{jaxspmode={`【,preonly}} -\ltjsetparameter{jaxspmode={`】,postonly}} -\ltjsetparameter{jaxspmode={`—,inhibit}}% U+2014 EM DASH -\ltjsetparameter{jaxspmode={`―,inhibit}}% U+2015 HORIZONTAL BAR -\ltjsetparameter{jaxspmode={`〜,inhibit}}% U+301C WAVE DASH -\ltjsetparameter{jaxspmode={`~,inhibit}}% U+FF5E FULLWIDTH TILDE -\ltjsetparameter{jaxspmode={`…,inhibit}} -\ltjsetparameter{jaxspmode={`¥,inhibit}}% U+00A5 YEN SIGN -\ltjsetparameter{jaxspmode={`¥,inhibit}}% U+FFE5 FULLWIDTH YEN SIGN -\ltjsetparameter{jaxspmode={`°,postonly}} -\ltjsetparameter{jaxspmode={`′,postonly}} -\ltjsetparameter{jaxspmode={`″,postonly}} -% -% inhibitxspcode JIS X 0213 -% -\ltjsetparameter{jaxspmode={`⦅,preonly}} -\ltjsetparameter{jaxspmode={`⦆,postonly}} -\ltjsetparameter{jaxspmode={`⦅,preonly}} -\ltjsetparameter{jaxspmode={`⦆,postonly}} -\ltjsetparameter{jaxspmode={`〘,preonly}} -\ltjsetparameter{jaxspmode={`〙,postonly}} -\ltjsetparameter{jaxspmode={`〖,preonly}} -\ltjsetparameter{jaxspmode={`〗,postonly}} -\ltjsetparameter{jaxspmode={`«,preonly}} -\ltjsetparameter{jaxspmode={`»,postonly}} -\ltjsetparameter{jaxspmode={`〝,preonly}} -\ltjsetparameter{jaxspmode={`〟,postonly}} -\ltjsetparameter{jaxspmode={`‼,postonly}} -\ltjsetparameter{jaxspmode={`⁇,postonly}} -\ltjsetparameter{jaxspmode={`⁈,postonly}} -\ltjsetparameter{jaxspmode={`⁉,postonly}} -\ltjsetparameter{jaxspmode={`¡,preonly}} -\ltjsetparameter{jaxspmode={`¿,preonly}} -\ltjsetparameter{jaxspmode={`ª,postonly}} -\ltjsetparameter{jaxspmode={`º,postonly}} -\ltjsetparameter{jaxspmode={`¹,postonly}} -\ltjsetparameter{jaxspmode={`²,postonly}} -\ltjsetparameter{jaxspmode={`³,postonly}} -\ltjsetparameter{jaxspmode={`€,preonly}} -% -% inhibitxspcode JIS X 0212 -% -%\ltjsetparameter{jaxspmode={`¡,preonly}} -%\ltjsetparameter{jaxspmode={`¿,preonly}} -%\ltjsetparameter{jaxspmode={`º,postonly}} -%\ltjsetparameter{jaxspmode={`ª,postonly}} -\ltjsetparameter{jaxspmode={`™,postonly}} -% -% inhibitxspcode 半角片仮名 -% -\ltjsetparameter{jaxspmode={`。,postonly}} -\ltjsetparameter{jaxspmode={`、,postonly}} -\ltjsetparameter{jaxspmode={`「,preonly}} -\ltjsetparameter{jaxspmode={`」,postonly}} - -\catcode`\_=12 -\directlua{ - s = table.copy(luatexja.stack.charprop_stack_table[0]) - s.kanjiskip = nil; s.xkanjiskip = nil - table.tofile('ltj-kinsoku.lua', s, 'return', false, true, false) -} - -\bye diff --git a/macros/luatex/generic/luatexja/src/ltj-latex.sty b/macros/luatex/generic/luatexja/src/ltj-latex.sty index ca774fe8cd..55fd5d4ebd 100644 --- a/macros/luatex/generic/luatexja/src/ltj-latex.sty +++ b/macros/luatex/generic/luatexja/src/ltj-latex.sty @@ -12,7 +12,7 @@ \def\luatexjalatexLoaded{\endinput} \NeedsTeXFormat{LaTeX2e} -\ProvidesPackage{ltj-latex}[2020-05-17 LaTeX support of LuaTeX-ja] +\ProvidesPackage{ltj-latex}[2020-08-08 LaTeX support of LuaTeX-ja] % cleanup at end of the document %\let\ltj@@orig@end=\@@end @@ -27,45 +27,49 @@ \usepackage{lltjcore} %%% patching commands -\RequirePackage{filehook} - -\def\ltj@pkgpatch@im#1{% - \@ifnextchar[{\ltj@pkgpatch@im@{#1}}{\ltj@pkgpatch@im@{#1}[lltjp-#1]}}%] -\def\ltj@pkgpatch@im@#1[#2]{% - \AtEndOfPackageFile*{#1}{% - \@ifpackageloaded{#2}{}{% - \@namedef{ver@#2.\@pkgextension}{0000/00/00}%dummy - \if\catcode`@=11\let\ltj@temp\relax\else - \edef\ltj@temp{\noexpand\catcode`@=\the\catcode`@\relax}\makeatletter - \fi - \@@input{#2.\@pkgextension}\ltj@temp - }% +\newif\ifltj@ltfilehook@avail +\@ifl@t@r\fmtversion{2020-10-01}{% + \ifnum\patch@level<0\relax \ifnum\patch@level<-6 \ltj@ltfilehook@availtrue\fi + \else\ltj@ltfilehook@availtrue\fi +}{} +\ifltj@ltfilehook@avail + \def\@@ltj@ExecuteAfterPackage#1{\AddToHook{package/after/#1}} + \def\@@ltj@ExecuteBeforePackage#1{\AddToHook{package/before/#1}} + \def\ltj@ExecuteAfterPackage{\@ifstar\@@ltj@ExecuteAfterPackage@star\@@ltj@ExecuteAfterPackage} + \def\@@ltj@ExecuteAfterPackage@star#1#2{% + \@ifpackageloaded{#1}{#2}{\@@ltj@ExecuteAfterPackage{#1}{#2}}% + } + \def\ltj@ExecuteBeforePackage{\@ifstar\@@ltj@ExecuteBeforePackage@star\@@ltj@ExecuteBeforePackage} + \def\@@ltj@ExecuteBeforePackage@star#1#2{% + \@ifpackageloaded{#1}{#2}{\@@ltj@ExecuteBeforePackage{#1}{#2}}% + } +\else + \RequirePackage{filehook} + \let\ltj@ExecuteAfterPackage=\AtEndOfPackageFile + \let\ltj@ExecuteBeforePackage=\AtBeginOfPackageFile +\fi +\def\ltj@pkgpatch@im#1{\@ifnextchar[{\ltj@pkgpatch@im@{#1}}{\ltj@pkgpatch@im@{#1}[lltjp-#1]}}%] +\def\ltj@pkgpatch@im@#1[#2]{\ltj@ExecuteAfterPackage*{#1}{\ltj@pkgpatch@im@@{#2}}} +\def\ltj@pkgpatch@im@@#1{% + \@ifpackageloaded{#1}{}{% + \if\catcode`@=11\let\ltj@temp\relax\else + \edef\ltj@temp{\noexpand\catcode`@=\the\catcode`@\relax}\makeatletter + \fi + \@@input{#1.\@pkgextension}\ltj@temp }% } -\def\ltj@pkgpatch#1{% - \@ifnextchar[{\ltj@pkgpatch@@{#1}}{\ltj@pkgpatch@@{#1}[lltjp-#1]}}%] -\def\ltj@pkgpatch@@#1[#2]{% - \gpreto\@begindocumenthook{% - \@ifpackageloaded{#1}{% - \@ifpackageloaded{#2}{}{\RequirePackage{#2}}% - }{}% +\def\ltj@pkgpatch#1{\@ifnextchar[{\ltj@pkgpatch@{#1}}{\ltj@pkgpatch@{#1}[lltjp-#1]}}%] +\ifltj@ltfilehook@avail + \def\ltj@pkgpatch@@{\AddToHook{env/document/before}[luatexja.autopatch]} +\else + \def\ltj@pkgpatch@@{\gpreto\@begindocumenthook} +\fi +\def\ltj@pkgpatch@#1[#2]{% + \ltj@pkgpatch@@{% + \@ifpackageloaded{#1}{\@ifpackageloaded{#2}{}{\RequirePackage{#2}}}{}% }% } - -%%% default parameters -\directlua{ - local s = kpse.find_file('ltj-kinsoku.lua', 'tex') - luatexja.stack.charprop_stack_table[0] = s and dofile(s) or {} -} - -\ltjsetparameter{kanjiskip=\z@ plus .4pt minus .5pt, - xkanjiskip=.25\zw plus 1pt minus 1pt, - autospacing, autoxspacing, jacharrange={-1}, - yalbaselineshift=\z@, yjabaselineshift=\z@, - jcharwidowpenalty=500, differentjfm=paverage -} - \expandafter\let\csname JY3/mc/m/n/10\endcsname\relax %%% patch for packages @@ -83,7 +87,8 @@ \ltj@pkgpatch@im{unicode-math} \ltj@pkgpatch@im{siunitx} \ltj@pkgpatch@im{microtype} -\ltj@pkgpatch@im{everyshi} + +\ifltj@ltshipout@avail\else\ltj@pkgpatch@im{everyshi}\fi \RequirePackage{lltjp-geometry} diff --git a/macros/luatex/generic/luatexja/src/ltj-plain.sty b/macros/luatex/generic/luatexja/src/ltj-plain.sty index 16e71e1060..58baa9ff9d 100644 --- a/macros/luatex/generic/luatexja/src/ltj-plain.sty +++ b/macros/luatex/generic/luatexja/src/ltj-plain.sty @@ -57,16 +57,8 @@ \def\gt{\tengt\tentgt} \mc -\directlua{ - local s = kpse.find_file('ltj-kinsoku.lua', 'tex') - luatexja.stack.charprop_stack_table[0] = s and dofile(s) or {} -} - -\ltjsetparameter{kanjiskip=\z@ plus .4pt minus .4pt, - xkanjiskip=.25\zw plus 1pt minus 1pt, - autospacing, autoxspacing, jacharrange={-1}, - yalbaselineshift=\z@, yjabaselineshift=\z@, - jcharwidowpenalty=500, differentjfm=paverage, +\ltjsetparameter{% + autospacing, autoxspacing, differentjfm=paverage, jatextfont={0, \tenmin}, jascriptfont={0, \sevenmin}, jascriptscriptfont={0, \fivemin}, } diff --git a/macros/luatex/generic/luatexja/src/ltjclasses.dtx b/macros/luatex/generic/luatexja/src/ltjclasses.dtx index dd156b3393..a868bcb58e 100644 --- a/macros/luatex/generic/luatexja/src/ltjclasses.dtx +++ b/macros/luatex/generic/luatexja/src/ltjclasses.dtx @@ -133,6 +133,7 @@ % 新設の|ptexmin|オプション指定時にのみ行うようにした。 % 句読点を「、」「。」に統一。} % \changes{v1.8e-ltj-19}{2020/07/27}{|everyshi|パッケージへのパッチを別パッケージへ分離。} +% \changes{v1.8e-ltj-20}{2020/08/03}{\LaTeX~2020-10-01への対応.} % \fi % % \iffalse @@ -4706,8 +4707,12 @@ % \section{各種パッケージへの対応} % もともと縦組での利用を想定されていないいくつかのパッケージについて、 % 補正するためのコードを記述しておきます。 -% この節のコードは|filehook|パッケージ(Lua\TeX-ja読み込み時に自動でロードされます) -% の機能を用いています。 +%% この節のコードは|filehook|パッケージ(Lua\TeX-ja読み込み時に自動でロードされます) +%% の機能を用いています。 +% +% [2020-08-03 LTJ] \LaTeX\~2020-10-01に対応するため、Lua\TeX-jaの提供する命令 +% (|filehook|パッケージの命令の別名か、新\LaTeX のフック機構を利用して同様の内容を書いたもの) +% に置き換えました。 % % \subsection{\texttt{ftnright}パッケージ} % 脚注番号の書式が|ftnright|パッケージによって勝手に書き換えられるので、 @@ -4715,8 +4720,8 @@ % \changes{v1.7d}{2017/02/19}{コード追加} % \begin{macrocode} %<*article|report|book> -\AtBeginOfPackageFile*{ftnright}{\let\ltjt@orig@@makefntext=\@makefntext} -\AtEndOfPackageFile*{ftnright}{\let\@makefntext=\ltjt@orig@@makefntext} +\ltj@ExecuteBeforePackage*{ftnright}{\let\ltjt@orig@@makefntext=\@makefntext} +\ltj@ExecuteAfterPackage*{ftnright}{\let\@makefntext=\ltjt@orig@@makefntext} % % \end{macrocode} % diff --git a/macros/luatex/generic/luatexja/src/luatexja-compat.sty b/macros/luatex/generic/luatexja/src/luatexja-compat.sty index f55bf51114..2d6d053979 100644 --- a/macros/luatex/generic/luatexja/src/luatexja-compat.sty +++ b/macros/luatex/generic/luatexja/src/luatexja-compat.sty @@ -65,7 +65,7 @@ \expandafter\let\csname ifltj@in@latex\expandafter\endcsname \csname iftrue\endcsname \NeedsTeXFormat{LaTeX2e} - \ProvidesPackage{luatexja-compat}[2018/03/29 Compatibility with pTeX] + \ProvidesPackage{luatexja-compat}[2020-08-08 Compatibility with pTeX] \fi % % Load core module if not yet. @@ -99,26 +99,10 @@ \def\sjis{\ltj@code@conv{sjis}} \def\ucs{\ltj@code@conv{ucs}} -\def\ltj@code@conv#1{% - \directlua{luatexja.compat.from_#1(token.scan_int())}% -} - -\def\kansuji{% - \directlua{luatexja.compat.to_kansuji(token.scan_int())}% -} +\def\ltj@code@conv#1{\directlua{luatexja.compat.from_#1(token.scan_int())}} +\def\kansuji{\directlua{luatexja.compat.to_kansuji(token.scan_int())}} \define@key[ltj]{japaram}{kansujichar}{\ltj@@set@stack{KSJ}{0}{0x7FFFFFFF}#1 } - -\ltjsetparameter{kansujichar={0,`〇}} -\ltjsetparameter{kansujichar={1,`一}} -\ltjsetparameter{kansujichar={2,`二}} -\ltjsetparameter{kansujichar={3,`三}} -\ltjsetparameter{kansujichar={4,`四}} -\ltjsetparameter{kansujichar={5,`五}} -\ltjsetparameter{kansujichar={6,`六}} -\ltjsetparameter{kansujichar={7,`七}} -\ltjsetparameter{kansujichar={8,`八}} -\ltjsetparameter{kansujichar={9,`九}} \ltj@@decl@array@param{kansujichar} \ifltj@in@latex diff --git a/macros/luatex/generic/luatexja/src/luatexja-core.sty b/macros/luatex/generic/luatexja/src/luatexja-core.sty index 4acc74cb32..fee1a78a2f 100644 --- a/macros/luatex/generic/luatexja/src/luatexja-core.sty +++ b/macros/luatex/generic/luatexja/src/luatexja-core.sty @@ -65,7 +65,7 @@ \expandafter\let\csname ifltj@in@latex\expandafter\endcsname \csname iftrue\endcsname \NeedsTeXFormat{LaTeX2e} - \ProvidesPackage{luatexja-core}[2020-07-27 Core of LuaTeX-ja] + \ProvidesPackage{luatexja-core}[2020-08-08 Core of LuaTeX-ja] \fi % %% Load prerequisite packages. @@ -80,7 +80,6 @@ \RequirePackage{xkeyval} [2012/10/14] % v2.6b \RequirePackage{etoolbox} \RequirePackage{lltjp-atbegshi} - \AtBeginShipoutInit \IfFileExists{everyhook.sty}{\RequirePackage{everyhook}\ltj@everyhook@availtrue}{} \else %<*!LaTeX> \input luatexbase.sty @@ -88,8 +87,6 @@ \input ltxcmds.sty \input pdftexcmds.sty \input xkeyval - \input lltjp-atbegshi.sty - \AtBeginShipoutInit \fi % \endlinechar=-1 % @@ -619,7 +616,7 @@ %%%% \hbox, \vbox, \vtop \setbox\z@\hbox{% - \primitive\everymath{} + \primitive\everymath{}% $\directlua{% This value depends on the version of LuaTeX. luatexja.stack.mmode = -tex.nest[tex.nest.ptr].mode }$% @@ -655,8 +652,6 @@ \protected\def\ltj@@reset@badness{\luafunction\ltj@@reset@badness@inner} -\AtBeginShipout{\directlua{luatexja.direction.finalize()}} - %%%% \raise, \lower, \moveleft, \moveright \newluafunction\ltj@@lua@raisebox@inner \directlua{ @@ -686,6 +681,7 @@ %%%%\vsplit \let\ltj@@orig@vsplit=\vsplit \protected\def\vsplit{\directlua{luatexja.direction.vsplit()}} + %%%% \vcenter \let\ltj@@orig@vcenter=\vcenter \protected\def\vcenter{\ltj@afterbox\ltj@@vcenter\vbox} @@ -693,6 +689,21 @@ \ltj@@lua@raisebox\ltj@@orig@vcenter{\box\ltj@afbox}% } +%%%% \shipout +\newluafunction\ltj@@lua@shipout@inner +\directlua{ + local t = lua.get_functions_table() + t[\the\ltj@@lua@shipout@inner]=luatexja.direction.shipout +} +\protected\luadef\ltj@@lua@shipout\ltj@@lua@shipout@inner +\protected\def\ltj@shipout{\ltj@afterbox\ltj@@lua@shipout} +\ifprimitive\shipout\let\shipout\ltj@shipout\fi +\ifcsname tex_shipout:D\endcsname + \expandafter\let\csname tex_shipout:D\endcsname\ltj@shipout +\fi +\ifdefined\AtBeginShipoutOriginalShipout + \let\AtBeginShipoutOriginalShipout\ltj@shipout +\fi %%%% \unhbox and \unvbox \newluafunction\ltj@@lua@unboxcheckdir@inner \directlua{ @@ -745,6 +756,7 @@ %%------------------ Load module for the format +\directlua{luatexja.load_kinsoku()} \ifltj@in@latex %<*LaTeX> \RequirePackage{ltj-latex} \else\ifltj@in@plain %<*plain> diff --git a/macros/luatex/generic/luatexja/src/luatexja.lua b/macros/luatex/generic/luatexja/src/luatexja.lua index 988f51955e..074d050276 100644 --- a/macros/luatex/generic/luatexja/src/luatexja.lua +++ b/macros/luatex/generic/luatexja/src/luatexja.lua @@ -347,6 +347,22 @@ do end end +do + local cache_ver = 1 -- must be same as ltj-kinsoku.tex + local cache_outdate_fn = function (t) return t.version~=cache_ver end + local t = ltjs.charprop_stack_table + function luatexja.load_kinsoku() + for i,_ in pairs(t) do t[i]=nil end + local kinsoku = ltjb.load_cache('ltj-kinsoku_default',cache_outdate_fn) + if kinsoku and kinsoku[1] then + t[0] = kinsoku[1] + else + t[0] = {}; tex.print(cat_lp, '\\input ltj-kinsoku.tex\\relax') + end + luatexja.load_kinsoku=nil + end +end + -- debug do @@ -372,8 +388,7 @@ local function debug_show_node_X(p,print_fn, limit, inner_depth) local k = prefix local s local pt, pic = node_type(p.id), (has_attr(p, attr_icflag) or 0) % icflag_table.PROCESSED_BEGIN_FLAG - local base = prefix .. string.format('%X', pic) - .. ' ' .. pt .. ' ' .. tostring(p.subtype) .. ' ' + local base = prefix .. string.format('%X', pic) .. ' ' .. pt .. ' ' .. tostring(p.subtype) .. ' ' if pt == 'glyph' then s = base .. ' ' .. (p.char<0xF0000 and utfchar(p.char) or '') @@ -505,6 +520,9 @@ local function debug_show_node_X(p,print_fn, limit, inner_depth) for i=1,#p.data do print_fn(s .. ' [' .. i .. '] = ' .. tostring(p.data[i].csname)) end + elseif p.subtype==16 then + s = s .. ' mode=' .. p.mode .. ', literal="' .. p.data .. '"' + print_fn(s) else print_fn(s) end diff --git a/macros/luatex/generic/luatexja/src/luatexja.sty b/macros/luatex/generic/luatexja/src/luatexja.sty index d51b575f76..0f16a8c190 100644 --- a/macros/luatex/generic/luatexja/src/luatexja.sty +++ b/macros/luatex/generic/luatexja/src/luatexja.sty @@ -35,13 +35,13 @@ \expandafter\let\csname ifltj@in@latex\expandafter\endcsname \csname iftrue\endcsname \NeedsTeXFormat{LaTeX2e} - \ProvidesPackage{luatexja}[2020-08-02 Japanese Typesetting with Lua(La)TeX] + \ProvidesPackage{luatexja}[2020-08-08 Japanese Typesetting with Lua(La)TeX] \DeclareOption{disablejfam}{\ltj@disablejfamtrue} \DeclareOption*{} \ProcessOptions\relax \fi % %%%% VERSION -\def\LuaTeXjaversion{20200802.0} +\def\LuaTeXjaversion{20200808.0} \directlua{require('ltj-unicode-ccfix.lua')}% catcode of ideographs diff --git a/macros/luatex/generic/luatexja/src/patches/lltjdefs.sty b/macros/luatex/generic/luatexja/src/patches/lltjdefs.sty index e0dba37547..76a3147036 100644 --- a/macros/luatex/generic/luatexja/src/patches/lltjdefs.sty +++ b/macros/luatex/generic/luatexja/src/patches/lltjdefs.sty @@ -3,12 +3,10 @@ % \NeedsTeXFormat{LaTeX2e} -\ProvidesPackage{lltjdefs}[2020/03/16 Default font settings of LuaTeX-ja] +\ProvidesPackage{lltjdefs}[2020-08-08 Default font settings of LuaTeX-ja] \ifdefined\ltj@stdmcfont\else\def\ltj@stdmcfont{file:HaranoAjiMincho-Regular.otf}\fi \ifdefined\ltj@stdgtfont\else\def\ltj@stdgtfont{file:HaranoAjiGothic-Medium.otf}\fi -%\ifdefined\ltj@stdmcfont\else\def\ltj@stdmcfont{IPAExMincho}\fi -%\ifdefined\ltj@stdgtfont\else\def\ltj@stdgtfont{IPAExGothic}\fi \ifdefined\ltj@stdyokojfm\else\def\ltj@stdyokojfm{ujis}\fi \ifdefined\ltj@stdtatejfm\else\def\ltj@stdtatejfm{ujisv}\fi \InputIfFileExists{luatexja.cfg}{% @@ -34,11 +32,9 @@ \newcommand\kanjiencodingdefault{JY3} \newcommand\kanjifamilydefault{\mcdefault} \newcommand\kanjiseriesdefault{\mddefault} -\ifdefined\@rmfamilyhook - %% LaTeX 2020-02-02 +\ifdefined\@rmfamilyhook%% LaTeX 2020-02-02 \newcommand\kanjishapedefault{\shapedefault} -\else - %% LaTeX 2019-10-01 +\else %% LaTeX 2019-10-01 \newcommand\kanjishapedefault{\updefault} \fi @@ -78,8 +74,7 @@ \DeclareOldFontCommand{\gt}{\normalfont\gtfamily}{} \unless\ifltj@disablejfam - \DeclareSymbolFont{mincho}{JY3}{mc}{m}{n} - \jfam\symmincho + \DeclareSymbolFont{mincho}{JY3}{mc}{m}{n}\jfam\symmincho \SetSymbolFont{mincho}{bold}{JY3}{gt}{m}{n} \DeclareSymbolFontAlphabet{\mathmc}{mincho} \DeclareMathAlphabet{\mathgt}{JY3}{gt}{m}{n} @@ -132,6 +127,8 @@ \expandafter\patchcmd\csname em \endcsname{\itshape}{\gtfamily\itshape}{}{} \def\eminnershape{\mcfamily \upshape} +\ltjsetparameter{autospacing, autoxspacing, differentjfm=paverage} + \ltjdefcharrange{1}{"80-"36F, "1E00-"1EFF} \ltjdefcharrange{2}{"370-"4FF, "1F00-"1FFF} \ltjdefcharrange{3}{% diff --git a/macros/luatex/generic/luatexja/src/patches/lltjp-atbegshi.sty b/macros/luatex/generic/luatexja/src/patches/lltjp-atbegshi.sty index ecdfd48c22..8512023874 100644 --- a/macros/luatex/generic/luatexja/src/patches/lltjp-atbegshi.sty +++ b/macros/luatex/generic/luatexja/src/patches/lltjp-atbegshi.sty @@ -2,23 +2,40 @@ % lltjp-atbegshi.sty % -\ifdefined\NeedsTeXFormat - \NeedsTeXFormat{LaTeX2e} - \ProvidesPackage{lltjp-atbegshi}[2020-07-30 Patch to atbegshi for LuaTeX-ja] - \RequirePackage{atbegshi} -\else - \input atbegshi.sty -\fi +\newif\ifltj@ltshipout@avail +\NeedsTeXFormat{LaTeX2e} +\ProvidesPackage{lltjp-atbegshi}[2020-08-08 Patching \string\shipout\space hooks for LuaTeX-ja] +\@ifl@t@r\fmtversion{2020-10-01}{% + \ifnum\patch@level<0\relax \ifnum\patch@level<-6 \ltj@ltshipout@availtrue\fi + \else\ltj@ltshipout@availtrue\fi +}{} +\ifltj@ltshipout@avail\else\RequirePackage{atbegshi}\fi + +% concept: execute all hooks inside yoko direction \vbox -%-------------------------------------- -% following codes are almost copied from -% pxatbegshi.sty 2019/09/07 v0.5 (in platex-tools bundle, by H. Yamashita). +\ifltj@ltshipout@avail +%<*ltshipout>----------------------------------- +% +\RequirePackage{expl3} +\ExplSyntaxOn\makeatletter +\box_new:N \l__platex_shipout_dummy_box +\pretocmd {\__shipout_execute_cont:} + {\tex_setbox:D \l__platex_shipout_dummy_box \tex_vbox:D \c_group_begin_token \yoko } {} {} +\apptocmd {\__shipout_execute_cont:} {\c_group_end_token} {} {} +\ExplSyntaxOff +%----------------------------------- + +\else +\AtBeginShipoutInit +%<*atbegshi>------------------------------------- +% patching atbegshi.sty +%%% following codes are almost copied from +%%% pxatbegshi.sty 2019/09/07 v0.5 (in platex-tools bundle, by H. Yamashita). %% internal macros are locally effective \begingroup -%--------------------------------------- helpers - +% helpers %% unique tokens \def\pxabgs@mark{\pxabgs@mark@} \def\pxabgs@fin{\pxabgs@fin@} @@ -27,29 +44,25 @@ \def\pxabgs@patch@cmd#1#2#3{% \ifx#1\relax\else \def\pxabgs@next##1#2##2\pxabgs@mark##3\pxabgs@fin{% - \ifx\pxabgs@mark##3\pxabgs@mark - \let#1\relax + \ifx\pxabgs@mark##3\pxabgs@mark\let#1\relax \else - \def\pxabgs@fragment{##2}% - \def#1{##1#3##2}% + \def\pxabgs@fragment{##2}\def#1{##1#3##2}% \fi}% \expandafter\pxabgs@next#1\pxabgs@mark#2\pxabgs@mark\pxabgs@fin \fi } -%--------------------------------------- - -% concept: execute all hooks inside yoko direction \vbox - % prepare -\let\pxabgs@AtBegShi@Output\AtBegShi@Output +\ifdefined\AtBegShi@Output + \let\pxabgs@AtBegShi@Output\AtBegShi@Output +\else\let\pxabgs@AtBegShi@Output\relax\fi % try first patch \pxabgs@patch@cmd\pxabgs@AtBegShi@Output {\let\AtBegShi@OrgProtect\protect}% {\setbox8\vbox\bgroup\yoko\let\AtBegShi@OrgProtect\protect} \pxabgs@patch@cmd\pxabgs@AtBegShi@Output - {\AtBeginShipoutOriginalShipout\box\AtBeginShipoutBox}% - {\AtBeginShipoutOriginalShipout\box\AtBeginShipoutBox\egroup} + {\AtBeginShipoutOriginalShipout\box\AtBeginShipoutBox}% + {\AtBeginShipoutOriginalShipout\box\AtBeginShipoutBox\egroup} \pxabgs@patch@cmd\pxabgs@AtBegShi@Output {% \begingroup @@ -75,5 +88,6 @@ \endgroup %% internal macros are no longer effective - +%------------------------------------- +\fi \endinput diff --git a/macros/luatex/generic/luatexja/src/patches/lltjp-geometry.sty b/macros/luatex/generic/luatexja/src/patches/lltjp-geometry.sty index 9b8f1fc7a1..eba249fa5e 100644 --- a/macros/luatex/generic/luatexja/src/patches/lltjp-geometry.sty +++ b/macros/luatex/generic/luatexja/src/patches/lltjp-geometry.sty @@ -3,7 +3,7 @@ % \NeedsTeXFormat{LaTeX2e} -\ProvidesPackage{lltjp-geometry}[2020/02/25 Patch to geometry for LuaTeX-ja with vertical writing mode] +\ProvidesPackage{lltjp-geometry}[2020-08-05 Patch to geometry for LuaTeX-ja with vertical writing mode] \RequirePackage{expl3} \ifdefined\if@ltj@@geometry@tate\expandafter\endinput\fi \newif\if@ltj@@geometry@tate @@ -29,33 +29,65 @@ } \fi -\RequirePackage{filehook} +%============================================ +\unless\ifdefined\ltj@ExecuteAfterPackage +\expandafter\newif\csname ifltj@ltfilehook@avail\endcsname +\@ifl@t@r\fmtversion{2020-10-01}{% + \ifnum\patch@level<0\relax \ifnum\patch@level<-6 \ltj@ltfilehook@availtrue\fi + \else\ltj@ltfilehook@availtrue\fi +}{} +\ifltj@ltfilehook@avail + \def\@@ltj@ExecuteAfterPackage#1{\AddToHook{package/after/#1}} + \def\@@ltj@ExecuteBeforePackage#1{\AddToHook{package/before/#1}} + \def\ltj@ExecuteAfterPackage{\@ifstar\@@ltj@ExecuteAfterPackage@star\@@ltj@ExecuteAfterPackage} + \def\@@ltj@ExecuteAfterPackage@star#1#2{% + \@ifpackageloaded{#1}{#2}{\@@ltj@ExecuteAfterPackage{#1}{#2}}% + } + \def\ltj@ExecuteBeforePackage{\@ifstar\@@ltj@ExecuteBeforePackage@star\@@ltj@ExecuteBeforePackage} + \def\@@ltj@ExecuteBeforePackage@star#1#2{% + \@ifpackageloaded{#1}{#2}{\@@ltj@ExecuteBeforePackage{#1}{#2}}% + } +\else + \RequirePackage{filehook} + \let\ltj@ExecuteAfterPackage=\AtEndOfPackageFile + \let\ltj@ExecuteBeforePackage=\AtBeginOfPackageFile +\fi +\fi +%============================================ + \RequirePackage{etoolbox} \newif\ifGm@ltj@layoutswitch \let\orig@PackageWarningNoLine=\PackageWarningNoLine % define ifGm@swap@papersize if it is undefined \expandafter\newif\csname ifGm@swap@papersize\endcsname -\AtBeginOfPackageFile{geometry}{% +\ExplSyntaxOn +\ltj@ExecuteBeforePackage{geometry}{% \edef\Gm@ltj@topskip{\the\topskip} \edef\Gm@ltj@headsep{\the\headsep} \edef\Gm@ltj@footskip{\the\footskip} +\bool_set_false:N \l_tmpa_bool \ifluatex - \ifnum\ltjgetparameter{direction}=3 \@ltj@@geometry@tatetrue\fi + \ifnum\ltjgetparameter{direction}=3 \bool_set_true:N \l_tmpa_bool \fi \else - \@gobble\iftrue\csname iftdir\endcsname\@ltj@@geometry@tatetrue\fi + \@gobble\iftrue\csname iftdir\endcsname \bool_set_true:N \l_tmpa_bool \fi \fi -\csname tl_if_in:NnT\endcsname\@begindocumenthook{\tate}{\@ltj@@geometry@tatetrue} -\if@ltj@@geometry@tate +\ifltj@ltfilehook@avail + \prop_map_inline:Nn \g__hook_begindocument_code_prop + { \tl_if_in:nnT {#2} {\tate} {\bool_set_true:N \l_tmpa_bool} } +\else + \tl_if_in:NnT \@begindocumenthook {\tate} {\bool_set_true:N \l_tmpa_bool} +\fi +\bool_if:NT \l_tmpa_bool { \if@ltj@@geometry@forceoff \@ltj@@geometry@tatefalse \else \let\PackageWarningNoLine\@gobbletwo% 警告抑止 \fi -\fi } - -\AtEndOfPackageFile{geometry}{% +} +\ExplSyntaxOff +\ltj@ExecuteAfterPackage{geometry}{% \let\PackageWarningNoLine=\orig@PackageWarningNoLine \if@ltj@@geometry@tate \let\PackageWarningNoLine=\orig@PackageWarningNoLine -- cgit v1.2.3