luaLaTeXでemath

luaLaTeXでemath

- liki の投稿
返信数: 6

\documentclass[lualatex,ja=standard,fleqn]{bxjsarticle}
\usepackage{emath}
\begin{document}
$ a \neqq b$
\end{document}

これをlualatexでコンパイルするとemath関連ファイルで下記のエラーがでます。

! Text line contains an invalid character.

emath関連ファイル(jis)をすべてutf-8に変換してコンパイルすると、今度は

(c:/texlive/2015/texmf-dist/tex/latex/oberdiek/grfext.sty
(c:/texlive/2015/texmf-dist/tex/generic/oberdiek/kvdefinekeys.sty)
! Illegal parameter number in definition of \reserved@b.
<to be read again>
1
l.253 \kv@define@key{Gin}{AppendGraphicsExtensions}
{%
? e
You want to edit file c:/texlive/2015/texmf-dist/tex/latex/oberdiek/grfext.sty a
t line 253

となります。

\documentclass[uplatex,ja=standard,fleqn]{bxjsarticle}

と変更して、uplatexでコンパイルするとemathファイルの文字コードに関係なく、エラーはでずにdvipdfmxでpdfにできます。


TexLive2015です。

emathっていろいろと便利なので、できれば使いたいのです。

liki への返信

Re: luaLaTeXでemath

- liki の投稿

\documentclass{ltjsarticle}
\usepackage{emath}
\begin{document}
$ a \neqq b$
\end{document}

これで、lualatexでコンパイルすると、emath関連がutf-8ならエラーなくpdfにできました。

オリジナルのemath(jis)ならやはりエラーです。

! Text line contains an invalid character.

liki への返信

Re: luaLaTeXでemath

- 前田 一貴 の投稿
bxjsarticle を使う場合,途中で ltxcmds というパッケージを読み込んで \ltx@ifnextchar という
マクロを定義するのですが,その後に emath.sty を読み込むと

\let\ltx@ifnextchar\@ifnextchar

とするので,\begin{document} の処理で ltxcmds で定義された \ltx@ifnextchar を
使おうとしたときに不整合が起きてエラーになるようです.
応急処置としては下のような感じでしょうか.

\documentclass[lualatex,ja=standard,fleqn]{bxjsarticle}
\makeatletter
\let\@ltx@ifnextchar\ltx@ifnextchar
\usepackage{emath}
\let\ltx@ifnextchar\@ltx@ifnextchar
\makeatother
\begin{document}
$ a \neqq b$
\end{document}

(\ltx@ifnextchar は emath 中では再定義した \ProvidesFile 中でしか
  使っていないように見えるので,とりあえずの逃げとしてはこれでよい?)
前田 一貴 への返信

Re: luaLaTeXでemath

- liki の投稿

ありがとうございます。

コンパイルできました。

ただし、emath関連ファイルの文字コードがオリジナルのJISのままだと invalid character のエラーが出ます。

liki への返信

Re: luaLaTeXでemath

- 前田 一貴 の投稿
> ただし、emath関連ファイルの文字コードがオリジナルのJISのままだと invalid character のエラーが出ます。
platex, uplatex の場合は ptexenc による文字コード変換が
自動で行われるので JIS でも大丈夫なのでしょうが,
lualatex の場合は UTF-8 以外は受け付けないので invalid character のエラーになります.
このため,通常は事前に文字コードを変換しておく必要があります.
前田 一貴 への返信

Re: luaLaTeXでemath

- liki の投稿

ありがとうございます。

余談

いつまで文字コードや改行コードを気にしなければならないのか。