--- を 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 はギリシャ語フォントの一部ではないため、タイプセットされません。現時点では私の仮定を確認することはできませんが、これがそれであることはほぼ確実です。
実際には、これはハーバートのソリューションと非常に似ていますが、私見では、より洗練されており、極端な場合にはさらに安全に使用できる可能性があります。