From 96f9362fc3e3bb70fa2411c62418c42d9acda4d7 Mon Sep 17 00:00:00 2001 From: Norbert Preining Date: Mon, 18 Nov 2019 03:01:03 +0000 Subject: CTAN sync 201911180301 --- macros/luatex/generic/luatexja/README | 17 +- macros/luatex/generic/luatexja/doc/luatexja-en.pdf | Bin 504977 -> 530396 bytes macros/luatex/generic/luatexja/doc/luatexja-ja.pdf | Bin 895214 -> 935893 bytes .../generic/luatexja/doc/luatexja-zhfonts.pdf | Bin 563358 -> 0 bytes .../generic/luatexja/doc/luatexja-zhfonts.tex | 280 -------------- macros/luatex/generic/luatexja/doc/luatexja.dtx | 283 +++++++++----- .../luatexja/src/addons/luatexja-fontspec-25c.sty | 357 ------------------ .../luatexja/src/addons/luatexja-fontspec-26h.sty | 412 --------------------- .../luatexja/src/addons/luatexja-fontspec-27c.sty | 8 +- .../luatexja/src/addons/luatexja-fontspec.sty | 8 +- .../luatexja/src/addons/luatexja-preset.sty | 13 + macros/luatex/generic/luatexja/src/ltj-base.lua | 6 +- macros/luatex/generic/luatexja/src/ltj-jfont.lua | 22 +- .../luatex/generic/luatexja/src/ltj-lotf_aux.lua | 27 +- macros/luatex/generic/luatexja/src/ltj-rmlgbm.lua | 4 +- macros/luatex/generic/luatexja/src/ltjclasses.dtx | 74 ++-- macros/luatex/generic/luatexja/src/luatexja.sty | 2 +- .../luatexja/src/patches/lltjp-fontspec.sty | 76 +++- .../luatexja/src/patches/lltjp-microtype.sty | 42 ++- 19 files changed, 384 insertions(+), 1247 deletions(-) delete mode 100644 macros/luatex/generic/luatexja/doc/luatexja-zhfonts.pdf delete mode 100644 macros/luatex/generic/luatexja/doc/luatexja-zhfonts.tex delete mode 100644 macros/luatex/generic/luatexja/src/addons/luatexja-fontspec-25c.sty delete mode 100644 macros/luatex/generic/luatexja/src/addons/luatexja-fontspec-26h.sty (limited to 'macros/luatex') diff --git a/macros/luatex/generic/luatexja/README b/macros/luatex/generic/luatexja/README index 5d4bb017e1..5086578af9 100644 --- a/macros/luatex/generic/luatexja/README +++ b/macros/luatex/generic/luatexja/README @@ -1,4 +1,4 @@ -The LuaTeX-ja Package 20190926.0 +The LuaTeX-ja Package 20191117.0 -------------------------------- Copyright (c) 2011--2019 The LuaTeX-ja project License: modified BSD (see COPYING) @@ -23,7 +23,7 @@ Installation 0. Please make sure that your TeX distribution is up-to-date. This version of LuaTeX-ja requires - LuaTeX 1.0.0 or later - - luaotfload (v2.98 or later recommended) + - luaotfload (v3.1 or later recommended) - adobemapping (Adobe CMap files) - everysel package - etoolbox package @@ -34,8 +34,8 @@ Installation - stfloats package - IPAex fonts (http://ipafont.ipa.go.jp/) - LuaHBTeX and HarfTeX are not supported for now. With these engines, - one might be able to typeset documents without an error, but with + Using LuaTeX-ja with LuaHBTeX is not well tested. + One might be able to typeset documents without an error, but with some unwanted results. 1. If you are using TeX Live 2019 or later, you can install LuaTeX-ja via tlmgr. @@ -43,9 +43,9 @@ Installation 2. If you must/want to install manually: a. Download the source archive from CTAN, - or tagged as 20190926.0 in the Git repository by + or tagged as 20191117.0 in the Git repository by + ;a=snapshot;h=refs/tags/20191117.0;sf=tgz> b. Extract the archive and process following three files by LuaLaTeX to generate classes for Japanese typesetting: @@ -79,6 +79,9 @@ Simply loading luatexja.sty by \input or \usepackage does the minimal setting. Notes ----- +* We don't recommend defining a Japanese font with HarfBuzz, by specifying + "Renderer=..." (fontspec) or "mode=harf" (otherwise). + * This archive contains four .{dtx,ins} pairs: src/ltjclasses.{ins,dtx}, src/ltjltxdoc.{ins,dtx} src/ltjsclasses.{ins,dtx}, doc/luatexja.{ins,dtx} @@ -90,4 +93,4 @@ Notes * src/*.{ins.dtx} and src/ltj-kinsoku_make.tex are not needed in regular use. -Last commit date: Thu Sep 26 19:19:46 2019 +0900 +Last commit date: Sun Nov 17 18:30:58 2019 +0900 diff --git a/macros/luatex/generic/luatexja/doc/luatexja-en.pdf b/macros/luatex/generic/luatexja/doc/luatexja-en.pdf index 28016a4d7d..b23ce9bcd2 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 b40752576c..52ede1e3ec 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-zhfonts.pdf b/macros/luatex/generic/luatexja/doc/luatexja-zhfonts.pdf deleted file mode 100644 index 6b6ee65fdf..0000000000 Binary files a/macros/luatex/generic/luatexja/doc/luatexja-zhfonts.pdf and /dev/null differ diff --git a/macros/luatex/generic/luatexja/doc/luatexja-zhfonts.tex b/macros/luatex/generic/luatexja/doc/luatexja-zhfonts.tex deleted file mode 100644 index e220c0de05..0000000000 --- a/macros/luatex/generic/luatexja/doc/luatexja-zhfonts.tex +++ /dev/null @@ -1,280 +0,0 @@ -\documentclass[DIV=13]{article} -\usepackage{typearea} -\usepackage{hologo} -\makeatletter -\def\verbatim{\@verbatim \frenchspacing\@vobeyspaces\luatexlocalleftbox{\hskip3\zw} \@xverbatim} -\makeatother -\def\pTeX{p\TeX} -\def\LuaTeX{Lua\TeX} -\def\XeTeX{\hologo{XeTeX}} -\def\ConTeXt{Con\TeX t} -\usepackage{booktabs} -\usepackage{multicol} -\usepackage{indentfirst} -\usepackage{luatexja-fontspec} -\parindent2\zw -\linespread{1.25} -\setmainjfont{FandolSong} -\title{\textbf{\LuaTeX-ja简体中文字体配置}} -\author{马起园\hskip2.5\zw 苏 杰} -\date{2013年5月} -\begin{document} -\maketitle -\section{\LuaTeX-ja项目简介} -\LuaTeX-ja项目旨在将\pTeX 处理汉字的机制及相关功能移植到\LuaTeX 下,当前项目 -的成员有:北川弘典、前田一贵、八登崇之、黑木裕介 、阿部纪行、山本宗宏、本田知 -亮、斋藤修三郎和马起园。 - -\LuaTeX 虽然在编码上支持Unicode,但并不能直接处理汉字断行以及禁则应用,而 -在\pTeX 系列中则能够处理断行并应用禁则,但并不支持PDF输出。\LuaTeX 下处理 -汉字的断行和应用禁则需要使用其内建的诸多callback来进行。\pTeX 扩展TFM为JFM, -但是JFM抽象程度更高,该文件涉及到的内容是字体的标点压缩,可以用于多个汉字字体。 - -当前版本的\LuaTeX-ja 可以应用于\TeX\ Live和W32\TeX,在旧版本MikTeX下使用会 -出问题,因为MikTeX下的\LuaTeX 存在编译上的bug。 - -\section{字体使用} - -\subsection{关于\LuaTeX-ja的字体调用} - -\XeTeX 在调用字体的时候需要使用freetype和fontconfig库,所以需要更新字体缓 -存,但是在\LuaTeX 下就不太一样。\LuaTeX 只需要在初次使用的时候刷新字体数据 -库即可(此数据库是一个lua文件)。\LuaTeX 下的字体缓存实际上是将字体的各种 -信息导出并保存的文件,在调用一个新字体的时候会生成一个。\LuaTeX 对于字体的 -处理并没有使用freetype,而是使用了fontforge,不过可能由于该库的接口有一些 -问题,导致部分字体无法在\LuaTeX 下使用。 - -在使用\LuaTeX-ja的时候,需要先刷新字体数据库,该命令的使用方法如下: -\begin{verbatim} -Usage: mkluatexfontdb [OPTION]... - -Rebuild the LuaTeX font database. - -Valid options: - -f --force force re-indexing all fonts - -q --quiet don't output anything - -v --verbose=LEVEL be more verbose (print the searched directories) - -vv print the loaded fonts - -vvv print all steps of directory searching - -V --version print version and exit - -h --help print this message -\end{verbatim} - -在新版本的\texttt{luaotfload}包中,提供了新的命令\texttt{luaotfload-tool}, -但如上所述的\texttt{mkluatexfontdb}依然能够使用。 - -又是可能遇到通不过的字体,需要将这个字体的绝对路径添加到\texttt{luaotfload-blacklist.cnf}中, -这个文件的内容如下: -\begin{verbatim} -% Takes ages to load -LastResort.ttf % a MacOSX font, but also available for free from unicode.org -% Segfaults under LuaTeX 0.76 -lingoes.ttf -% http://tug.org/pipermail/luatex/2013-May/004239.html -Diablindall.ttf -spltfgbd.ttf -spltfgbi.ttf -spltfgit.ttf -spltfgrg.ttf -\end{verbatim} - -如果你在\texttt{texmf-local}下添加了某些私有字体,请及时运行\texttt{texhash}, -这样能够方便在运行\LuaTeX 的时候能够通过kpathsea库找到他们。 - -Lua\TeX 调用TrueType和OpenType字体并没有固定的方式,\XeTeX 使用了固定的接口, -而Lua\TeX 需要使用luaotfload包来进行字体的调用。这两种字体一般都有高级特性, -在\TeX\ Live或者W32\TeX 中可以使用\texttt{otfinfo}命令来查看相关的信息: -\begin{verbatim} -'Otfinfo' reports information about an OpenType font to standard output. -Options specify what information to print. - -Usage: otfinfo [-sfzpg | OPTIONS] [OTFFILES...] - -Query options: - -s, --scripts Report font's supported scripts. - -f, --features Report font's GSUB/GPOS features. - -z, --optical-size Report font's optical size information. - -p, --postscript-name Report font's PostScript name. - -a, --family Report font's family name. - -v, --font-version Report font's version information. - -i, --info Report font's names and designer/vendor info. - -g, --glyphs Report font's glyph names. - -t, --tables Report font's OpenType tables. - -T, --dump-table NAME Output font's 'NAME' table. - -Other options: - --script=SCRIPT[.LANG] Set script used for --features [latn]. - -V, --verbose Print progress information to standard error. - -h, --help Print this message and exit. - -q, --quiet Do not generate any error messages. - --version Print version number and exit. - -Report bugs to . -\end{verbatim} - -\subsection{使用字体的方法} - -目前\LuaTeX-ja支持在plain \TeX 和\LaTeX 下使用。如果你使用texinfo,那么很 -不幸,你不太可能使用\LuaTeX-ja来处理中文,因为texinfo是针对pdf\TeX 设计的, -在\LuaTeX 下使用已经有了一定的不兼容现象,即使完全兼容也需要对texinfo中的 -字体配置进行调整,如果你急需使用texinfo来处理中文,请尝试W32\TeX 下的texinfo, -这个发行版中的texinfo已经打了补丁。对于\ConTeXt 用户,请使用李延瑞的zhfonts模块 -\footnote{见https://github.com/liyanrui/zhfonts}。 - -在plain \TeX 中使用Lua\TeX-ja可以在源文件中写入: -\begin{verbatim} -\input luatexja-core.sty -\end{verbatim} - -Lua\TeX-ja移植的了\verb!\jfont!命令,在plain \TeX 下需要通过该命令来 -控制输出的汉字字体,例如: -\begin{verbatim} -\jfont\song={name:SimSun:jfm=banjiao} at 10pt -\song 我能吞下玻璃而不伤身体。 -\end{verbatim} - -上文中的\verb!jfm=banjiao!使用来控制标点压缩的,如果此项未设定,则 -使用默认的\verb!ujis!压缩模式,对于简体中文来讲,可用的模式有: -\texttt{quanjiao,banjiao,kaiming, CCT}。 - -而在\LaTeX 下使用则较为简单,使用: -\begin{verbatim} -\usepackage{luatexja-fontspec} -\end{verbatim} -这个包对fontspec包进行了封装,令其能够较为便利地设定汉字字体。 -这个包提供的命令如下: -\begin{table}[htbp] - \centering - \begin{tabular}{ll} - \toprule - \multicolumn{1}{c}{\textbf{命令}} & \multicolumn{1}{c}{\textbf{用途}} \\ - \midrule - \verb!\jfontspec! & 改变当前汉字字体 \\ - \verb!\setmainjfont! & 设定文档主汉字字体 \\ - \verb!\setsansjfont! & 设定文档的无衬线汉字字体(黑体) \\ - \verb!\newjfontfamily! & 设定新的汉字字体族命令 \\ - \verb!\newjfontface! & 设定新的汉字字体命令 \\ - \verb!\defaultjfontfeatures! & 默认汉字字体的特性 \\ - \verb!\addjfontfeatures! & 设定当前字体的特性 \\ - \bottomrule - \end{tabular}% -\end{table}% - -\subsection{不可用字体系列} - -中文字体在丰度上与日文字体对比并不占优势,所以中文\TeX 文档在使用使用字体 -上没有太大变化。当你想在\LuaTeX-ja下是有部分特色字体的时候,请做好此种字体 -可能无法使用的准备。目前报错明显的字体有数个: -\begin{itemize} -\item 灵格斯词典附带的音标字体,这些字体会安装到系统字体文件夹下,在更新 - 字体数据库的时候会出现程序崩溃的情况,这是字体本身的原因,需要添加到黑名单中 -\item 康熙字典体,这是中国大陆一位业余字体设计者所设计的字体,由于该作者 - 缺乏相关技术知识,导致此字体的CMap出错,无论是完全版还是试用版都会出现 - 问题,此外该字体的boundingbox也是错误的,在嵌入pdf文档中十分影响阅读 -\item 信黑体,这个字体也是CMap的问题,无法使用 -\end{itemize} -\subsection{Fandol字体系列} -Fandol系列字体由本文档两位作者联合开发,含有数种样式。 -该套字体可以在TeXLive下进行更新。 - -\begin{table}[htbp] - \centering - \begin{tabular}{lll} - \toprule - \multicolumn{1}{c}{\textbf{字体名}} & \multicolumn{1}{c}{\textbf{文件名}} & \multicolumn{1}{c}{\textbf{样例}} \\ - \midrule - FandolSong-Regular & \texttt{FandolSong-Regular.otf} & {我能吞下玻璃而不伤身体} \\ - FandolSong-Bold & \texttt{FandolSong-Bold.otf} & {\bf 我能吞下玻璃而不伤身体} \\ - FandolHei-Regular & \texttt{FandolHei-Regular.otf} & {\jfontspec{FandolHei-Regular}我能吞下玻璃而不伤身体} \\ - FandolHei-Bold & \texttt{FandolHei-Bold.otf} & {\jfontspec{FandolHei-Bold}我能吞下玻璃而不伤身体} \\ - FandolFang-Regular & \texttt{FandolFang-Regular.otf} & {\jfontspec{FandolFang-Regular}我能吞下玻璃而不伤身体}\\ - FandolKai-Regular & \texttt{FandolKai-Regular} & {\jfontspec{FandolKai-Regular}我能吞下玻璃而不伤身体}\\ - \bottomrule - \end{tabular}% -\end{table}% - - -\subsection{华文字体系列} -在微软提供的Office套装中附带了一定数量的中文字体, -这些字体是常州华文印刷新技术有限公司制造的。 -这些字体安装在系统字体文件夹下,在使用\LuaTeX-ja 的时候 -可以酌情使用。在本文档中,我们推荐简体中文用户使用 -此套字体,从使用率上看,各大学都会装有微软的操作系统 -和微软的Office,可以说已经相当普及,故做推荐。 - -\begin{table}[htbp] - \centering - \begin{tabular}{llll} - \toprule - \multicolumn{1}{c}{\textbf{字体名}} & \multicolumn{1}{c}{\textbf{文件名}} & \multicolumn{1}{c}{\textbf{PostScript名}} & \multicolumn{1}{c}{\textbf{样例}} \\ - \midrule - 华文宋体 & \texttt{STSONG.TTF} & STSong & {\jfontspec{STSong}我能吞下玻璃而不伤身体} \\ - 华文中宋 & \texttt{STZHONGS.TTF} & STZhongsong & {\jfontspec{STZhongsong}我能吞下玻璃而不伤身体} \\ - 华文细黑 & \texttt{STXIHEI.TTF} & STXihei & {\jfontspec{STXihei}我能吞下玻璃而不伤身体} \\ - 华文楷体 & \texttt{STKAITI.TTF} & STKaiti & {\jfontspec{STKaiti}我能吞下玻璃而不伤身体} \\ - 华文仿宋 & \texttt{STFANGSO.TTF} & STFangsong & {\jfontspec{STFangsong}我能吞下玻璃而不伤身体} \\ - \bottomrule - \end{tabular}% -\end{table} - -\subsection{中易字体系列} -在Windows系统简体中文版中,附带了数种中文字体。 -这些字体为中易中标电子信息技术有限公司制造的。 -同我们强烈推荐的第一种方案比较,没有中宋。 -如果按照CCT的传统,一般使用黑体替换。 - -\begin{table}[htbp] - \centering - \begin{tabular}{llll} - \toprule - \multicolumn{1}{c}{\textbf{字体名}} & \multicolumn{1}{c}{\textbf{文件名}} & \multicolumn{1}{c}{\textbf{PostScript名}} & \multicolumn{1}{c}{\textbf{样例}} \\ - \midrule - 宋体 & \texttt{simsun.ttc} & SimSun & {\jfontspec{SimSun}我能吞下玻璃而不伤身体} \\ - 黑体 & \texttt{simhei.ttf} & SimHei & {\jfontspec{SimHei}我能吞下玻璃而不伤身体} \\ - 楷体 & \texttt{simkai.ttf} & KaiTi & {\jfontspec{KaiTi}我能吞下玻璃而不伤身体} \\ - 仿宋 & \texttt{simkai.ttf} & FangSong & {\jfontspec{FangSong}我能吞下玻璃而不伤身体} \\ - \bottomrule - \end{tabular}% -\end{table}% - -\subsection{Adobe字体系列} -在Adobe Reader简体中文版中,附带了宋体和黑体两种字体。 -这两种字体实际上是华文字体,但是和华文字体不能混用, -因为Adobe Reader中的中文字体的基线都进行了调整, -不能互相匹配。在Adobe InDesign中还附带了楷体和仿宋体。 -Adobe的中文字体的Postscript名即为文件名去掉后缀名。 - -\begin{table}[htbp] - \centering - \begin{tabular}{lll} - \toprule - \multicolumn{1}{c}{\textbf{字体名}} & \multicolumn{1}{c}{\textbf{文件名}} & \multicolumn{1}{c}{\textbf{样例}} \\ - \midrule - Adobe 宋体 Std & \texttt{AdobeSongStd-Light.otf} & {\jfontspec{AdobeSongStd-Light}我能吞下玻璃而不伤身体} \\ - Adobe 黑体 Std & \texttt{AdobeHeitiStd-Regular.otf} & {\jfontspec{AdobeHeitiStd-Regular}我能吞下玻璃而不伤身体} \\ - Adobe 楷体 Std & \texttt{AdobeKaitiStd-Regular.otf} & {\jfontspec{AdobeKaitiStd-Regular}我能吞下玻璃而不伤身体} \\ - Adobe 仿宋 Std & \texttt{AdobeFangsongStd-Regular.otf} & {\jfontspec{AdobeFangsongStd-Regular}我能吞下玻璃而不伤身体} \\ - \bottomrule - \end{tabular}% -\end{table}% - -\subsection{方正字体系列} -方正字体的来源有两种,第一种是使用方正的排版系统的时候会 -安装到Windows系统的字体文件夹下,第二种是针对Linux系统 -来说的,WPS for Linux附带了部分方正字体。 - -\begin{table}[htbp] - \centering - \begin{tabular}{llll} - \toprule - \multicolumn{1}{c}{\textbf{字体名}} & \multicolumn{1}{c}{\textbf{文件名}} & \multicolumn{1}{c}{\textbf{全名}} & \multicolumn{1}{c}{\textbf{样例}} \\ - \midrule - 方正书宋\_GBK & \texttt{FZSSK.TTF} & FZShuSong-Z01 & {\jfontspec{FZShuSong-Z01}我能吞下玻璃而不伤身体} \\ - 方正小标宋\_GBK & \texttt{FZXBSK.TTF} & FZXiaoBiaoSong-B05 & {\jfontspec{FZXiaoBiaoSong-B05}我能吞下玻璃而不伤身体} \\ - 方正黑体\_GBK & \texttt{FZHTK.TTF} & FZHei-B01 & {\jfontspec{FZHei-B01}我能吞下玻璃而不伤身体} \\ - 方正楷体\_GBK & \texttt{FZKTK.TTF} & FZKai-Z03 & {\jfontspec{FZKai-Z03}我能吞下玻璃而不伤身体} \\ - 方正仿宋\_GBK & \texttt{FZFSK.TTF} & FZFangSong-Z02 & {\jfontspec{FZFangSong-Z02}我能吞下玻璃而不伤身体} \\ - \bottomrule - \end{tabular}% -\end{table}% -\end{document} diff --git a/macros/luatex/generic/luatexja/doc/luatexja.dtx b/macros/luatex/generic/luatexja/doc/luatexja.dtx index b404fc4636..19332cfb06 100644 --- a/macros/luatex/generic/luatexja/doc/luatexja.dtx +++ b/macros/luatex/generic/luatexja/doc/luatexja.dtx @@ -17,26 +17,11 @@ \makeatletter %%%%%%%% \def\pgfsysdriver{pgfsys-pdftex.def} -\directlua{if jit then jit.on() end} \usepackage{metalogo,amsmath,array,tikz,pict2e,multienum,float,mathtools} \usepackage{booktabs,multicol,luatexja-ruby} \usepackage[all]{xy} \usepackage{lltjext,alltt,comment} -%%%%%%%% Lua GC -\patchcmd\@outputpage{\stepcounter{page}}{% - \directlua{% - if jit then - local k = collectgarbage("count") - if k>900000 then - collectgarbage("collect") - texio.write_nl("term and log", "GC: ", math.floor(k), math.floor(collectgarbage("count"))) - end - end - }% - \stepcounter{page}% -}{}{} - %%%%%%%% fonts \usepackage{luatexja-otf} \usepackage[no-math]{fontspec} @@ -46,7 +31,8 @@ % Scale=MatchLowercase, FakeStretch=1.137121, ItalicFont=iosevka-slab-oblique, BoldFont=iosevka-slab-bold, BoldItalicFont=iosevka-slab-bolditalic, -]{iosevka-slab-regular} +% ]{iosevka-slab-regular} +% ]{iosevka-slab-light} \setsansfont[Scale=MatchLowercase,Ligatures=TeX,RawFeature=-notdef]{Linux Biolinum O} \usepackage[match]{luatexja-fontspec} \usepackage[kozuka-pr6n]{luatexja-preset} @@ -87,14 +73,22 @@ \def\IVS#1{\char\numexpr "E0100+#1\relax}%" \def\IVSA#1#2#3#4#5{% - \textcolor{blue}{\raisebox{3.5pt}{\normalfont\ttfamily% - \fboxsep=0.5pt\fbox{\tiny \oalign{0#1#2\crcr#3#4#5\crcr}}}}% + \hbox to1em{\hss\textcolor{blue}{\raisebox{3.5pt}{\normalfont\ttfamily% + \fboxsep=0.5pt\fbox{\hbox to0.75em{\hss\tiny \oalign{0#1#2\crcr#3#4#5\crcr}\hss}}}}\hss}% } {\catcode`\%=11 \gdef\IVSB#1{\expandafter\IVSA\directlua{ local cat_str = luatexbase.catcodetables['string'] tex.sprint(cat_str, string.format('%X', 0xE00EF+#1)) }}} +\def\UCSA#1#2#3#4{% + \hbox to1em{\hss\textcolor{blue}{\raisebox{3.5pt}{\normalfont\ttfamily% + \fboxsep=0.5pt\fbox{\hbox to0.75em{\hss\tiny \oalign{#1#2\crcr#3#4\crcr}\hss}}}}\hss}% +} +\def\UCSB#1#2{% + \hbox to1em{\hss\textcolor{red}{\raisebox{3.5pt}{\normalfont\ttfamily% + \fboxsep=0.5pt\fbox{\hbox to0.75em{\hss\tiny \oalign{\hss#1\hss\crcr\hss#2\hss\crcr}\hss}}}}\hss}% +} \usepackage{listings,showexpl,enumitem} \lstset{ @@ -648,32 +642,21 @@ and \emph{Japanese fonts} for fonts used in \textbf{JAchar}. %\section{使い方} %\subsection{Installation} %\subsection{インストール} - +\label{ssec:install} %The following packages are needed for the \LuaTeX-ja\ package. %\LuaTeX-jaパッケージの動作には次のパッケージ類が必要である. \begin{itemize} \item \href{http://www.luatex.org/}{\LuaTeX}\ 1.0.0 (or later) -\item recent \href{https://github.com/latex3/luaotfload}{\Pkg{luaotfload}} (v2.98 or later recommended) +\item recent \href{https://github.com/latex3/luaotfload}{\Pkg{luaotfload}} (v3.1 or later recommended) \item \Pkg{adobemapping} (Adobe cmap and pdfmapping files) -\item \Pkg{etoolbox}, \Pkg{everysel} (if you want to use \LuaTeX-ja with \LaTeXe) +\item \href{https://github.com/josephwright/etoolbox/}{\Pkg{etoolbox}}, + \Pkg{everysel} (if you want to use \LuaTeX-ja with \LaTeXe) \item \Pkg{ltxcmds}, \Pkg{pdftexcmds}, \Pkg{filehook}, \Pkg{atbegshi} -\item \Pkg{fontspec} v2.7c (or later) +\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/})} \end{itemize} -%<*en> -LuaHB\TeX~and~\href{https://github.com/khaledhosny/harftex}{Harf\TeX}, -which are \LuaTeX-variants integrated with Harfbuzz, are not supported for now. -Maybe documents can typeset without an error, -but with unwanted results (especially, vertical typesetting and \cs{CID}). -% -%<*ja> -現時点では,LuaHB\TeX や\href{https://github.com/khaledhosny/harftex}{Harf\TeX}といった -Harfbuzzを利用したエンジンでの動作は未保証である. -エラーが発生せずにタイプセットできるかもしれないが,特に縦組時や -\cs{CID}などで意図しない結果となりうる可能性が大きい. -% %<*en> Now \LuaTeX-ja is available from @@ -681,8 +664,8 @@ CTAN (in the \texttt{macros/luatex/generic/luatexja} directory), and the following distributions: \begin{itemize} \item MiK\TeX\ (in \texttt{luatexja.tar.lzma}); see the next subsection - \item \TeX\ Live (in \texttt{texmf-dist/tex/luatex/luatexja}) - \item W32\TeX\ (in \texttt{luatexja.tar.xz}) + \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}) \end{itemize} IPAex fonts are also available in these distributions. % @@ -698,6 +681,27 @@ IPAex fonts are also available in these distributions. W32\TeX においてはIPAexフォントは \texttt{luatexja.tar.xz} 内にある. % +%<*en> +\paragraph{Using \LuaTeX-ja with LuaHB\TeX} +Using \LuaTeX-ja with LuaHB\TeX (\LuaTeX\ integrated with +\href{https://github.com/harfbuzz/harfbuzz}{HarfBuzz}) is not well tested. +Maybe documents can typeset without an error, +but with unwanted results (especially, vertical typesetting and \cs{CID}). + +Especially, +\emph{We don't recommend defining a Japanese font with HarfBuzz}, +by specifying \texttt{Renderer=Harfbuzz}~etc.\ (\Pkg{fontspec}) or~{mode=harf} (otherwise). +% +%<*ja> +\paragraph{LuaHB\TeX 下での\LuaTeX-jaの使用} +現時点では,LuaHB\TeX 下での\LuaTeX-jaの使用は十分にテストされていない. +エラーが発生せずにタイプセットできるかもしれないが,特に縦組時や +\cs{CID}などで意図しない結果となりうる可能性が大きい. + +特に,\texttt{Renderer=Harfbuzz}等(\Pkg{fontspec})や\texttt{mode=harf}指定(それ以外)を用いて +\emph{和文フォントに対してHarfBuzzを用いることは推奨しない}. +% + %\paragraph{Manual installation} %\paragraph{手動インストール方法} @@ -707,7 +711,7 @@ W32\TeX においてはIPAexフォントは \texttt{luatexja.tar.xz} 内にあ At the present, \LuaTeX-ja has no \emph{stable} release. \begin{itemize} -\item Clone the Git repository: +\item Clone the Git repository by \begin{lstlisting} $ git clone git://git.osdn.jp/gitroot/luatex-ja/luatexja.git \end{lstlisting} @@ -725,11 +729,11 @@ the forefront of development is not the \texttt{master} branch. 開発版であって,安定版でないことに注意. \begin{itemize} -\item Gitリポジトリをクローンする: +\item Gitリポジトリを次のコマンドでクローンする: \begin{lstlisting} $ git clone git://git.osdn.jp/gitroot/luatex-ja/luatexja.git \end{lstlisting} -\item \texttt{master} ブランチのスナップショット(\texttt{tar.gz} 形式)をダウンロードする. +\item \texttt{master} ブランチのスナップショット(\texttt{tar.gz} 形式)をダウンロードする: \begin{flushleft} \url{http://git.osdn.jp/view?p=luatex-ja/luatexja.git;a=snapshot;h=HEAD;sf=tgz}. \end{flushleft} @@ -1161,8 +1165,7 @@ so \Pkg{ltjsclasses} uses the \texttt{nomag*} option\footnote{Same effect as \footnote{\Pkg{jsclasses}や,八登崇之氏による\Pkg{BXjscls}クラスにおける同名のオプションと 同じ.上記クラスは\TeX コードのみで実装しているが,\Pkg{ltjsclasses}ではLuaコードも用いている.}が標準で 有効になっており,これを使って本文フォントサイズの設定を行っている. -しかし,この\texttt{nomag*}オプションでは(20180121.0版より前の版において\Pkg{unicode-math}パッケージ使用時に -起きたように)予想外の意図しない現象に遭遇する危険がある.そのような場合は +しかし,この\texttt{nomag*}オプションでは(バージョン20180121.0より前で\Pkg{unicode-math}パッケージ使用時に起きたように)予想外の意図しない現象に遭遇する危険がある.そのような場合は \cs{documentclass}において\texttt{nomag}オプションを指定してほしい. % @@ -1647,7 +1650,7 @@ The following presets are defined: \begin{quote} \ttfamily \hyphenchar\font=-1 \exhyphenchar=-1 - hiragino-pro, hiragino-pron, ipa, ipa-hg, ipaex, ipaex-hg, + haranoaji, hiragino-pro, hiragino-pron, ipa, ipa-hg, ipaex, ipaex-hg, kozuka-pr6, kozuka-pr6n, kozuka-pro, moga-mobo, moga-mobo-ex, bizud, morisawa-pr6n, morisawa-pro, ms, ms-hg, noembed, noto-otc, noto-otf, sourcehan, sourcehan-jp, ume, yu-osx, yu-win, yu-win10 @@ -2125,6 +2128,52 @@ setting, you can use \cs{ltjalchar} and \cs{ltjjachar} respectively, as the foll \end{LTXexample} % +%<*ja> +\paragraph{絵文字など,複数コードポイントの列で表現される字形をを利用する場合の注意} +(\Pkg{luaotfload}による)OpenType機能や合字等の処理は,\LuaTeX-jaが +段落・水平ボックスの中身全体に対して「この文字は\textbf{JAchar}だから和文フォントで組む」と +フォントを置き換えた後に適用される. +そのため,異体字セレクタや絵文字といった複数のコードポイントの列で表現される文字を +組む場合には,列全体で\textbf{JAchar}の範囲か\textbf{ALchar}の範囲かが +統一されていないといけない. + +例えば,CJK統合漢字(とその拡張達)と +IVS用の異体字セレクタ(\texttt{U+E0100}--\texttt{U+E01EF})は標準では +どちらも同じ文字範囲6であるため,(フォントがサポートしていれば)IVSは正しく機能する. +しかし,下の例のように異体字セレクタを\textbf{ALchar}の文字範囲(4)に移動させると, +IVSは機能しなくなる: +\ltjdefcharrange{4}{"E0100-"E01EF} +\begin{LTXexample} +\ltjdefcharrange{4}{"E0100-"E01EF} +葛󠄀城市,葛󠄁飾区,葛西 +\end{LTXexample} +\ltjdefcharrange{6}{"E0100-"E01EF} + +また,標準では絵文字として使われる可能性が大きい一部の文字が\textbf{JAchar}となっている +\footnote{同じUnicodeブロック内にAdobe-Japan1-6の文字があったため.}. +絵文字を用いる場合にはこの点に留意する必要がある. + +\begin{center} + \begin{minipage}{.5\textwidth}\small\ttfamily +\verb!\ltjsetparameter{jacharrange={+3}}!\\ +\verb!\font\nce=NotoColorEmoji.ttf:mode=harf\nce!\\ +\IVSA 1F469\UCSB{ZW}{J}\UCSA 2764\UCSB{VS}{16}\UCSB{ZW}J\IVSA 1F48B\UCSB{ZW}J\IVSA 1F468\ + \textcolor{green}{\% U+2764: JAchar}\\ +\verb!\ltjsetparameter{jacharrange={-3}}!\\ +\IVSA 1F469\UCSB{ZW}{J}\UCSA 2764\UCSB{VS}{16}\UCSB{ZW}J\IVSA 1F48B\UCSB{ZW}J\IVSA 1F468\ + \textcolor{green}{\% U+2764: ALchar} + \end{minipage}% + \begin{minipage}{.5\textwidth} +\ltjsetparameter{jacharrange={+3}} +\font\nce=NotoColorEmoji.ttf:mode=harf\nce +👩‍❤️‍💋‍👨 +\ltjsetparameter{jacharrange={-3}} +👩‍❤️‍💋‍👨 + \end{minipage} +\end{center} +\ltjsetparameter{jacharrange={+3}} +% + %\subsection{\Param{kanjiskip} and \Param{xkanjiskip}} %\subsection{\Param{kanjiskip}と\Param{xkanjiskip}} @@ -3424,14 +3473,16 @@ JFMは文字と和文組版で自動的に挿入される \def\r#1#2{% \hbox{\Large\vrule \parbox[b]{7\zw}{% - \addjfontfeatures{YokoFeatures={Opacity=0.5, Color=#2, JFM=#1}}\noindent + \addjfontfeatures{YokoFeatures={JFM=#1}}\noindent + \color{#2}\transparent{0.5} ◆◆◆◆◆◆◆ ある日モモちゃんがお使いで迷子になって泣きました. }\vrule}} \def\s#1#2{% \Large \parbox[b]{7\zw}{% - \addjfontfeatures{YokoFeatures={Opacity=0.5, Color=#2, JFM=#1}}\noindent + \addjfontfeatures{YokoFeatures={JFM=#1}}\noindent + \color{#2}\transparent{0.5} ちょっと!何 }} \def\t#1#2#3{\hbox to 0pt{\hss% @@ -3713,14 +3764,16 @@ This functionality is disabled by \texttt{-ltjksp} specification. \def\r#1#2{% \hbox{\tate\Large\vrule \parbox{7\zw}{% - \addjfontfeatures{TateFeatures={Opacity=0.5, Color=#2, JFM=#1}}\noindent + \addjfontfeatures{TateFeatures={JFM=#1}}\noindent + \color{#2}\transparent{0.5} ◆◆◆◆◆◆◆ ある日モモちゃんが「お使い」で迷子になって泣きました。 }\vrule}} \def\s#1#2{% \hbox{\tate\Large \parbox{7\zw}{% - \addjfontfeatures{TateFeatures={Opacity=0.5, Color=#2, JFM=#1}}\noindent + \addjfontfeatures{TateFeatures={JFM=#1}}\noindent + \color{#2}\transparent{0.5} ちょっと!何 }}} \def\t#1#2#3{\hbox to 0pt{\hss% @@ -6428,11 +6481,11 @@ to . See Subsection~\ref{ssec:fontfamilycmd} for detail. \begin{figure}[!tb] \begin{LTXexample}[pos=b] \DeclareKanjiFamily{JY3}{edm}{} -\DeclareFontShape{JY3}{edm}{m}{n} {<-> s*KozMinPr6N-Regular:jfm=ujis;}{} -\DeclareFontShape{JY3}{edm}{m}{green}{<-> s*KozMinPr6N-Regular:jfm=ujis;color=007F00}{} -\DeclareFontShape{JY3}{edm}{m}{blue} {<-> s*KozMinPr6N-Regular:jfm=ujis;color=0000FF}{} -\DeclareAlternateKanjiFont{JY3}{edm}{m}{n}{JY3}{edm}{m}{green}{"4E00-"67FF,{-2}-{-2}} -\DeclareAlternateKanjiFont{JY3}{edm}{m}{n}{JY3}{edm}{m}{blue}{ "6800-"9FFF} +\DeclareFontShape{JY3}{edm}{m}{n} {<-> s*KozMinPr6N-Regular:jfm=ujis;}{} +\DeclareFontShape{JY3}{edm}{m}{fb} {<-> s*KozGoPr6N-Regular:jfm=ujis}{} +\DeclareFontShape{JY3}{edm}{m}{fb2} {<-> s*KozGoPr6N-Medium:jfm=ujis}{} +\DeclareAlternateKanjiFont{JY3}{edm}{m}{n}{JY3}{edm}{m}{fb}{ "4E00-"67FF,{-2}-{-2}} +\DeclareAlternateKanjiFont{JY3}{edm}{m}{n}{JY3}{edm}{m}{fb2}{"6800-"9FFF} {\kanjifamily{edm}\selectfont 日本国民は、正当に選挙された国会における代表者を通じて行動し、……} \end{LTXexample} @@ -6810,11 +6863,11 @@ will not be embedded in the output PDF file. See Subsection~\ref{ssec:psft}. \begin{figure}[!tb] \begin{LTXexample}[width=0.25\textwidth] \jfontspec[ - YokoFeatures={Color=007F00}, TateFeatures={Color=00007F}, + YokoFeatures={FakeBold=3}, TateFeatures={FakeBold=6}, TateFont=KozGoPr6N-Regular ]{KozMinPr6N-Regular} \hbox{\yoko 横組のテスト}\hbox{\tate 縦組のテスト} -\addjfontfeatures{Color=FF0000} +\addjfontfeatures{FakeBold=0} \hbox{\yoko 横組}\hbox{\tate 縦組} \end{LTXexample} %\caption{\texttt{TateFeatures} 等の使用例} @@ -6860,8 +6913,8 @@ A demonstrarion is shown in \autoref{fig:yokotate-fontspec}. \begin{LTXexample}[pos=b] \jfontspec[ AltFont={ - {Range="4E00-"67FF, Color=007F00}, - {Range="6800-"9EFF, Color=0000FF}, + {Range="4E00-"67FF, Font=KozGoPr6N-Medium}, + {Range="6800-"9EFF, FakeBold=4}, {Range="3040-"306F, Font=KozGoPr6N-Regular}, } ]{KozMinPr6N-Regular} @@ -6924,7 +6977,7 @@ For example, \begin{lstlisting} AltFont = { { Font=HogeraMin-Light, BoldFont=HogeraMin-Bold, - Range="3000-"30FF, BoldFeatures={Color=007F00} } + Range="3000-"30FF, BoldFeatures={FakeBold=1} } } \end{lstlisting} does \emph{not} work. Instead, one have to write @@ -6933,7 +6986,7 @@ UprightFeatures = { AltFont = { { Font=HogeraMin-Light, Range="3000-"30FF, } }, }, BoldFeatures = { - AltFont = { { Font=HogeraMin-Bold, Range="3000-"30FF, Color=007F00 } }, + AltFont = { { Font=HogeraMin-Bold, Range="3000-"30FF, FakeBold=1 } }, } \end{lstlisting} @@ -6956,7 +7009,7 @@ has no effect, because a color specification is already done in \begin{lstlisting} AltFont = { { Font=HogeraMin-Light, BoldFont=HogeraMin-Bold, - Range="3000-"30FF, BoldFeatures={Color=007F00} } + Range="3000-"30FF, BoldFeatures={FakeBold=1} } } \end{lstlisting} のように指定することは出来ず, @@ -6965,7 +7018,7 @@ UprightFeatures = { AltFont = { { Font=HogeraMin-Light, Range="3000-"30FF, } }, }, BoldFeatures = { - AltFont = { { Font=HogeraMin-Bold, Range="3000-"30FF, Color=007F00 } }, + AltFont = { { Font=HogeraMin-Bold, Range="3000-"30FF, FakeBold=1 } }, } \end{lstlisting} のように指定しなければならない. @@ -6975,8 +7028,8 @@ BoldFeatures = { 指定することは可能であり.また\ \texttt{YokoFeatures},~\texttt{TateFeatures} キーの 中身に \texttt{AltFont} を指定することができる. -また,\autoref{fig:yokotate-fontspec}後半部では6行目の色の指定が効かず, -2行目で指定した\ \texttt{YokoFeatures},~\texttt{TateFeatures}\ による色の指定が有効になっ +また,\autoref{fig:yokotate-fontspec}後半部では6行目の疑似太字無効化の指定が効かず, +2行目で指定した\ \texttt{YokoFeatures},~\texttt{TateFeatures}\ による疑似太字の指定が有効になっ たままである.これは\emph{\ \texttt{YokoFeatures},~\texttt{TateFeatures}\ による OpenType機能指定は 組方向に依存しないOpenType機能の指定より後に解釈される}からである. @@ -7071,13 +7124,13 @@ ordinary characters in the following points: 有効か無効かを問わず,\cs{UTF} で出力される文字にはこれらのOpenType機能が働いた字形になる. % %<*en> -\item Processing codes for supporting other OpenType features (for example, +\item Processes for supporting other OpenType features (for example, glyph replacement and kerning) by the \Pkg{luaotfload} package is not performed to these characters. % %<*ja> \item その他のOpenType機能(例えばグリフ置換やカーニング)をサポートするための - \Pkg{luaotfload}パッケージのコードはこれらの文字には働かない. + \Pkg{luaotfload}パッケージによる処理はこれらの文字には働かない. % \end{itemize} @@ -7949,13 +8002,13 @@ We didn't taken account of when more than one options among them are specified. \label{sssec:ltjpreset-multi} %<*en> -Besides \texttt{bizud}, \texttt{morisawa-pro},~and~\texttt{morisawa-pr6n} presets, +Besides \texttt{bizud}, \texttt{haranoaji}, \texttt{morisawa-pro},~and~\texttt{morisawa-pr6n} presets, fonts are specified by font name, not by file name. In following tables, starred fonts (e.g.~KozGo\dots-Regular) are used for medium series of \textit{gothic}, \emph{if and only if \texttt{deluxe} option is specified}. % %<*ja> -\texttt{bizud}, \texttt{morisawa-pro}, \texttt{morisawa-pr6n}以外はフォントの指定は +\texttt{bizud}, \texttt{haranoaji}, \texttt{morisawa-pro}, \texttt{morisawa-pr6n}以外はフォントの指定は (ファイル名でなく)フォント名で行われる. 以下の表において,*\,つきのフォント(e.g.,~KozGo\dots-Regular)は,\emph{\texttt{deluxe}オプション指定時に} ゴシック体中字として用いられるものを示している. @@ -7991,12 +8044,12 @@ There is not rounded gothic family in Kozuka fonts. &KozGoPro-Medium&KozGoProVI-Medium&KozGoPr6N-Medium\\ \cmidrule(l){2-5} %\smash{\raisebox{2ex}{\textit{gothic}}}% -%\smash{\raisebox{2ex}{\gt ゴシック}}% +%\smash{\raisebox{2ex}{\textgt{ゴシック}}}% &bold&KozGoPro-Bold&KozGoProVI-Bold&KozGoPr6N-Bold\\ &extra bold&KozGoPro-Heavy&KozGoProVI-Heavy&KozGoPr6N-Heavy\\ \midrule %\textit{rounded gothic} -%\gt 丸ゴシック +%\textgt{丸ゴシック} &&KozGoPro-Heavy&KozGoProVI-Heavy&KozGoPr6N-Heavy\\ \bottomrule \end{tabular} @@ -8037,18 +8090,17 @@ Std/StdNフォントであり,その他はAdobe-Japan1-5対応である. &Hiragino~Kaku~Gothic~Pro~W6&Hiragino~Kaku~Gothic~ProN~W6\\ \cmidrule(l){2-4} %\smash{\raisebox{2ex}{\textit{gothic}}}% -%\smash{\raisebox{2ex}{\gt ゴシック}}% +%\smash{\raisebox{2ex}{\textgt{ゴシック}}}% &bold&Hiragino~Kaku~Gothic~Pro~W6&Hiragino~Kaku~Gothic~ProN~W6\\ &extra bold&Hiragino~Kaku~Gothic~Std~W8&Hiragino~Kaku~Gothic~StdN~W8\\ \midrule %\textit{rounded gothic} -%\gt 丸ゴシック +%\textgt{丸ゴシック} &&Hiragino~Maru~Gothic~Pro~W4&Hiragino~Maru~Gothic~ProN~W4\\ \bottomrule \end{tabular} \end{center} -%\newpage \item[bizud] BIZ UD fonts (by Morisawa Inc.) bundled with Windows~10 October 2018 Update. \begin{center}\small @@ -8063,12 +8115,12 @@ Std/StdNフォントであり,その他はAdobe-Japan1-5対応である. &medium&BIZ-UDGothicR.ttc\\ \cmidrule(l){2-3} %\textit{gothic}% -%\gt ゴシック +%\textgt{ゴシック} &bold&BIZ-UDGothicB.ttc\\ &extra bold&BIZ-UDGothicB.ttc\\ \midrule %\textit{rounded gothic} -%\gt 丸ゴシック +%\textgt{丸ゴシック} &&BIZ-UDGothicB.ttc\\ \bottomrule \end{tabular} @@ -8086,18 +8138,18 @@ Std/StdNフォントであり,その他はAdobe-Japan1-5対応である. \midrule &medium&A-OTF-RyuminPro-Light.otf&A-OTF-RyuminPr6N-Light.otf\\ %\smash{\raisebox{1.5ex}{\textit{mincho}}}% -%\smash{\raisebox{1.5ex}{\gt 明朝}}% +%\smash{\raisebox{1.5ex}{\textgt{明朝}}}% &bold&A-OTF-FutoMinA101Pro-Bold.otf&A-OTF-FutoMinA101Pr6N-Bold.otf\\ \midrule &medium &A-OTF-GothicBBBPro-Medium.otf&A-OTF-GothicBBBPr6N-Medium.otf\\ %\textit{gothic}% -%\gt ゴシック +%\textgt{ゴシック} &bold&A-OTF-FutoGoB101Pro-Bold.otf&A-OTF-FutoGoB101Pr6N-Bold.otf\\ &extra bold&A-OTF-MidashiGoPro-MB31.otf&A-OTF-MidashiGoPr6N-MB31.otf\\ \midrule %\textit{rounded gothic} -%\gt 丸ゴシック +%\textgt{丸ゴシック} &&A-OTF-Jun101Pro-Light.otf&A-OTF-ShinMGoPr6N-Light.otf\\ \bottomrule \end{tabular} @@ -8125,12 +8177,12 @@ Std/StdNフォントであり,その他はAdobe-Japan1-5対応である. &YuGothic-Regular&YuGothic-Medium&YuGothic~Medium\\ \cmidrule(l){2-5} %\textit{gothic}% -%\gt ゴシック +%\textgt{ゴシック} &bold&YuGothic-Bold&YuGothic-Bold&YuGothic~Bold\\ &extra bold&YuGothic-Bold&YuGothic-Bold&YuGothic~Bold\\ \midrule %\textit{rounded gothic} -%\gt 丸ゴシック +%\textgt{丸ゴシック} &&YuGothic-Bold&YuGothic-Bold&YuGothic~Bold\\ \bottomrule \end{tabular} @@ -8148,17 +8200,17 @@ Std/StdNフォントであり,その他はAdobe-Japan1-5対応である. \midrule &medium&Moga90Mincho&MogaMincho\\ %\smash{\raisebox{1.5ex}{\textit{mincho}}}% -%\smash{\raisebox{1.5ex}{\gt 明朝}}% +%\smash{\raisebox{1.5ex}{\textgt{明朝}}}% &bold&Moga90Mincho Bold&MogaMincho Bold\\ \midrule &medium&Moga90Gothic&MogaGothic\\ %\textit{gothic}% -%\gt ゴシック +%\textgt{ゴシック} &bold&Moga90Gothic Bold&MogaGothic Bold\\ &extra bold&Moga90Gothic Bold&MogaGothic Bold\\ \midrule %\textit{rounded gothic} -%\gt 丸ゴシック +%\textgt{丸ゴシック} &&Mobo90Gothic&MoboGothic\\ \bottomrule \end{tabular} @@ -8176,19 +8228,19 @@ Std/StdNフォントであり,その他はAdobe-Japan1-5対応である. \midrule &medium&Ume Mincho\\ %\smash{\raisebox{1.5ex}{\textit{mincho}}}% -%\smash{\raisebox{1.5ex}{\gt 明朝}}% +%\smash{\raisebox{1.5ex}{\textgt{明朝}}}% &bold&Ume Mincho\\ \midrule &&Ume Gothic*\\ &\smash{\raisebox{1.5ex}{medium}}&Ume Gothic O5\\ \cmidrule(l){2-3} %\textit{gothic}% -%\gt ゴシック +%\textgt{ゴシック} &bold&Ume Gothic O5\\ &extra bold&Ume Gothic O5\\ \midrule %\textit{rounded gothic} -%\gt 丸ゴシック +%\textgt{丸ゴシック} &&Ume Gothic O5\\ \bottomrule \end{tabular} @@ -8215,12 +8267,12 @@ Std/StdNフォントであり,その他はAdobe-Japan1-5対応である. &\AD{Sans}{Medium}\\ \cmidrule(l){2-4} %\smash{\raisebox{2ex}{\textit{gothic}}}% -%\smash{\raisebox{2ex}{\gt ゴシック}}% +%\smash{\raisebox{2ex}{\textgt{ゴシック}}}% &bold&\AD{Sans}{Bold}\\ &extra bold&\AD{Sans}{Heavy}\\ \midrule %\textit{rounded gothic} -%\gt 丸ゴシック +%\textgt{丸ゴシック} &&\AD{Sans}{Heavy}\\ \bottomrule \end{tabular} @@ -8247,18 +8299,54 @@ Std/StdNフォントであり,その他はAdobe-Japan1-5対応である. &\AD{Sans}{Medium}\\ \cmidrule(l){2-4} %\smash{\raisebox{2ex}{\textit{gothic}}}% -%\smash{\raisebox{2ex}{\gt ゴシック}}% +%\smash{\raisebox{2ex}{\textgt{ゴシック}}}% &bold&\AD{Sans}{Bold}\\ &extra bold&\AD{Sans}{Black}\\ \midrule %\textit{rounded gothic} -%\gt 丸ゴシック +%\textgt{丸ゴシック} &&\AD{Sans}{Black}\\ \bottomrule \end{tabular} \end{center} +\item[haranoaji] Harano Aji Fonts. +%\par These fonts can be downloaded from\\\hfill \url{https://github.com/trueroad/HaranoAjiFonts}. +%これらのフォントは \url{https://github.com/trueroad/HaranoAjiFonts} からダウンロードできる. +%<*en> +There is not rounded gothic family in Harano Aji Fonts. +% +%<*ja> +「原ノ味丸ゴシック」は存在しないので,便宜的に原ノ味角ゴシックHeavyによって代用している. +% +\begin{center}\small +\begin{tabular}{lll} +\toprule +\bf family&\bf series&\texttt{haranoaji}\\ +\midrule + &light&HaranoAjiMincho-Light.otf\\ +%\textit{mincho}% +%\textgt{明朝}% + &medium&HaranoAjiMincho-Regular.otf\\ + &bold&HaranoAjiMincho-Bold.otf\\ +\midrule + &&HaranoAjiGothic-Regular.otf*\\ + &\smash{\raisebox{1.5ex}{medium}} + &HaranoAjiGothic-Medium.otf\\ +\cmidrule(l){2-3} +%\smash{\raisebox{2ex}{\textit{gothic}}}% +%\smash{\raisebox{2ex}{\textgt{ゴシック}}}% + &bold&HaranoAjiGothic-Bold.otf\\ + &extra bold&HaranoAjiGothic-Heavy.otf\\ +\midrule +%\textit{rounded gothic} +%\textgt{丸ゴシック} +&&HaranoAjiGothic-Heavy.otf\\ +\bottomrule +\end{tabular} +\end{center} \end{cslist} + %\subsubsection{Presets which do not support multi weights} %\subsubsection{単ウェイト用プリセット一覧} \label{sssec:ltjpreset-single} @@ -8776,19 +8864,19 @@ Nodes for \LuaTeX-ja's stack system (see the next \item[\textit{char\_by\_cid}] %<*en> -Nodes for \textbf{JAchar} which the callback process of - \Pkg{luaotfload} won't be applied, and the character code is +Nodes for \textbf{JAchar} which processes by \Pkg{luaotfload} won't be applied, + and the character code is stored in the \texttt{value} field. Each node of this type are converted to a \textit{glyph\_node} \emph{after} - the callback process of luaotfload. -Nodes of this type is used in \cs{CID}, \cs{UTF} and IVS support. + processes by luaotfload. +Nodes of this type is used in \cs{CID}~and~\cs{UTF}. % %<*ja> -\Pkg{luaotfload}のコールバックによる処理が適用されない\textbf{JAchar}のためのノードで, +\Pkg{luaotfload}による処理が適用されない\textbf{JAchar}のためのノードで, \texttt{value} フィールドに文字コードが格納されている. この種類のノードはそれぞれが\Pkg{luaotfload}のコールバックの処理の \emph{後で}\textit{glyph\_node}に変換される. -\cs{CID}, \cs{UTF}やIVS対応処理でこの種類のノードが利用されている. +\cs{CID}, \cs{UTF}でこの種類のノードが利用されている. % \item[\textit{replace\_vs}] @@ -10349,9 +10437,8 @@ variation selectors are ``combined'' with the previous character. \texttt{vsraw}は,ブール値の値をとるキーであり,標準ではfalseである. \begin{itemize} - \item trueの場合は,異体字セレクタは「直前の文字に続けて」出力される. -もしもIVSサポート(\ref{ssec:ltjotf}節)が有効になっていた場合は, -以下の例(左側は入力,右側はその出力)のようになる. + \item trueの場合は,異体字セレクタは「直前の文字に続けて」出力されるため, +例えば以下の例(左側は入力,右側はその出力)のようになる. % \begin{LTXexample} \begin{lstlisting}[vsraw=true] @@ -10379,8 +10466,8 @@ The default setting of the \texttt{vscmd} key produces the following. % For example, the following code is the setting of the \texttt{vscmd} key in this document. \begin{lstlisting}[numbers=left] \def\IVSA#1#2#3#4#5{% - \textcolor{blue}{\raisebox{3.5pt}{\tt% - \fboxsep=0.5pt\fbox{\tiny \oalign{0#1#2\crcr#3#4#5\crcr}}}}% + \hbox to1em{\hss\textcolor{blue}{\raisebox{3.5pt}{\normalfont\ttfamily% + \fboxsep=0.5pt\fbox{\hbox to0.75em{\hss\tiny \oalign{0#1#2\crcr#3#4#5\crcr}\hss}}}}\hss}% } {\catcode`\%=11 \gdef\IVSB#1{\expandafter\IVSA\directlua{ diff --git a/macros/luatex/generic/luatexja/src/addons/luatexja-fontspec-25c.sty b/macros/luatex/generic/luatexja/src/addons/luatexja-fontspec-25c.sty deleted file mode 100644 index 9c67b70358..0000000000 --- a/macros/luatex/generic/luatexja/src/addons/luatexja-fontspec-25c.sty +++ /dev/null @@ -1,357 +0,0 @@ -% -% luatexja-fontspec-25c.sty -% - -\NeedsTeXFormat{LaTeX2e} -\ProvidesPackage{luatexja-fontspec-25c}[2019/05/14 fontspec support of LuaTeX-ja] -\RequirePackage{l3keys2e} -\ExplSyntaxOn - -%%%%%%%% Change Japanese font family by \rmfamily or not -\cs_new:Npn \ltj_fontspec_match_cmd { - \renewcommand\jttdefault{\gtdefault} - \@ltj@match@familytrue - \DeclareDocumentCommand \setmonojfont { O{} m O{} } { - \ltj_fontspec_set_family:Nnn \jttdefault {##1,##3}{##2} - \normalfont - } -} -\bool_if:NT \__ltj_fontspec_match_bool \ltj_fontspec_match_cmd - -%%%%%%%% Messages -\msg_new:nnn {luatexja-fontspec} {addjfontfeatures-ignored} -{ - \string\addjfontfeature (s)~ ignored;\\ - it~ cannot~ be~ used~ with~ a~ font~ that~ wasn't~ selected~ by~ luatexja-fontspec. -} - -\msg_new:nnn {luatexja-fontspec} {altfont-ignored-by-norange} -{ - ignored~ sublist~ `#1'~ in~ AltFont~ (no~ range~ is~ specified). -} - -\msg_new:nnn {luatexja-fontspec} {altfont-ignored-by-rangeonly} -{ - ignored~ sublist~ `#1'~ in~ AltFont~ (only~ range~ is~ specified). -} - -\cs_generate_variant:Nn \prg_new_conditional:Nnn {Nnx} - -%%%%%%%% Internal control sequences -%% Each CS is ltj_fontspec version that corresponds to original CS of fontspec. -\cs_new:Nn \ltj_fontspec_define_option:nn { - \__fontspec_keys_define_code:nnn {fontspec} {#1} {#2} -} -\cs_new:Nn \ltj_fontspec_define_preparse_external:nn { - \__fontspec_keys_define_code:nnn {fontspec-preparse-external} {#1} {#2} -} -\cs_new:Nn \ltj_fontspec_define_altfont_option:nn { - \__fontspec_keys_define_code:nnn {fontspec-ltjaltfont} {#1} {#2} -} - -%% Alternate Fonts -%% Spec: AltFont = { -%% ... -%% { Range = , }, -%% { Range = , Font = , }, -%% { Range = , Font = }, -%% ... -%% } -\tl_new:N \l_ltj_fontspec_altname_tl -\tl_new:N \l_ltj_fontspec_altrange_tl -\clist_new:N \l_ltj_fontspec_altfont_clist -\clist_new:N \l_ltj_fontspec_altfont_leftover_clist -\int_new:N \g_ltj_fontspec_altnumber_int - -\ltj_fontspec_define_altfont_option:nn {Range} { - \tl_set:Nn \l_ltj_fontspec_altrange_tl {#1} -} -\ltj_fontspec_define_altfont_option:nn {Font} { - \fontspec_complete_fontname:Nn \l_ltj_fontspec_altname_tl {#1} -} -\__fontspec_keys_define_code:nnn {fontspec-ltjaltfont-reparse} {AltFont} { - \clist_put_right:Nn \l_ltj_fontspec_altfont_clist { #1 } -} -\__fontspec_keys_define_code:nnn {fontspec-ltjaltfont-reparse} {YokoFeatures} { - \clist_put_right:Nn \l_ltj_fontspec_fontfeat_yoko_clist { #1 } -} -\__fontspec_keys_define_code:nnn {fontspec-ltjaltfont-reparse} {TateFeatures} { - \clist_put_right:Nn \l_ltj_fontspec_fontfeat_tate_clist { #1 } -} -\__fontspec_keys_define_code:nnn {fontspec-ltjaltfont-reparse} {TateFont} { - \tl_if_empty:nF {#1} { - \fontspec_complete_fontname:Nn \l_ltj_fontspec_fontname_tate_tl {#1} - } -} -%% -\clist_new:N \l_ltj_fontspec_fontfeat_yoko_clist -\clist_new:N \l_ltj_fontspec_fontfeat_tate_clist -\tl_new:N \l_ltj_fontspec_fontname_tate_tl - -\cs_new:Npn \ltj_fontspec_DeclareFontFamily #1 #2 #3 { - \DeclareKanjiFamily {JY3} {#2} {#3} - \DeclareKanjiFamily {JT3} {#2} {#3} -} - -\cs_set_eq:NN \__ltj_orig_fontspec_select_font_family:nn \__fontspec_select_font_family:nn -\cs_new_protected:Nn \ltj_fontspec_select_font_family:nn { - \group_begin: - \ltj_fontspec_define_option:nn {NoEmbed} {} - \ltj_fontspec_define_option:nn {AltFont} { - \clist_put_right:Nn \l_ltj_fontspec_altfont_clist { ##1 } - } - \ltj_fontspec_define_option:nn {CID} { - \__fontspec_update_featstr:n {cid=##1} - } - \ltj_fontspec_define_option:nn {Kanjiskip} { - \str_if_eq_x:nnTF {false} { \str_lower_case:n { ##1 } }{ - \__fontspec_update_featstr:n {-ltjksp} - } { - \__fontspec_update_featstr:n {+ltjksp} - } - } - \ltj_fontspec_define_option:nn {JFM} { - \__fontspec_update_featstr:n {jfm=##1} - } - % vary by shape - \ltj_fontspec_define_option:nn {YokoFeatures} { - \clist_put_right:Nn \l_ltj_fontspec_fontfeat_yoko_clist { ##1 } - } - \ltj_fontspec_define_option:nn {TateFeatures} { - \clist_put_right:Nn \l_ltj_fontspec_fontfeat_tate_clist { ##1 } - } - \ltj_fontspec_define_option:nn {TateFont} - { - \tl_if_empty:nF {##1} { - \fontspec_complete_fontname:Nn \l_ltj_fontspec_fontname_tate_tl {##1} - } - } - \ltj_fontspec_define_option:nn {JFM-var} { - \__fontspec_update_featstr:n {jfmvar=##1} - } - \ltj_fontspec_define_preparse_external:nn {NoEmbed} { - \cs_set:Npn \__fontspec_fontname_wrap:n ##1 {psft:##1} - } - - %% Omit the warning message - %% "OpenType feature 'Kerning=Off' (-kern) not available ..." - \keys_define:nn {fontspec-opentype} { - Kerning/Off.code:n=\__fontspec_update_featstr:n {-kern} - } - \clist_set:Nx \g__fontspec_default_fontopts_clist { - YokoFeatures = { JFM=\ltj@stdyokojfm }, TateFeatures = { JFM=\ltj@stdtatejfm }, - Scale=\Cjascale, Kerning=Off, Script=CJK, - \g__ltj_fontspec_default_fontopts_clist - } - \prop_set_eq:NN \g__fontspec_fontopts_prop \g__ltj_fontspec_fontopts_prop - \cs_set_eq:NN \__fontspec_make_font_shapes:Nnnnn \ltj_fontspec_make_font_shapes:Nnnnn - \cs_set_eq:NN \DeclareFontFamily \ltj_fontspec_DeclareFontFamily - \tl_set:Nn \g_fontspec_encoding_tl {JY3} - \__ltj_orig_fontspec_select_font_family:nn{#1}{#2} - \group_end: -} - -%% declare_shape - -\cs_new:Nn \ltj_fontspec_declare_shape_yoko:nnnn { - \ltj_fontspec_declare_shape_aux:nnnnnn {#1} {#2} {#3} {#4} { JY3 } { \l_ltj_fontspec_fontfeat_yoko_clist } -} -\cs_new:Nn \ltj_fontspec_declare_shape_tate:nnnn { - \ltj_fontspec_declare_shape_aux:nnnnnn {#1} {#2} {#3} {#4} { JT3 } { \l_ltj_fontspec_fontfeat_tate_clist } -} -\cs_new:Nn \ltj_fontspec_declare_shape:nnnn { - \ltj_fontspec_declare_shape_yoko:nnnn {#1} {#2} {#3} {#4} - \ltj_fontspec_declare_shape_tate:nnnn {#1} {#2} {#3} {#4} -} -\cs_generate_variant:Nn \ltj_fontspec_declare_shape:nnnn {nnxx} -\cs_generate_variant:Nn \ltj_fontspec_declare_shape_yoko:nnnn {nnxx} -\cs_generate_variant:Nn \ltj_fontspec_declare_shape_tate:nnnn {nnxx} - -\cs_new:Nn \ltj_fontspec_declare_shape_aux:nnnnnn - { - \tl_clear:N \l__fontspec_nfss_tl - \tl_clear:N \l__fontspec_nfss_sc_tl - \tl_set_eq:NN \l__fontspec_saved_fontname_tl \l_fontspec_fontname_tl - - \tl_set:Nn \g_fontspec_encoding_tl {#5} - \tl_set:Nn \l__fontspec_nfss_enc_tl {#5} - \exp_args:Nx \clist_map_inline:nn {#4} - { - \tl_clear:N \l__fontspec_size_tl - \tl_set_eq:NN \l__fontspec_sizedfont_tl \l__fontspec_saved_fontname_tl % in case not spec'ed - - \keys_set_known:nxN {fontspec-sizing} { \exp_after:wN \use:n ##1 } - \l__fontspec_sizing_leftover_clist - \tl_if_empty:NT \l__fontspec_size_tl { \__fontspec_error:n {no-size-info} } - - \str_if_eq:nnTF { #5 } { JY3 } { - % "normal" - \__fontspec_load_fontname:n {\l__fontspec_sizedfont_tl} - } { - \tl_if_empty:NTF \l_ltj_fontspec_fontname_tate_tl - { \__fontspec_load_fontname:n {\l__fontspec_sizedfont_tl} } - { \__fontspec_load_fontname:n {\l_ltj_fontspec_fontname_tate_tl} } - } - \__fontspec_setup_nfss:Nnnn \l__fontspec_nfss_tl {#3} {#6} {} - } - \bool_set_true:N \l__fontspec_nosc_bool - \__fontspec_declare_shapes_normal:nn {#1} {#2} - \__fontspec_declare_shape_slanted:nn {#1} {#2} - } - -\cs_new:Nn \ltj_fontspec_set_family:Nnn { - \cs_set_eq:NN \__fontspec_select_font_family:nn \ltj_fontspec_select_font_family:nn - \__ltj_orig_fontspec_set_family:Nnn #1 {#2} {#3} - \cs_set_eq:NN \__fontspec_select_font_family:nn \__ltj_orig_fontspec_select_font_family:nn -} -\cs_set_eq:NN \__ltj_orig_fontspec_set_family:Nnn \fontspec_set_family:Nnn -\cs_set_eq:NN \__ltj_orig_fontspec_make_font_shapes:Nnnnn \__fontspec_make_font_shapes:Nnnnn -\cs_set_eq:NN \__ltj_fontspec_orig_DeclareFontShape \DeclareFontShape - -\cs_new:Nn \ltj_fontspec_make_font_shapes:Nnnnn { - \group_begin: - %% 基底フォント - \cs_set_eq:NN \__fontspec_font_set:Nnn \use_none:nnn - \cs_set_eq:NN \__fontspec_font_if_null:NT \use_none:nn - \cs_set_eq:NN \__fontspec_declare_shape:nnxx \ltj_fontspec_declare_shape:nnxx - \__ltj_orig_fontspec_make_font_shapes:Nnnnn {#1} {#2} {#3} {#4} {#5} - %% - \ltj_fontspec_make_font_shapes_alt:Nnnnnn {#1}{#2}{#3} - {#4, \l_ltj_fontspec_fontfeat_yoko_clist}{#5} {JY3 } - \ltj_fontspec_make_font_shapes_alt:Nnnnnn {#1}{#2}{#3} - {#4, \l_ltj_fontspec_fontfeat_tate_clist}{#5} {JT3} - \group_end: - } - -%%% Altfont 内部処理部 -\cs_new:Nn \ltj_fontspec_make_font_shapes_alt:Nnnnnn { - \group_begin: - \str_if_eq:nnTF { #6 } { JY3 } { - \cs_set_eq:NN \__fontspec_declare_shape:nnxx \ltj_fontspec_declare_shape_yoko:nnxx - }{ - \cs_set_eq:NN \__fontspec_declare_shape:nnxx \ltj_fontspec_declare_shape_tate:nnxx - } - \keys_set_known:nn {fontspec-ltjaltfont-reparse} { #4 } - \clist_if_empty:NF \l_ltj_fontspec_altfont_clist { - \int_gzero:N \g_ltj_fontspec_altnumber_int - \clist_map_inline:Nn \l_ltj_fontspec_altfont_clist { - \tl_clear:N \l_ltj_fontspec_altrange_tl - \tl_set:Nn \l_ltj_fontspec_altname_tl { #1 } - \tl_set:Nn \l_tmpa_tl { #1 } - - \keys_set_known:nxN {fontspec-ltjaltfont} { \exp_after:wN \use:n ##1 } - \l_ltj_fontspec_altfont_leftover_clist - \keys_set_known:nn {fontspec-ltjaltfont-reparse} { \exp_after:wN \use:n ##1 } - - \tl_if_empty:NT \l_ltj_fontspec_altrange_tl { - \msg_warning:nnn {luatexja-fontspec} {altfont-ignored-by-norange} { ##1 } - } { - \bool_if:nTF { - \tl_if_eq_p:NN \l_ltj_fontspec_altname_tl \l_tmpa_tl - && - \tl_if_empty_p:N \l_ltj_fontspec_altfont_leftover_clist - } { - \msg_warning:nnn {luatexja-fontspec} {altfont-ignored-by-rangeonly} { ##1 } - } { - \__ltj_orig_fontspec_make_font_shapes:Nnnnn - { \l_ltj_fontspec_altname_tl } {#2} - {#3 _ alt \int_use:N \g_ltj_fontspec_altnumber_int } - {#4, \l_ltj_fontspec_altfont_leftover_clist } - {#5} - \DeclareAlternateKanjiFont - { #6 }{ \l_fontspec_family_tl }{#2}{#3}% - { #6 }{ \l_fontspec_family_tl }{#2} - { #3 _alt \int_use:N \g_ltj_fontspec_altnumber_int } - { \l_ltj_fontspec_altrange_tl } - \int_gincr:N \g_ltj_fontspec_altnumber_int - } - } - } - } - \group_end: -} - - -%%%%%%%% User commands -\DeclareDocumentCommand \jfontspec { O{} m O{} } { - \ltj_fontspec_set_family:Nnn \k@family {#1,#3}{#2} - \selectfont - \ignorespaces -} - -\DeclareDocumentCommand \setmainjfont { O{} m O{} } { - \ltj_fontspec_set_family:Nnn \mcdefault {#1,#3}{#2} - \unless\ifltj@disablejfam - \DeclareSymbolFont{mincho}{JY3}{\l_fontspec_family_tl}{\mddefault}{n} - \SetSymbolFont{mincho}{bold}{JY3}{\l_fontspec_family_tl}{\bfdefault}{n} - \fi - \normalfont -} - -\DeclareDocumentCommand \setsansjfont { O{} m O{} } { - \ltj_fontspec_set_family:Nnn \gtdefault {#1,#3}{#2} - \unless\ifltj@disablejfam - \DeclareMathAlphabet{\mathgt}{JY3}{\l_fontspec_family_tl}{\mddefault}{n} - \fi - \normalfont -} - -\DeclareDocumentCommand \newjfontfamily { m O{} m O{} } { - \cs_set_eq:NN \fontspec_set_family:Nnn \ltj_fontspec_set_family:Nnn - \newfontfamily #1 [#2,#4] {#3} - \cs_set_eq:NN \fontspec_set_family:Nnn \__ltj_orig_fontspec_set_family:Nnn -} - -\DeclareDocumentCommand \newjfontface { m O{} m O{} } { - \newjfontfamily #1 [ BoldFont={},ItalicFont={},SmallCapsFont={},#2,#4 ] {#3} -} - -\clist_new:N \g__ltj_fontspec_default_fontopts_clist -\prop_new:N \g__ltj_fontspec_fontopts_prop -\DeclareDocumentCommand \defaultjfontfeatures { t+ o m } - { - \IfNoValueTF {#2} - { \__ltj_fontspec_set_default_features:nn {#1} {#3} } - { \__ltj_fontspec_set_font_default_features:nnn {#1} {#2} {#3} } - \ignorespaces - } -\cs_new:Nn \__ltj_fontspec_set_default_features:nn - { - \clist_set_eq:NN \l__ltj_fontspec_tmp_clist \g__fontspec_default_fontopts_clist - \clist_set_eq:NN \g__fontspec_default_fontopts_clist \g__ltj_fontspec_default_fontopts_clist - \__fontspec_set_default_features:nn {#1} {#2} - \clist_set_eq:NN \g__ltj_fontspec_default_fontopts_clist \g__fontspec_default_fontopts_clist - \clist_set_eq:NN \g__fontspec_default_fontopts_clist \l__ltj_fontspec_tmp_clist - } -\cs_new:Nn \__ltj_fontspec_set_font_default_features:nnn - { - \prop_set_eq:NN \l__ltj_fontspec_tmp_prop \g__fontspec_fontopts_prop - \prop_set_eq:NN \g__fontspec_fontopts_prop \g__ltj_fontspec_fontopts_prop - \__fontspec_set_font_default_features:nnn {#1} {#2} {#3} - \prop_set_eq:NN \g__ltj_fontspec_fontopts_prop \g__fontspec_fontopts_prop - \prop_set_eq:NN \g__fontspec_fontopts_prop \l__ltj_fontspec_tmp_prop - } - -\DeclareDocumentCommand \addjfontfeatures {m} { - \ltj_fontspec_if_fontspec_font:TF - { - \group_begin: - \tl_set_eq:NN \f@family \k@family - \cs_set_eq:NN \__fontspec_select_font_family:nn \ltj_fontspec_select_font_family:nn - \addfontfeatures {#1} - \group_end: - \fontfamily\l_fontspec_family_tl\selectfont - }{ - \msg_warning:nn {luatexja-fontspec} {addjfontfeatures-ignored} - } - \ignorespaces -} - -\cs_set_eq:NN \addjfontfeature \addjfontfeatures - -\prg_new_conditional:Nnn \ltj_fontspec_if_fontspec_font: {TF,T,F} -{ - \cs_if_exist:cTF {g__fontspec_ \k@family _prop} \prg_return_true: \prg_return_false: -} - -\endinput diff --git a/macros/luatex/generic/luatexja/src/addons/luatexja-fontspec-26h.sty b/macros/luatex/generic/luatexja/src/addons/luatexja-fontspec-26h.sty deleted file mode 100644 index 1472633bb0..0000000000 --- a/macros/luatex/generic/luatexja/src/addons/luatexja-fontspec-26h.sty +++ /dev/null @@ -1,412 +0,0 @@ -% -% luatexja-fontspec-26h.sty -% - -\NeedsTeXFormat{LaTeX2e} -\ProvidesPackage{luatexja-fontspec-26h}[2019/05/14 fontspec support of LuaTeX-ja] -\RequirePackage{l3keys2e} -\ExplSyntaxOn - -%%%%%%%% Change Japanese font family by \rmfamily or not -\cs_new:Npn \__ltj_fontspec_match_cmd { - \renewcommand\jttdefault{\gtdefault} - \@ltj@match@familytrue - \DeclareDocumentCommand \setmonojfont { O{} m O{} } { - \__ltj_fontspec_set_family:Nnn \jttdefault {##1,##3}{##2} - \normalfont - } -} -\bool_if:NT \__ltj_fontspec_match_bool \__ltj_fontspec_match_cmd - -%%%%%%%% Messages -\msg_new:nnn {luatexja-fontspec} {addjfontfeatures-ignored} -{ - \string\addjfontfeature (s)~ ignored;\\ - it~ cannot~ be~ used~ with~ a~ font~ that~ wasn't~ selected~ by~ luatexja-fontspec. -} - -\msg_new:nnn {luatexja-fontspec} {altfont-ignored-by-norange} -{ - ignored~ sublist~ `#1'~ in~ AltFont~ (no~ range~ is~ specified). -} - -\msg_new:nnn {luatexja-fontspec} {altfont-ignored-by-rangeonly} -{ - ignored~ sublist~ `#1'~ in~ AltFont~ (only~ range~ is~ specified). -} - -\cs_generate_variant:Nn \prg_new_conditional:Nnn {Nnx} - -%%%%%%%% Internal control sequences -%% Each CS is ltj_fontspec version that corresponds to original CS of fontspec. -\cs_new:Nn \__ltj_fontspec_define_option:nn { - \__fontspec_keys_define_code:nnn {fontspec} {#1} {#2} -} -\cs_new:Nn \__ltj_fontspec_define_preparse_external:nn { - \__fontspec_keys_define_code:nnn {fontspec-preparse-external} {#1} {#2} -} -\cs_new:Nn \__ltj_fontspec_define_altfont_option:nn { - \__fontspec_keys_define_code:nnn {fontspec-ltjaltfont} {#1} {#2} -} - -%% Alternate Fonts -%% Spec: AltFont = { -%% ... -%% { Range = , }, -%% { Range = , Font = , }, -%% { Range = , Font = }, -%% ... -%% } -\tl_new:N \l__ltj_fontspec_altname_tl -\tl_new:N \l__ltj_fontspec_altrange_tl -\clist_new:N \l__ltj_fontspec_altfont_clist -\clist_new:N \l__ltj_fontspec_altfont_leftover_clist -\int_new:N \g__ltj_fontspec_altnumber_int - -\__ltj_fontspec_define_altfont_option:nn {Range} { - \tl_set:Nn \l__ltj_fontspec_altrange_tl {#1} -} -\__ltj_fontspec_define_altfont_option:nn {Font} { - \fontspec_complete_fontname:Nn \l__ltj_fontspec_altname_tl {#1} -} -\__fontspec_keys_define_code:nnn {fontspec-ltjaltfont-reparse} {AltFont} { - \clist_put_right:Nn \l__ltj_fontspec_altfont_clist { #1 } -} -\__fontspec_keys_define_code:nnn {fontspec-ltjaltfont-reparse} {YokoFeatures} { - \clist_put_right:Nn \l__ltj_fontspec_fontfeat_yoko_clist { #1 } -} -\__fontspec_keys_define_code:nnn {fontspec-ltjaltfont-reparse} {TateFeatures} { - \clist_put_right:Nn \l__ltj_fontspec_fontfeat_tate_clist { #1 } -} -\__fontspec_keys_define_code:nnn {fontspec-ltjaltfont-reparse} {TateFont} { - \tl_if_empty:nF {#1} { - \fontspec_complete_fontname:Nn \l__ltj_fontspec_fontname_tate_tl {#1} - } -} -%% -\clist_new:N \l__ltj_fontspec_fontfeat_yoko_clist -\clist_new:N \l__ltj_fontspec_fontfeat_tate_clist -\tl_new:N \l__ltj_fontspec_fontname_tate_tl - -\cs_new:Npn \__ltj_fontspec_DeclareFontFamily #1 #2 #3 { - \DeclareKanjiFamily {JY3} {#2} {#3} - \DeclareKanjiFamily {JT3} {#2} {#3} -} - -%% save and restore global variable -\tl_new:N \g__ltj_fontspec_kanji_nfss_family_tl -\tl_new:N \g__ltj_fontspec_orig_nfss_family_tl -\seq_new:N \g__ltj_fontspec_kanji_bf_series_seq -\seq_new:N \g__ltj_fontspec_orig_bf_series_seq -\clist_new:N \g__ltj_fontspec_kanji_default_fontopts_clist -\clist_new:N \g__ltj_fontspec_orig_default_fontopts_clist - -\cs_new:Nn \__ltj_set_global_variable_for_kanji: { - \tl_gset_eq:NN \g__ltj_fontspec_orig_nfss_family_tl \g__fontspec_nfss_family_tl - \tl_gset_eq:NN \g__fontspec_nfss_family_tl \g__ltj_fontspec_kanji_nfss_family_tl - \seq_gset_eq:NN \g__ltj_fontspec_orig_bf_series_seq \g__fontspec_bf_series_seq - \seq_gset_eq:NN \g__fontspec_bf_series_seq \g__ltj_fontspec_kanji_bf_series_seq - %\seq_gclear:N \g__fontspec_bf_series_seq - \clist_set_eq:NN \g__ltj_fontspec_orig_default_fontopts_clist \g__fontspec_default_fontopts_clist - \clist_set_eq:NN \g__fontspec_default_fontopts_clist \g__ltj_fontspec_kanji_default_fontopts_clist -} - -\cs_new:Nn \__ltj_restore_global_variable: { - \tl_gset_eq:NN \g__ltj_fontspec_kanji_nfss_family_tl \g__fontspec_nfss_family_tl - \tl_gset_eq:NN \g__fontspec_nfss_family_tl \g__ltj_fontspec_orig_nfss_family_tl - \seq_gset_eq:NN \g__ltj_fontspec_kanji_bf_series_seq \g__fontspec_bf_series_seq - \seq_gset_eq:NN \g__fontspec_bf_series_seq \g__ltj_fontspec_orig_bf_series_seq - \clist_set_eq:NN \g__ltj_fontspec_kanji_default_fontopts_clist \g__fontspec_default_fontopts_clist - \clist_set_eq:NN \g__fontspec_default_fontopts_clist \g__ltj_fontspec_orig_default_fontopts_clist -} - -\cs_set_eq:NN \__ltj_orig_fontspec_select_font_family:nn \__fontspec_select_font_family:nn -\cs_new_protected:Nn \__ltj_fontspec_select_font_family:nn { - \group_begin: - \__ltj_fontspec_define_option:nn {NoEmbed} {} - \__ltj_fontspec_define_option:nn {AltFont} { - \clist_put_right:Nn \l__ltj_fontspec_altfont_clist { ##1 } - } - \__ltj_fontspec_define_option:nn {CID} { - \__fontspec_update_featstr:n {cid=##1} - } - \__ltj_fontspec_define_option:nn {Kanjiskip} { - \str_if_eq_x:nnTF {false} { \str_lower_case:n { ##1 } }{ - \__fontspec_update_featstr:n {-ltjksp} - } { - \__fontspec_update_featstr:n {+ltjksp} - } - } - \__ltj_fontspec_define_option:nn {JFM} { - \__fontspec_update_featstr:n {jfm=##1} - } - % vary by shape - \__ltj_fontspec_define_option:nn {YokoFeatures} { - \clist_put_right:Nn \l__ltj_fontspec_fontfeat_yoko_clist { ##1 } - } - \__ltj_fontspec_define_option:nn {TateFeatures} { - \clist_put_right:Nn \l__ltj_fontspec_fontfeat_tate_clist { ##1 } - } - \__ltj_fontspec_define_option:nn {TateFont} - { - \tl_if_empty:nF {##1} { - \fontspec_complete_fontname:Nn \l__ltj_fontspec_fontname_tate_tl {##1} - } - } - \__ltj_fontspec_define_option:nn {JFM-var} { - \__fontspec_update_featstr:n {jfmvar=##1} - } - \__ltj_fontspec_define_preparse_external:nn {NoEmbed} { - \cs_set:Npn \__fontspec_fontname_wrap:n ##1 {psft:##1} - } - - %% Omit the warning message - %% "OpenType feature 'Kerning=Off' (-kern) not available ..." - \keys_define:nn {fontspec-opentype} { - Kerning/Off.code:n=\__fontspec_update_featstr:n {-kern} - } - \clist_set:Nx \g__fontspec_default_fontopts_clist { - YokoFeatures = { JFM=\ltj@stdyokojfm }, TateFeatures = { JFM=\ltj@stdtatejfm }, - Scale=\Cjascale, Kerning=Off, Script=CJK, - \g__ltj_fontspec_kanji_default_fontopts_clist - } - \prop_set_eq:NN \g__fontspec_fontopts_prop \g__ltj_fontspec_fontopts_prop - \cs_set_eq:NN \__fontspec_make_font_shapes:Nnnnn \__ltj_fontspec_make_font_shapes:Nnnnn - \cs_set_eq:NN \DeclareFontFamily \__ltj_fontspec_DeclareFontFamily - \tl_set:Nn \g_fontspec_encoding_tl {JY3} - \__ltj_orig_fontspec_select_font_family:nn{#1}{#2} - - \cs_gset:Npx \__ltj_fontspec_aftergroup { - \exp_not:N \tl_set:Nn \exp_not:N \l_fontspec_family_tl { \l_fontspec_family_tl } - } - \aftergroup \__ltj_fontspec_aftergroup - \group_end: -} - -%% declare_shape - -\cs_new:Nn \__ltj_fontspec_declare_shape_yoko:nnnn { - \__ltj_fontspec_declare_shape_aux:nnnnnn {#1} {#2} {#3} {#4} { JY3 } { \l__ltj_fontspec_fontfeat_yoko_clist } -} -\cs_new:Nn \__ltj_fontspec_declare_shape_tate:nnnn { - \__ltj_fontspec_declare_shape_aux:nnnnnn {#1} {#2} {#3} {#4} { JT3 } { \l__ltj_fontspec_fontfeat_tate_clist } -} -\cs_new:Nn \__ltj_fontspec_declare_shape:nnnn { - \__ltj_fontspec_declare_shape_yoko:nnnn {#1} {#2} {#3} {#4} - \__ltj_fontspec_declare_shape_tate:nnnn {#1} {#2} {#3} {#4} -} -\cs_generate_variant:Nn \__ltj_fontspec_declare_shape:nnnn {nnxx} -\cs_generate_variant:Nn \__ltj_fontspec_declare_shape_yoko:nnnn {nnxx} -\cs_generate_variant:Nn \__ltj_fontspec_declare_shape_tate:nnnn {nnxx} - -\cs_new:Nn \__ltj_fontspec_declare_shape_aux:nnnnnn - { - \tl_clear:N \l__fontspec_nfss_tl - \tl_clear:N \l__fontspec_nfss_sc_tl - \tl_set_eq:NN \l__fontspec_saved_fontname_tl \l_fontspec_fontname_tl - - \tl_set:Nn \g_fontspec_encoding_tl {#5} - \tl_set:Nn \g__fontspec_nfss_enc_tl {#5} - \exp_args:Nx \clist_map_inline:nn {#4} - { - \tl_clear:N \l__fontspec_size_tl - \tl_set_eq:NN \l__fontspec_sizedfont_tl \l__fontspec_saved_fontname_tl % in case not spec'ed - - \keys_set_known:nxN {fontspec-sizing} { \exp_after:wN \use:n ##1 } - \l__fontspec_sizing_leftover_clist - \tl_if_empty:NT \l__fontspec_size_tl { \__fontspec_error:n {no-size-info} } - - \cs_if_exist:NTF \__fontspec_load_fontname:Nn - { %% >= v2.7 - \str_if_eq:nnTF { #5 } { JY3 } { - % "normal" - \__fontspec_load_fontname:Nn \l_fontspec_fontname_tl {\l__fontspec_sizedfont_tl} - } { - \tl_if_empty:NTF \l__ltj_fontspec_fontname_tate_tl - { \__fontspec_load_fontname:Nn \l_fontspec_fontname_tl {\l__fontspec_sizedfont_tl} } - { \__fontspec_load_fontname:Nn \l_fontspec_fontname_tl {\l__ltj_fontspec_fontname_tate_tl} } - } - } { %% < v2.7 - \str_if_eq:nnTF { #5 } { JY3 } { - % "normal" - \__fontspec_load_fontname:n {\l__fontspec_sizedfont_tl} - } { - \tl_if_empty:NTF \l__ltj_fontspec_fontname_tate_tl - { \__fontspec_load_fontname:n {\l__fontspec_sizedfont_tl} } - { \__fontspec_load_fontname:n {\l__ltj_fontspec_fontname_tate_tl} } - } - } - \__fontspec_setup_nfss:Nnnn \l__fontspec_nfss_tl {#3} {#6} {} - } - \bool_set_true:N \l__fontspec_nosc_bool - \__fontspec_declare_shapes_normal:nn {#1} {#2} - \__fontspec_declare_shape_slanted:nn {#1} {#2} - } - -\cs_new:Nn \__ltj_fontspec_set_family:Nnn { - \__ltj_set_global_variable_for_kanji: - \cs_set_eq:NN \__fontspec_select_font_family:nn \__ltj_fontspec_select_font_family:nn - \__ltj_orig_fontspec_set_family:Nnn #1 {#2} {#3} - \cs_set_eq:NN \__fontspec_select_font_family:nn \__ltj_orig_fontspec_select_font_family:nn - \__ltj_restore_global_variable: -} -\cs_set_eq:NN \__ltj_orig_fontspec_set_family:Nnn \fontspec_set_family:Nnn -\cs_set_eq:NN \__ltj_orig_fontspec_make_font_shapes:Nnnnn \__fontspec_make_font_shapes:Nnnnn -\cs_set_eq:NN \__ltj_fontspec_orig_DeclareFontShape \DeclareFontShape - -\cs_new:Nn \__ltj_fontspec_make_font_shapes:Nnnnn { - \group_begin: - %% 基底フォント - \cs_set_eq:NN \__fontspec_font_set:Nnn \use_none:nnn - \cs_set_eq:NN \__fontspec_font_if_null:NT \use_none:nn - \cs_set_eq:NN \__fontspec_declare_shape:nnxx \__ltj_fontspec_declare_shape:nnxx - \__ltj_orig_fontspec_make_font_shapes:Nnnnn {#1} {#2} {#3} {#4} {#5} - %% - \__ltj_fontspec_make_font_shapes_alt:Nnnnnn {#1}{#2}{#3} - {#4, \l__ltj_fontspec_fontfeat_yoko_clist}{#5} {JY3 } - \__ltj_fontspec_make_font_shapes_alt:Nnnnnn {#1}{#2}{#3} - {#4, \l__ltj_fontspec_fontfeat_tate_clist}{#5} {JT3} - \group_end: - } - -%%% Altfont 内部処理部 -\cs_new:Nn \__ltj_fontspec_make_font_shapes_alt:Nnnnnn { - \group_begin: - \str_if_eq:nnTF { #6 } { JY3 } { - \cs_set_eq:NN \__fontspec_declare_shape:nnxx \__ltj_fontspec_declare_shape_yoko:nnxx - }{ - \cs_set_eq:NN \__fontspec_declare_shape:nnxx \__ltj_fontspec_declare_shape_tate:nnxx - } - \keys_set_known:nn {fontspec-ltjaltfont-reparse} { #4 } - \clist_if_empty:NF \l__ltj_fontspec_altfont_clist { - \int_gzero:N \g__ltj_fontspec_altnumber_int - \clist_map_inline:Nn \l__ltj_fontspec_altfont_clist { - \tl_clear:N \l__ltj_fontspec_altrange_tl - \tl_set:Nn \l__ltj_fontspec_altname_tl { #1 } - \tl_set:Nn \l_tmpa_tl { #1 } - - \keys_set_known:nxN {fontspec-ltjaltfont} { \exp_after:wN \use:n ##1 } - \l__ltj_fontspec_altfont_leftover_clist - \keys_set_known:nn {fontspec-ltjaltfont-reparse} { \exp_after:wN \use:n ##1 } - - \tl_if_empty:NT \l__ltj_fontspec_altrange_tl { - \msg_warning:nnn {luatexja-fontspec} {altfont-ignored-by-norange} { ##1 } - } { - \bool_if:nTF { - \tl_if_eq_p:NN \l__ltj_fontspec_altname_tl \l_tmpa_tl - && - \tl_if_empty_p:N \l__ltj_fontspec_altfont_leftover_clist - } { - \msg_warning:nnn {luatexja-fontspec} {altfont-ignored-by-rangeonly} { ##1 } - } { - \__ltj_orig_fontspec_make_font_shapes:Nnnnn - { \l__ltj_fontspec_altname_tl } {#2} - {#3 _ alt \int_use:N \g__ltj_fontspec_altnumber_int } - {#4, \l__ltj_fontspec_altfont_leftover_clist } - {#5} - \DeclareAlternateKanjiFont - { #6 }{ \g__fontspec_nfss_family_tl }{#2}{#3}% - { #6 }{ \g__fontspec_nfss_family_tl }{#2} - { #3 _alt \int_use:N \g__ltj_fontspec_altnumber_int } - { \l__ltj_fontspec_altrange_tl } - \int_gincr:N \g__ltj_fontspec_altnumber_int - } - } - } - } - \group_end: -} - - -%%%%%%%% User commands -\DeclareDocumentCommand \jfontspec { O{} m O{} } { - \__ltj_fontspec_set_family:Nnn \k@family {#1,#3}{#2} - \selectfont - \ignorespaces -} - -\DeclareDocumentCommand \setmainjfont { O{} m O{} } { - \__ltj_fontspec_set_family:Nnn \mcdefault {#1,#3}{#2} - \unless\ifltj@disablejfam - \DeclareSymbolFont{mincho}{JY3}{\mcdefault}{\mddefault}{n} - \SetSymbolFont{mincho}{bold}{JY3}{\mcdefault}{\bfdefault}{n} - \fi - \normalfont -} - -\DeclareDocumentCommand \setsansjfont { O{} m O{} } { - \__ltj_fontspec_set_family:Nnn \gtdefault {#1,#3}{#2} - \unless\ifltj@disablejfam - \DeclareMathAlphabet{\mathgt}{JY3}{\gtdefault}{\mddefault}{n} - \fi - \normalfont -} - -\DeclareDocumentCommand \newjfontfamily { m O{} m O{} } { - \cs_set_eq:NN \fontspec_set_family:Nnn \__ltj_fontspec_set_family:Nnn - \newfontfamily #1 [#2,#4] {#3} - \cs_set_eq:NN \fontspec_set_family:Nnn \__ltj_orig_fontspec_set_family:Nnn -} -\DeclareDocumentCommand \renewjfontfamily { m O{} m O{} } { - \cs_set_eq:NN \fontspec_set_family:Nnn \__ltj_fontspec_set_family:Nnn - \renewfontfamily #1 [#2,#4] {#3} - \cs_set_eq:NN \fontspec_set_family:Nnn \__ltj_orig_fontspec_set_family:Nnn -} -\DeclareDocumentCommand \setjfontfamily { m O{} m O{} } { - \cs_set_eq:NN \fontspec_set_family:Nnn \__ltj_fontspec_set_family:Nnn - \setfontfamily #1 [#2,#4] {#3} - \cs_set_eq:NN \fontspec_set_family:Nnn \__ltj_orig_fontspec_set_family:Nnn -} - -\DeclareDocumentCommand \newjfontface { m O{} m O{} } { - \newjfontfamily #1 [ BoldFont={},ItalicFont={},SmallCapsFont={},#2,#4 ] {#3} -} - -\prop_new:N \g__ltj_fontspec_fontopts_prop -\DeclareDocumentCommand \defaultjfontfeatures { t+ o m } - { - \IfNoValueTF {#2} - { \__ltj_fontspec_set_default_features:nn {#1} {#3} } - { \__ltj_fontspec_set_font_default_features:nnn {#1} {#2} {#3} } - \ignorespaces - } -\cs_new:Nn \__ltj_fontspec_set_default_features:nn - { - \__ltj_set_global_variable_for_kanji: - \__fontspec_set_default_features:nn {#1} {#2} - \__ltj_restore_global_variable: - } -\cs_new:Nn \__ltj_fontspec_set_font_default_features:nnn - { - \prop_set_eq:NN \l__ltj_fontspec_tmp_prop \g__fontspec_fontopts_prop - \prop_set_eq:NN \g__fontspec_fontopts_prop \g__ltj_fontspec_fontopts_prop - \__fontspec_set_font_default_features:nnn {#1} {#2} {#3} - \prop_set_eq:NN \g__ltj_fontspec_fontopts_prop \g__fontspec_fontopts_prop - \prop_set_eq:NN \g__fontspec_fontopts_prop \l__ltj_fontspec_tmp_prop - } - -\DeclareDocumentCommand \addjfontfeatures {m} { - \__ltj_fontspec_if_fontspec_font:TF - { - \__ltj_set_global_variable_for_kanji: - \group_begin: - \tl_set_eq:NN \f@family \k@family - \cs_set_eq:NN \__fontspec_select_font_family:nn \__ltj_fontspec_select_font_family:nn - \addfontfeatures {#1} - \group_end: - \kanjifamily\g__fontspec_nfss_family_tl\selectfont - \__ltj_restore_global_variable: - }{ - \msg_warning:nn {luatexja-fontspec} {addjfontfeatures-ignored} - } - \ignorespaces -} - -\cs_set_eq:NN \addjfontfeature \addjfontfeatures - -\prg_new_conditional:Nnn \__ltj_fontspec_if_fontspec_font: {TF,T,F} -{ - \cs_if_exist:cTF {g__fontspec_fontinfo_ \k@family _prop} \prg_return_true: \prg_return_false: -} - -\endinput diff --git a/macros/luatex/generic/luatexja/src/addons/luatexja-fontspec-27c.sty b/macros/luatex/generic/luatexja/src/addons/luatexja-fontspec-27c.sty index 88d6b37b58..bb6b5f0bd1 100644 --- a/macros/luatex/generic/luatexja/src/addons/luatexja-fontspec-27c.sty +++ b/macros/luatex/generic/luatexja/src/addons/luatexja-fontspec-27c.sty @@ -3,7 +3,7 @@ % \NeedsTeXFormat{LaTeX2e} -\ProvidesPackage{luatexja-fontspec-27c}[2019/05/14 fontspec support of LuaTeX-ja] +\ProvidesPackage{luatexja-fontspec-27c}[2019/11/15 fontspec support of LuaTeX-ja] \RequirePackage{l3keys2e} \ExplSyntaxOn @@ -131,7 +131,7 @@ \__fontspec_update_featstr:n {cid=##1} } \__ltj_fontspec_define_option:nn {Kanjiskip} { - \str_if_eq_x:nnTF {false} { \str_lower_case:n { ##1 } }{ + \str_if_eq:eeTF {false} { \str_lower_case:n { ##1 } }{ \__fontspec_update_featstr:n {-ltjksp} } { \__fontspec_update_featstr:n {+ltjksp} @@ -226,7 +226,7 @@ \l__fontspec_sizing_leftover_clist \tl_if_empty:NT \l__fontspec_size_tl { \__fontspec_error:n {no-size-info} } - \str_if_eq:nnTF { \g__fontspec_nfss_enc_tl } { JY3 } { + \str_if_eq:eeTF { \g__fontspec_nfss_enc_tl } { JY3 } { % "normal" \__fontspec_load_fontname:Nn \l_fontspec_fontname_tl {\l__fontspec_sizedfont_tl} } { @@ -266,7 +266,7 @@ %%% Altfont 内部処理部 \cs_new:Nn \__ltj_fontspec_make_font_shapes_alt:Nnnnnn { \group_begin: - \str_if_eq:nnTF { #6 } { JY3 } { + \str_if_eq:eeTF { #6 } { JY3 } { \cs_set_eq:NN \__fontspec_declare_shape:nnxx \__ltj_fontspec_declare_shape_yoko:nnxx }{ \cs_set_eq:NN \__fontspec_declare_shape:nnxx \__ltj_fontspec_declare_shape_tate:nnxx diff --git a/macros/luatex/generic/luatexja/src/addons/luatexja-fontspec.sty b/macros/luatex/generic/luatexja/src/addons/luatexja-fontspec.sty index b967926cb7..e32d20ab38 100644 --- a/macros/luatex/generic/luatexja/src/addons/luatexja-fontspec.sty +++ b/macros/luatex/generic/luatexja/src/addons/luatexja-fontspec.sty @@ -27,12 +27,8 @@ } \ProcessKeysOptions{ luatexja-fontspec } -\RequirePackage{fontspec}[2017/01/01]% v2.5c -\@ifpackagelater{fontspec}{2018/07/29}% - {\@ifpackagelater{fontspec}{2019/03/15}% - {\RequirePackage{luatexja-fontspec-27c}} % v2.7c - {\RequirePackage{luatexja-fontspec-26h}}}% v2.6h - {\RequirePackage{luatexja-fontspec-25c}} % v2.5c +\RequirePackage{fontspec}[2019/03/15]% v2.7c +\RequirePackage{luatexja-fontspec-27c} % v2.7c \ExplSyntaxOff %%%%%%%% Now we completely ignore kanjifont definition file. diff --git a/macros/luatex/generic/luatexja/src/addons/luatexja-preset.sty b/macros/luatex/generic/luatexja/src/addons/luatexja-preset.sty index 2eb38c8384..e126f6f90f 100644 --- a/macros/luatex/generic/luatexja/src/addons/luatexja-preset.sty +++ b/macros/luatex/generic/luatexja/src/addons/luatexja-preset.sty @@ -312,6 +312,19 @@ __custom = false, __office = false, __noembed = false, } +% HaranoAji {Mincho, Gothic} +\ltjpreset_declare_preset:nx{haranoaji}{ + mc-m = HaranoAjiMincho-Regular.otf, + mc-bx = HaranoAjiMincho-Bold.otf, + gt-d = HaranoAjiGothic-Regular.otf, + gt-bx = HaranoAjiGothic-Bold.otf, + gt-u = HaranoAjiGothic-Medium.otf, + gt-eb = HaranoAjiGothic-Heavy.otf, + mg-m = HaranoAjiGothic-Heavy.otf, + mc-l = HaranoAjiMincho-Light.otf, + __custom = false, __office = false, __noembed = false, +} + % ipa, ipaex, ms \ltjpreset_declare_preset:nx{ipa}{ diff --git a/macros/luatex/generic/luatexja/src/ltj-base.lua b/macros/luatex/generic/luatexja/src/ltj-base.lua index a069215b09..3f4a0ba1f8 100644 --- a/macros/luatex/generic/luatexja/src/ltj-base.lua +++ b/macros/luatex/generic/luatexja/src/ltj-base.lua @@ -185,7 +185,7 @@ end -- not used in current LuaTeX-ja do --! ixbase.counter と同じ - counter = {} + local counter = {} local mt_counter = {} setmetatable(counter, mt_counter) @@ -373,10 +373,10 @@ function ltjb.add_to_callback(name,fun,description,priority) "resetting exclusive callback: " .. name) luatexbase.reset_callback(name) end - local saved_callback={},ff,dd + local saved_callback={} for k,v in ipairs(luatexbase.callback_descriptions(name)) do if k >= priority then - ff,dd= luatexbase.remove_from_callback(name, v) + local ff,dd = luatexbase.remove_from_callback(name, v) saved_callback[#saved_callback+1]={ff,dd} end end diff --git a/macros/luatex/generic/luatexja/src/ltj-jfont.lua b/macros/luatex/generic/luatexja/src/ltj-jfont.lua index dc832e9836..d63da29447 100644 --- a/macros/luatex/generic/luatexja/src/ltj-jfont.lua +++ b/macros/luatex/generic/luatexja/src/ltj-jfont.lua @@ -773,16 +773,18 @@ do if rotate_in_uax50(i) then rot[i] = true end end ltju.loop_over_feat(tfmdata, vert_vrt2, function (i,k) rot[i] = nil end) - -- 同じグリフが複数の Unicode ポイントを持っている場合. - -- いずれかの Unicode ポイントで rot = true ならば全体で rotate - ltju.loop_over_duplicates(tfmdata, - function (i, v) - local f = rot[i] - if not f then - for j,_ in pairs(v) do if rot[j] then f=true; break end end - end - rot[i]=f; for j,_ in pairs(v) do rot[j]=f end - end) + -- ↓「TeX Live 2019のLuaLaTeXで縦書きの三点リーダーが横書きになる」 + -- (https://oku.edu.mie-u.ac.jp/tex/mod/forum/discuss.php?d=2722) により無効化 + -- -- 同じグリフが複数の Unicode ポイントを持っている場合. + -- -- いずれかの Unicode ポイントで rot = true ならば全体で rotate + --ltju.loop_over_duplicates(tfmdata, + -- function (i, v) + -- local f = rot[i] + -- if not f then + -- for j,_ in pairs(v) do if rot[j] then f=true; break end end + -- end + -- rot[i]=f; for j,_ in pairs(v) do rot[j]=f end + -- end) for i,_ in pairs(rot) do dest = dest or {}; dest.rotation = dest.rotation or {} dest.rotation[i] = true diff --git a/macros/luatex/generic/luatexja/src/ltj-lotf_aux.lua b/macros/luatex/generic/luatexja/src/ltj-lotf_aux.lua index 613291f7a9..04cae9d2f1 100644 --- a/macros/luatex/generic/luatexja/src/ltj-lotf_aux.lua +++ b/macros/luatex/generic/luatexja/src/ltj-lotf_aux.lua @@ -10,10 +10,6 @@ luatexja.lotf_aux = aux local font_metric_table = {} aux.font_metric_table = font_metric_table -local function is_harf(t) - return luaharfbuzz and package.loaded['harf'] and require("harf-base") -end - local getfont = font.getfont local provides_feature = luaotfload.aux.provides_feature function aux.exist_feature(id, name) @@ -28,15 +24,15 @@ function aux.enable_feature(id, name) local t = getfont(id) if t and t.shared and t.shared.features then t.shared.features[name] = true - elseif t and is_harf(t) then -- HARFLOAD - local hb, tf = require("harf-base"), t.hb.spec.features + elseif t and t.hb then -- HARF + local hb, tf = luaotfload.harfbuzz, t.hb.spec.hb_features tf[#tf+1] = hb.Feature.new(name) end end function aux.specified_feature(id, name) local t = getfont(id) return t and (t.shared and t.shared.features and t.shared.features[name]) - or (t.hb and t.hb.spec and t.hb.spec.options and t.hb.spec.options[name]) -- HARFLOAD + or (t.hb and t.hb.spec and t.hb.spec.features.raw and t.hb.spec.features.raw[name]) -- HARF end @@ -53,14 +49,18 @@ end local function get_asc_des(id) local t, v = getfont(id), font_metric_table[id] local a, d - if t and t.shared then + if t and t.shared and t.shared.rawdata then local u = t.units local t2 = t.shared.rawdata.metadata if t2 then a, d = t2.ascender and t2.ascender/u, t2.descender and -t2.descender/u end - -- HARFLOAD h_extents() returns "too large" value...? - -- rawdata.metadata.horizontalmetrics is same + elseif t.hb then -- HARF + local hbfont, u = t.hb.shared.font, t.hb.shared.upem + local h = hbfont:get_h_extents() + if h and u then + a, d = h.ascender and h.ascender/u, h.descender and -h.descender/u + end end v.ascender, v.descender = (a or 0.88)*t.size, (d or 0.12)*t.size end @@ -80,9 +80,10 @@ local dummy_vht, dummy_vorg = {}, {} setmetatable(dummy_vht, {__index = function () return 1 end } ) setmetatable(dummy_vorg, {__index = function () return 0.88 end } ) local function get_vmet_table(tfmdata, dest) - if (not tfmdata) or (not tfmdata.shared) then + if (not tfmdata) or (not tfmdata.shared) or (not tfmdata.shared.rawdata) then dest = dest or {} dest.vorigin, dest.vheight = dummy_vorg, dummy_vht + dest.ind_to_uni = {} return dest end local rawdata = tfmdata.shared.rawdata @@ -115,7 +116,7 @@ end local function loop_over_duplicates(id, func) -- func: return non-nil iff abort this fn local t = (type(id)=="table") and id or getfont(id) - if t and t.resources and t.resources.duplicates then + if t and t.resources and t.resources.duplicates then -- HARF: not executed for i,v in pairs(t.resources.duplicates) do func(i,v) end @@ -128,7 +129,7 @@ local function loop_over_feat(id, feature_name, func, universal) -- func: return non-nil iff abort this fn -- universal: true iff look up all (script, lang) pair local t = (type(id)=="table") and id or getfont(id) - if t and t.resources and t.resources.sequences then + if t and t.resources and t.resources.sequences then -- HARF: not executed for _,i in pairs(t.resources.sequences) do if i.order[1] and feature_name[i.order[1]] then local f = i.features and i.features[i.order[1]] diff --git a/macros/luatex/generic/luatexja/src/ltj-rmlgbm.lua b/macros/luatex/generic/luatexja/src/ltj-rmlgbm.lua index 7fc5eb11af..bd3110fd7f 100644 --- a/macros/luatex/generic/luatexja/src/ltj-rmlgbm.lua +++ b/macros/luatex/generic/luatexja/src/ltj-rmlgbm.lua @@ -210,7 +210,9 @@ do end -- Save - k.characters[46].width = math.floor(655360/14); + if k and k.characters and k.characters[46] then + k.characters[46].width = math.floor(655360/14); + end ltjb.save_cache( "ltj-cid-auto-" .. string.lower(cid_name), { version = cache_ver, diff --git a/macros/luatex/generic/luatexja/src/ltjclasses.dtx b/macros/luatex/generic/luatexja/src/ltjclasses.dtx index 3112fd1c22..590ff597a2 100644 --- a/macros/luatex/generic/luatexja/src/ltjclasses.dtx +++ b/macros/luatex/generic/luatexja/src/ltjclasses.dtx @@ -121,7 +121,8 @@ % (sync with ltsect.dtx 2018/09/26 v1.1c)} % \changes{v1.8b}{2019/04/02}{新元号対応} % \changes{v1.8b-ltj-17}{2019/08/12}{disablejfamの``Unused global option(s)''警告を出さないようにした} - +% \changes{v1.8c}{2019/10/17}{フォントサイズ変更命令をrobustに +% (sync with classes.dtx 2019/08/27 v1.4j)} % \fi % % \iffalse @@ -151,7 +152,7 @@ %<11pt&bk>\ProvidesFile{ltjtbk11.clo} %<12pt&bk>\ProvidesFile{ltjtbk12.clo} % - [2019/08/12 v1.8b-ltj-17 + [2019/10/17 v1.8c-ltj-17 % Standard LuaLaTeX-ja class] %<10pt|11pt|12pt> Standard LuaLaTeX-ja file (size option)] %<*driver> @@ -718,6 +719,17 @@ %\kanjiencoding{\kanjiencodingdefault}% \normalsize % \end{macrocode} +% +% |\normalsize|をrobustにします。 +% すぐ上で|\DeclareRobustCommand|とせずに、 +% カーネルの定義を|\renewcommand|した後に|\MakeRobust|を使っている理由は、 +% ログに |LaTeX Info: Redefining \normalsize on input line ...| という +% メッセージを出したくないからです。 +% \changes{v1.8c}{2019/10/17}{フォントサイズ変更命令をrobustに +% (sync with classes.dtx 2019/08/27 v1.4j)} +% \begin{macrocode} +\MakeRobust\normalsize +% \end{macrocode} % \end{macro} % \end{macro} % @@ -748,8 +760,11 @@ % % \begin{macro}{\small} % |\small|コマンドの定義は、|\normalsize|に似ています。 +% こちらはカーネルで未定義なので、直接|\DeclareRobustCommand|で定義します。 +% \changes{v1.8c}{2019/10/17}{フォントサイズ変更命令をrobustに +% (sync with classes.dtx 2019/08/27 v1.4j)} % \begin{macrocode} -\newcommand{\small}{% +\DeclareRobustCommand{\small}{% %<*10pt> \@setfontsize\small\@ixpt{11}% \abovedisplayskip 8.5\p@ \@plus3\p@ \@minus4\p@ @@ -786,8 +801,11 @@ % % \begin{macro}{\footnotesize} % |\footnotesize|コマンドの定義は、|\normalsize|に似ています。 +% こちらも直接|\DeclareRobustCommand|で定義します。 +% \changes{v1.8c}{2019/10/17}{フォントサイズ変更命令をrobustに +% (sync with classes.dtx 2019/08/27 v1.4j)} % \begin{macrocode} -\newcommand{\footnotesize}{% +\DeclareRobustCommand{\footnotesize}{% %<*10pt> \@setfontsize\footnotesize\@viiipt{9.5}% \abovedisplayskip 6\p@ \@plus2\p@ \@minus4\p@ @@ -831,32 +849,34 @@ % \begin{macro}{\Huge} % これらは先ほどのマクロよりも簡単です。これらはフォントサイズを変更する % だけで、リスト環境とディスプレイ数式のパラメータは変更しません。 +% \changes{v1.8c}{2019/10/17}{フォントサイズ変更命令をrobustに +% (sync with classes.dtx 2019/08/27 v1.4j)} % \begin{macrocode} %<*10pt> -\newcommand{\scriptsize}{\@setfontsize\scriptsize\@viipt\@viiipt} -\newcommand{\tiny}{\@setfontsize\tiny\@vpt\@vipt} -\newcommand{\large}{\@setfontsize\large\@xiipt{17}} -\newcommand{\Large}{\@setfontsize\Large\@xivpt{21}} -\newcommand{\LARGE}{\@setfontsize\LARGE\@xviipt{25}} -\newcommand{\huge}{\@setfontsize\huge\@xxpt{28}} -\newcommand{\Huge}{\@setfontsize\Huge\@xxvpt{33}} +\DeclareRobustCommand{\scriptsize}{\@setfontsize\scriptsize\@viipt\@viiipt} +\DeclareRobustCommand{\tiny}{\@setfontsize\tiny\@vpt\@vipt} +\DeclareRobustCommand{\large}{\@setfontsize\large\@xiipt{17}} +\DeclareRobustCommand{\Large}{\@setfontsize\Large\@xivpt{21}} +\DeclareRobustCommand{\LARGE}{\@setfontsize\LARGE\@xviipt{25}} +\DeclareRobustCommand{\huge}{\@setfontsize\huge\@xxpt{28}} +\DeclareRobustCommand{\Huge}{\@setfontsize\Huge\@xxvpt{33}} % %<*11pt> -\newcommand{\scriptsize}{\@setfontsize\scriptsize\@viiipt{9.5}} -\newcommand{\tiny}{\@setfontsize\tiny\@vipt\@viipt} -\newcommand{\large}{\@setfontsize\large\@xiipt{17}} -\newcommand{\Large}{\@setfontsize\Large\@xivpt{21}} -\newcommand{\LARGE}{\@setfontsize\LARGE\@xviipt{25}} -\newcommand{\huge}{\@setfontsize\huge\@xxpt{28}} -\newcommand{\Huge}{\@setfontsize\Huge\@xxvpt{33}} +\DeclareRobustCommand{\scriptsize}{\@setfontsize\scriptsize\@viiipt{9.5}} +\DeclareRobustCommand{\tiny}{\@setfontsize\tiny\@vipt\@viipt} +\DeclareRobustCommand{\large}{\@setfontsize\large\@xiipt{17}} +\DeclareRobustCommand{\Large}{\@setfontsize\Large\@xivpt{21}} +\DeclareRobustCommand{\LARGE}{\@setfontsize\LARGE\@xviipt{25}} +\DeclareRobustCommand{\huge}{\@setfontsize\huge\@xxpt{28}} +\DeclareRobustCommand{\Huge}{\@setfontsize\Huge\@xxvpt{33}} % %<*12pt> -\newcommand{\scriptsize}{\@setfontsize\scriptsize\@viiipt{9.5}} -\newcommand{\tiny}{\@setfontsize\tiny\@vipt\@viipt} -\newcommand{\large}{\@setfontsize\large\@xivpt{21}} -\newcommand{\Large}{\@setfontsize\Large\@xviipt{25}} -\newcommand{\LARGE}{\@setfontsize\LARGE\@xxpt{28}} -\newcommand{\huge}{\@setfontsize\huge\@xxvpt{33}} +\DeclareRobustCommand{\scriptsize}{\@setfontsize\scriptsize\@viiipt{9.5}} +\DeclareRobustCommand{\tiny}{\@setfontsize\tiny\@vipt\@viipt} +\DeclareRobustCommand{\large}{\@setfontsize\large\@xivpt{21}} +\DeclareRobustCommand{\Large}{\@setfontsize\Large\@xviipt{25}} +\DeclareRobustCommand{\LARGE}{\@setfontsize\LARGE\@xxpt{28}} +\DeclareRobustCommand{\huge}{\@setfontsize\huge\@xxvpt{33}} \let\Huge=\huge % % @@ -2218,9 +2238,9 @@ % これらの3つのコマンドは\file{ltsect.dtx}で提供されています。 % これらのコマンドは次のように定義されています。 % \begin{macrocode} -%\newcommand*{\title}[1]{\gdef\@title{#1}} -%\newcommand*{\author}[1]{\gdef\@author{#1}} -%\newcommand*{\date}[1]{\gdef\@date{#1}} +%\DeclareRobustCommand*{\title}[1]{\gdef\@title{#1}} +%\DeclareRobustCommand*{\author}[1]{\gdef\@author{#1}} +%\DeclareRobustCommand*{\date}[1]{\gdef\@date{#1}} % \end{macrocode} % |\date|マクロのデフォルトは、今日の日付です。 % \begin{macrocode} diff --git a/macros/luatex/generic/luatexja/src/luatexja.sty b/macros/luatex/generic/luatexja/src/luatexja.sty index 2dfee28a50..3956193af0 100644 --- a/macros/luatex/generic/luatexja/src/luatexja.sty +++ b/macros/luatex/generic/luatexja/src/luatexja.sty @@ -41,7 +41,7 @@ \ProcessOptions\relax \fi % %%%% VERSION -\def\LuaTeXjaversion{20190926.0} +\def\LuaTeXjaversion{20191117.0} \directlua{require('ltj-unicode-ccfix.lua')}% catcode of ideographs diff --git a/macros/luatex/generic/luatexja/src/patches/lltjp-fontspec.sty b/macros/luatex/generic/luatexja/src/patches/lltjp-fontspec.sty index 6f469fc08f..9f630754bd 100644 --- a/macros/luatex/generic/luatexja/src/patches/lltjp-fontspec.sty +++ b/macros/luatex/generic/luatexja/src/patches/lltjp-fontspec.sty @@ -1,5 +1,5 @@ % -% lltjp-fontspec.sty 2018-08-24 +% lltjp-fontspec.sty 2019-10-21 % \NeedsTeXFormat{LaTeX2e} @@ -13,7 +13,65 @@ \fi %%%%%%%% fontspec v2.5c overwrites \rmfamily etc. in \setmainfont -\@ifpackagelater{fontspec}{2018/07/29}{ %% 2.6h or later +\@ifpackagelater{fontspec}{2019/10/19}{ %% 2.7d or later +\cs_set:Nn \__fontspec_main_setmainfont:nn + { + \fontspec_set_family:Nnn \l__fontspec_rmfamily_family_tl {#1} {#2} + \tl_set_eq:NN \rmdefault \l__fontspec_rmfamily_family_tl + \use:x + { + \exp_not:n { \DeclareRobustCommand \rmfamily } + { + \exp_not:N \fontencoding { \g__fontspec_nfss_enc_tl } + \exp_not:N \fontfamily { \exp_not:N \rmdefault } + \exp_not:N\if@ltj@match@family\exp_not:N\kanjifamily\exp_not:N\mcdefault\exp_not:N\fi%%% + \exp_not:N \selectfont + } + } + \str_if_eq:eeT {\familydefault} {\rmdefault} + { \tl_set_eq:NN \encodingdefault \g__fontspec_nfss_enc_tl } + \__fontspec_setmainfont_hook:nn {#1} {#2} + \normalfont + } +\cs_set:Nn \__fontspec_main_setsansfont:nn + { + \fontspec_set_family:Nnn \l__fontspec_sffamily_family_tl {#1} {#2} + \tl_set_eq:NN \sfdefault \l__fontspec_sffamily_family_tl + \use:x + { + \exp_not:n { \DeclareRobustCommand \sffamily } + { + \exp_not:N \fontencoding { \g__fontspec_nfss_enc_tl } + \exp_not:N \fontfamily { \exp_not:N \sfdefault } + \exp_not:N\if@ltj@match@family\exp_not:N\kanjifamily\exp_not:N\gtdefault\exp_not:N\fi%%% + \exp_not:N \selectfont + } + } + \str_if_eq:eeT {\familydefault} {\sfdefault} + { \tl_set_eq:NN \encodingdefault \g__fontspec_nfss_enc_tl } + \__fontspec_setsansfont_hook:nn {#1} {#2} + \normalfont + } +\cs_set:Nn \__fontspec_main_setmonofont:nn + { + \fontspec_set_family:Nnn \l__fontspec_ttfamily_family_tl {#1} {#2} + \tl_set_eq:NN \ttdefault \l__fontspec_ttfamily_family_tl + \use:x + { + \exp_not:n { \DeclareRobustCommand \ttfamily } + { + \exp_not:N \fontencoding { \g__fontspec_nfss_enc_tl } + \exp_not:N \fontfamily { \exp_not:N \ttdefault } + \exp_not:N\if@ltj@match@family\exp_not:N\kanjifamily\exp_not:N\jttdefault\exp_not:N\fi%%% + \exp_not:N \selectfont + } + } + \str_if_eq:eeT {\familydefault} {\ttdefault} + { \tl_set_eq:NN \encodingdefault \g__fontspec_nfss_enc_tl } + \__fontspec_setmonofont_hook:nn {#1} {#2} + \normalfont + } +}{\@ifpackagelater{fontspec}{2018/07/29}{ %% 2.6h <= and <= 2.7c \cs_set:Nn \__fontspec_main_setmainfont:nn { \fontspec_set_family:Nnn \l__fontspec_rmfamily_family_tl {#1} {#2} @@ -28,7 +86,7 @@ \exp_not:N \selectfont } } - \str_if_eq_x:nnT {\familydefault} {\rmdefault} + \str_if_eq:eeT {\familydefault} {\rmdefault} { \tl_set_eq:NN \encodingdefault \g__fontspec_nfss_enc_tl } \__fontspec_setmainfont_hook:nn {#1} {#2} \normalfont @@ -47,7 +105,7 @@ \exp_not:N \selectfont } } - \str_if_eq_x:nnT {\familydefault} {\sfdefault} + \str_if_eq:eeT {\familydefault} {\sfdefault} { \tl_set_eq:NN \encodingdefault \g__fontspec_nfss_enc_tl } \__fontspec_setsansfont_hook:nn {#1} {#2} \normalfont @@ -66,7 +124,7 @@ \exp_not:N \selectfont } } - \str_if_eq_x:nnT {\familydefault} {\ttdefault} + \str_if_eq:eeT {\familydefault} {\ttdefault} { \tl_set_eq:NN \encodingdefault \g__fontspec_nfss_enc_tl } \__fontspec_setmonofont_hook:nn {#1} {#2} \normalfont @@ -84,7 +142,7 @@ \exp_not:N \selectfont } } - \str_if_eq_x:nnT {\familydefault} {\rmdefault} + \str_if_eq:eeT {\familydefault} {\rmdefault} { \tl_set_eq:NN \encodingdefault \g__fontspec_nfss_enc_tl } \normalfont \ignorespaces @@ -101,7 +159,7 @@ \exp_not:N \selectfont } } - \str_if_eq_x:nnT {\familydefault} {\sfdefault} + \str_if_eq:eeT {\familydefault} {\sfdefault} { \tl_set_eq:NN \encodingdefault \g__fontspec_nfss_enc_tl } \normalfont \ignorespaces @@ -118,12 +176,12 @@ \exp_not:N \selectfont } } - \str_if_eq_x:nnT {\familydefault} {\ttdefault} + \str_if_eq:eeT {\familydefault} {\ttdefault} { \tl_set_eq:NN \encodingdefault \g__fontspec_nfss_enc_tl } \normalfont \ignorespaces } -} +}} \cs_set:Nn \fontspec_visible_space: { diff --git a/macros/luatex/generic/luatexja/src/patches/lltjp-microtype.sty b/macros/luatex/generic/luatexja/src/patches/lltjp-microtype.sty index db2fac8481..5663551bea 100644 --- a/macros/luatex/generic/luatexja/src/patches/lltjp-microtype.sty +++ b/macros/luatex/generic/luatexja/src/patches/lltjp-microtype.sty @@ -1,33 +1,37 @@ % -% lltjp-microtype.sty 2019-08-12 +% lltjp-microtype.sty % % (Work in Progress) % \NeedsTeXFormat{LaTeX2e} - \RequirePackage{etoolbox} \makeatletter -\def\MT@register@font{% - \xdef\MT@font@list{\expandonce{\MT@font@list\MT@font},}% !!! -} -\def\MT@register@subst@font{\MT@exp@one@n\MT@in@clist\font@name\MT@font@list - \ifMT@inlist@\else - \xdef\MT@font@list{\expandonce{\MT@font@list\font@name},}% !!! - \fi} +\PackageWarningNoLine{luatexja}% + {LuaTeX-ja's patch against the microtype package \MessageBreak + (lltjp-microtype.sty, 2019-11-08) may not work} +\patchcmd\MT@register@font + {\xdef\MT@font@list{\MT@font@list\MT@font,}}% + {\directlua{luatexja.jfont.is_kenc('\luatexluaescapestring{\f@encoding}')}% + \unless\ifin@ + \xdef\MT@font@list{\MT@font@list\MT@font,} + \fi + }{}{} +\patchcmd\MT@register@subst@font + {\xdef\MT@font@list{\MT@font@list\font@name,}}% + {\directlua{luatexja.jfont.is_kenc('\luatexluaescapestring{\f@encoding}')}% + \unless\ifin@ + \xdef\MT@font@list{\MT@font@list\font@name,} + \fi}{}{} \let\ltj@MT@tracking@\MT@tracking@ -\def\MT@tracking@{% - \MT@exp@one@n\MT@in@clist\MT@font\MT@tr@font@list - \ifMT@inlist@\else - \MT@maybe@do{tr}% - \ifMT@do\else - \xdef\MT@tr@font@list{\expandonce{\MT@tr@font@list\MT@font,}}% !!! - \fi - \fi -} +\patchcmd\MT@tracking@ + {\xdef\MT@tr@font@list{\MT@tr@font@list\MT@font,}}% + {\directlua{luatexja.jfont.is_kenc('\luatexluaescapestring{\f@encoding}')}% + \unless\ifin@ + \xdef\MT@tr@font@list{\MT@tr@font@list\MT@font,} + \fi}{}{} \ifx\MT@tracking\ltj@MT@tracking@\let\MT@tracking\MT@tracking@\fi - %\endinput \begingroup \catcode`\/=\z@ -- cgit v1.2.3