LuaTeX-ja+Noto CJK(Source Han)で2倍ダーシ(U+2015 2文字並べ)が崩れる

LuaTeX-ja+Noto CJK(Source Han)で2倍ダーシ(U+2015 2文字並べ)が崩れる

- Aikawa Takuya の投稿
返信数: 3
日頃から、素晴らしいパッケージを開発・維持してくださり、感謝いたします。

題名のとおり、

********
\documentclass{ltjtarticle}
%\documentclass{ltjsarticle}
\usepackage[noto-otf,match]{luatexja-preset}
\begin{document}

しかし――そして――なぜなら――!――まさか――?――『聞こえますか……――』――終

\textsf{しかし――そして――なぜなら――!――まさか――?――『聞こえますか……――』――終}

\end{document}
********

このようなソースをlualatexでコンパイルすると、縦書き・横書きともに2倍ダーシが崩れます。
Noto CJK/Source Hanフォントでは、―(U+2015)を2文字並べると合字が出力されているように見えますが、
縦書きでは前に1文字ぶん陥没し、横書きでは後ろに1文字ぶん陥没してしまいます。

この問題はすでに開発サイドでも把握済みでしょうか?
現状では\ruleを使った自作のマクロで対応していますが、記号がベタ打ちできると便利だと思います。

テスト環境はUbuntu Linux 18.04にTUGの(Ubuntuレポジトリではない)Vanilla Tex Live 2018です。
Aikawa Takuya への返信

Re: LuaTeX-ja+Noto CJK(Source Han)で2倍ダーシ(U+2015 2文字並べ)が崩れる

- Aikawa Takuya の投稿
なお、2倍ダーシを—(U+2014)2文字並べで試したところ、
(JIS規格としてはこちらが正式とのこと、不勉強でした)
縦書きでは合字とならず陥没もしない(モニタ上で倍率400%で見た限りでは、Serifのみきちんとつながって見える)、
横書きではU+2015と同様の結果となりました。
Aikawa Takuya への返信

Re: LuaTeX-ja+Noto CJK(Source Han)で2倍ダーシ(U+2015 2文字並べ)が崩れる

- 北川 弘典 の投稿
LuaTeX-ja 側でチケットを立てました(https://osdn.net/projects/luatex-ja/ticket/38487).

LuaTeX-ja では和文文字の文字幅・空白について jfm-ujis.lua 等のメトリックを参照しています.そこでは,文字は原則 Unicode で指定することになっています.
Noto CJK (Source Han) Serif/Sans の(和文)2 倍ダーシには Unicode が割り当てられていない(LuaTeX が内部的に振りますが,環境で変わるかも)ので,素直に 2 倍ダーシの情報をメトリックに記述することはできません.そのため,数行程度の記述でなんとかするのは難しいと思います.

Lua コードを使えば対応させることは(原理的には)可能です.
横書き用のコードは手元で既に作りましたので,縦書き用のもできたら合わせて LuaTeX-ja のチケットのところに載せておきます.


北川 弘典 への返信

Re: LuaTeX-ja+Noto CJK(Source Han)で2倍ダーシ(U+2015 2文字並べ)が崩れる

- Aikawa Takuya の投稿
アップロードくださったコードと9b34f19のltj-jfont.luaで試したところ、
思ったとおりの組版結果となりました。

ひとまずこれで利用したいと思います。
今回も、迅速にご対応いただき、ありがとうございました。