bxjsarticleでエラー

bxjsarticleでエラー

- liki の投稿
返信数: 8

\documentclass{ltjsarticle}
\begin{document}
$ a = b $
\end{document}

これは問題なし。

でもbxjsarticleを使うと添付ファイルのようなエラーになります。

BXjsclsのバージョンは1.0b[2015/09/07]です。

LuaTeX-jaは20150922.0です。

\documentclass[lualatex,ja=standard]{bxjsarticle}

\begin{document}
$ a = b $
\end{document}

liki への返信

Re: bxjsarticleでエラー

- aminophen の投稿
<argument> \xetex_suppressfontnotfounderror:D

ですね。これは
http://tex.stackexchange.com/questions/269786/unicode-math-broken
と同じで、LuaTeX で \xetex_suppressfontnotfounderror が定義されていないために起こります。
aminophen への返信

Re: bxjsarticleでエラー

- liki の投稿
ありがとうございます。
以前は大丈夫だったのに、またダメになるから戸惑います。
luatexを使うのはまだ早いのかなと。
aminophen への返信

Re: bxjsarticleでエラー

- 北川 弘典 の投稿
luaotfload パッケージを fontspec パッケージの前に読み込むと
同様のエラーが生じるようです.

\documentclass{article}
\usepackage{luaotfload} % これがあるとエラー,ないと正常終了
\usepackage{fontspec}
\setmainfont{TeX Gyre Termes}
\begin{document}
\end{document}

bxjsarticle では luatexja, luatexja-fontspec を
この順番で読み込みますが,luatexja は内部で luaotfload を,
luatexja-fotnspec は fontspec を読み込んでいるので,
本メッセージの最初のような状況になっているわけです.

よくわかりませんが,luatexbase.sty が更新されたのが
影響していそうです.とりあえず luatexja-core.sty 中の

%% Load prerequisite packages.

という行の直後に,

\unless\ifdefined\luatexsuppressfontnotfounderror
  \ifdefined\suppressfontnotfounderror
    \let\luatexsuppressfontnotfounderror\suppressfontnotfounderror
    \let\luatexprehyphenchar\prehyphenchar
    \let\luatexpreexhyphenchar\preexhyphenchar
    \let\luatexposthyphenchar\posthyphenchar
    \let\luatexpostexhyphenchar\postexhyphenchar
  \fi
\fi

を入れてみると,どうなるでしょうか.


北川 弘典 への返信

Re: bxjsarticleでエラー

- 前田 一貴 の投稿
なぜなのかは全く調べていませんが,luatexja.sty の先頭に

\RequirePackage{expl3}

と書くだけで OK になるみたいです.

https://twitter.com/miyatch66/status/651651348660772864
北川 弘典 への返信

Re: bxjsarticleでエラー

- Z. R. の投稿

こういうことのようです。

\documentclass{article}
%\usepackage{luatexbase}
\usepackage{expl3}
\ExplSyntaxOn
%↓luatexbaseを読み込むとコレが未定義になる
\show \xetex_suppressfontnotfounderror:D
\ExplSyntaxOff
\begin{document}
\end{document}

新しい luatexbase は旧来の LaTeX の慣習との互換性のために、\catcodetable を含む数個のプリミティブに luatex を付けた別名を与えています。

[luatexbase.sty](v1.3)
\let\luatexattribute\attribute
\let\luatexattributedef\attributedef
\let\luatexcatcodetable\catcodetable
\let\luatexluaescapestring\luaescapestring
\let\luatexlatelua\latelua
\let\luatexoutputbox\outputbox
\let\luatexscantextokens\scantextokens

ところが、expl3 では \luatexcatcodetable が定義済の場合、古い LaTeX である(つまり全部 luatex 付きである)と見なして luatex 付きの名前からコピーをします。

[expl3-code.tex](r6111)
\etex_ifdefined:D \luatexcatcodetable
  \tex_let:D \luatex_alignmark:D                 \luatexalignmark
  \tex_let:D \luatex_aligntab:D                  \luatexaligntab
  \tex_let:D \luatex_attribute:D                 \luatexattribute
  \tex_let:D \luatex_attributedef:D              \luatexattributedef
  ......
  \tex_let:D \xetex_suppressfontnotfounderror:D  \luatexsuppressfontnotfounderror
  ......
  \tex_let:D \luatex_textdir:D               \luatextextdir
\tex_fi:D

しかし、実際には新しい LuaLaTeX では \luatexsuppressfontnotfounderror は未定義(\suppressfontnotfounderror は存在する)なので、結果的に \xetex_suppressfontnotfounderror:D は未定義になってしまいます。

Z. R. への返信

Re: bxjsarticleでエラー

- aminophen の投稿
北川さんが LuaTeX のメーリスに問い合わせてくださったところ
http://tug.org/pipermail/luatex/2015-October/005410.html
この問題は開発版 expl3 で修正されているようなので、近々 CTAN にアップされると思います。
http://tug.org/pipermail/luatex/2015-October/005412.html