Ticket #39519

harftex+luatexja で実行時エラーが出ることがある

Open Date: 2019-08-29 07:32 Last Update: 2019-10-29 11:52

Reporter:
Owner:
(None)
Status:
Closed
Component:
(None)
MileStone:
(None)
Priority:
5 - Medium
Severity:
5 - Medium
Resolution:
None
File:
None

Details

(編集:beamerとsetmainfontは関係なかったので書き直しました) harftexに対応する必要性や義理があるのか不明ですが下記の組み合わせでエラーが出るため一応報告します。回避法もあります(下記)。texliveからtlmgr update --allしてできる範囲で関係ファイルは最新版になっています。harftex 0.4.1はTeXLive Contribから導入

\documentclass{minimal}
\usepackage{harfload}
\usepackage{fontspec}
\usepackage{luatexja}

\begin{document}
\end{document}

上記をコンパイルすると

(/usr/local/texlive/2019/texmf-dist/tex/latex/svn-prov/svn-prov.sty))(load cach
e: /home/user/.texlive2019/texmf-var/luatexja/ltj-cid-auto-adobe-japan1.luc
)...exlive/2019/texmf-dist/tex/luatex/luatexja/ltj-jfont.lua:812: attempt to in
dex a nil value (field 'shared')
stack traceback:
	...exlive/2019/texmf-dist/tex/luatex/luatexja/ltj-jfont.lua:812: in upvalue 'p
repare_fl_data'
	...exlive/2019/texmf-dist/tex/luatex/luatexja/ltj-jfont.lua:835: in local 'pre
pare_extra_data_base'
	...exlive/2019/texmf-dist/tex/luatex/luatexja/ltj-jfont.lua:866: in main chunk

	[C]: in function 'require'
	...texlive/2019/texmf-dist/tex/luatex/luatexja/luatexja.lua:17: in local 'load
_module'
	...texlive/2019/texmf-dist/tex/luatex/luatexja/luatexja.lua:107: in main chunk

	[C]: in function 'dofile'
	[\directlua]:1: in main chunk.
l.180 }
     
? 

というエラーになります。しかしluatexjaを読む位置を変えて

\documentclass{minimal}
\usepackage{harfload}
\usepackage{luatexja}
\usepackage{fontspec}
\setmainfont{Segoe UI Emoji}[RawFeature={mode=harf;+dist;+ccmp}]

\begin{document}
  日本語Test👌
\end{document}

とするとエラーは止まり絵文字も含めて期待通りのPDFが生成されます。

Ticket History (3/10 Histories)

2019-08-29 07:32 Updated by: emojifreak
  • New Ticket "harftex+beamer+luatexja で実行時エラーが出ることがある" created
2019-08-29 07:45 Updated by: emojifreak
  • Details Updated
  • Summary Updated
2019-08-29 11:46 Updated by: emojifreak
Comment

フォントを変えなくてもharfload→fontspec→luatexjaという順番で読み込むだけで実行時エラーになるようです↓

\documentclass{minimal}
\usepackage{harfload}
\usepackage{fontspec}
\usepackage{luatexja}


\begin{document}
\end{document}
2019-08-29 11:58 Updated by: emojifreak
  • Details Updated
2019-09-10 12:26 Updated by: emojifreak
Comment

HarTeXのgithub https://github.com/khaledhosny/harftex に Use LuaTeX HarfBuzz variant, luahbtex, instead. と書いてあったため、 This is LuaHBTeX, Version 1.11.1 (TeX Live 2020/dev)

restricted system commands enabled.

を用いて

\documentclass{minimal}
\usepackage{harfload}
\usepackage{fontspec}
\usepackage{luatexja}


\begin{document}
\end{document}

をコンパイルしたところ同一のエラーが出たため一応記録として報告します。luahbtexでもNoto Color Emojiを用いるためにはharfload.styを読まないと無理なようです

2019-09-11 02:49 Updated by: emojifreak
Comment

harfload.sty は luaotfload.sty に統合されていく↓ https://github.com/latex3/luaotfload/issues/97 らしいので、そうなればこの問題は自然と解決するか、あるいは絶対に対応不可欠なレベルに格上げされるかどちらかになるだろうと思われます…

2019-09-11 07:44 Updated by: h7k
  • Priority Update from 1 - Lowest to 5 - Medium
  • Severity Update from 1 - Lowest to 5 - Medium
Comment

harfload.sty は luaotfload.sty に統合されていく

harfload と luaotfload で,フォント情報が格納されている Lua テーブルの形式が異なっています.今回の「shared がない」というエラーもそうですし,「どの OpenType 帰納を有効にしているか」を変更する方法も異なったりしており,対応はそんなに単純ではありません.せっかくの良い機会なので,LuaTeX-ja のコードを一旦整理してから取り組もうと思います(TeX Conf に間に合えば良いなあ).

2019-09-16 13:45 Updated by: h7k
Comment

LuaTeX-ja のコードを一旦整理してから

LuaTeX-ja の中で,luaotfload 由来のフォントキャッシュにアクセスしている部分をほとんど 1 ファイルに集約しました.とりあえず kitagawa_test ブランチでは「詳細」にある最低限のファイルはエラーで止まらないようにしていますが,他のどんなところでエラーが出るかわかりませんし,また組版結果も変になるはずです.

2019-09-26 19:36 Updated by: h7k
  • Status Update from Open to Closed
Comment

とりあえずエラーは出ないようになった新バージョン 20190926.0 を出したのでクローズしますが,LuaHBTeX (, HarfTeX) での組版結果はまだまだ変なものになると思います.

2019-10-29 11:52 Updated by: emojifreak
Comment

h7k への返信

とりあえずエラーは出ないようになった新バージョン 20190926.0 を出したのでクローズしますが,LuaHBTeX (, HarfTeX) での組版結果はまだまだ変なものになると思います.

luaotfload の dev ブランチでharfloadが完全に統合されたようなのでお知らせします https://github.com/latex3/luaotfload/commit/d107a413e6e6abf137faf649d0cff5a571419403 @h7k

Attachment File List

No attachments

Edit

You are not logged in. I you are not logged in, your comment will be treated as an anonymous post. » Login