ギリシャ語を使用するとなぜ em ダッシュが壊れるのでしょうか?

ギリシャ語を使用するとなぜ em ダッシュが壊れるのでしょうか?

--- を em ダッシュに変換することは、lualatex で進行中の問題であることは知っています。しかし、あるフォントでギリシャ語を使用すると、別のフォントで 3 つのハイフンを em ダッシュに変換する処理が (後で) 中断される理由がわかりません。

これが私のコードです:

%!TEX encoding = UTF-8 Unicode
\documentclass{article}

\usepackage{fontspec}
\usepackage{ednotes}
\setmainfont[Ligatures=TeX]{Linux Libertine O}
\setsansfont[Ligatures=TeX,Scale=MatchLowercase]{TeX Gyre Heros}
\setmonofont[Scale=MatchLowercase]{Inconsolata}
\newfontfamily\myGk[Script=Greek,Scale=MatchUppercase,Ligatures=TeX]{Cambria}
%\newfontfamily\myGk[Script=Greek,Scale=MatchUppercase,Ligatures=TeX]{Linux Libertine O}

\newcommand\textgreek[1]{\myGk\emph{#1}}

\begin{document}
\fontsize{11.5}{13}\selectfont


This is a test---to see if dashes are being converted to emdashes.

\textgreek{Ἐν ἀρχῇ ἦν ὁ λόγος}

This is a test---to see if dashes are being converted to emdashes.

\end{document}

私の場合、上記のコードをそのまま実行すると、2 番目の「This is a test...」が em ダッシュではなくダッシュで表示されます。ギリシャ語に Linux Libertine O フォントを使用すると、問題は発生しません。

メイン フォントの em-daish を壊さずに Cambria Greek (私が好んで使用しています) を使用する方法を教えてください。私は Mac TeXShop で TeXLive 2012 を使用しています。

答え1

定義をローカルに保持します。

\newcommand\textgreek[1]{{\myGk\emph{#1}}}
%  {{...}}

答え2

少し私のせいでもあるので、解決策はかなり明確だと思います。(ごめんなさい!)

前回の質問に対する回答を最初に投稿したときここ、私はちょっとした間違いを犯しましたが、後で修正しました。しかし、あなたは私の回答の更新版を使用しませんでした。この間違いがあなたの現在の問題を引き起こしているようです。

これを使用する必要があります:

\newcommand{\textgreek}[1]{\bgroup\myGk\emph{#1}\egroup}

ギリシャ語フォントのフォントコマンドは、bgroup ... egroupで囲まれています。これがないと、ギリシャ語フォントが使用されます。残りの文書ギリシャ語の単語だけではないのです。

em-dash はギリシャ語フォントの一部ではないため、タイプセットされません。現時点では私の仮定を確認することはできませんが、これがそれであることはほぼ確実です。

実際には、これはハーバートのソリューションと非常に似ていますが、私見では、より洗練されており、極端な場合にはさらに安全に使用できる可能性があります。

関連情報