私が正しく理解していれば、XeLaTeX を使用すると、これらの行はすべてそれぞれ適切な em ダッシュと en ダッシュで出力されるはずです。
\documentclass{article}
\usepackage{fontspec}
\setmainfont{Gentium Plus}
\begin{document}
Hello---world!
Hello—world!
Hello--world!
Hello–world!
\end{document}
ただし、どのフォントを選択しても、Unicode の en-dash でエラーが発生します (em-dash は--
en-dash を生成するシーケンスと同様に正常に機能します)。
./dash-testing.te.tex:13: Undefined control sequence.
l.13 Hello\UTF
{2013}world! \\
しかし、InDesign グリフ ビューアなどを使用すると、文字 2013 が確かに存在することがわかります。また、 などの他の文字の直接入力も“
機能します。
ユニコードのエンダッシュを機能させるにはどうすればよいですか?
更新: これは、コンパイルを続行すると得られる出力です (適切なフォントが実際に使用されていることを示すため)。
答え1
答え2
Gentium は Type 1 フォントとしても利用できます。たとえば、TEXMF/fonts/type1/public/gentium-tug/
このフォントもインストールされていて、XeLaTeX は最初に見つかったフォントを使用するものとします。ただし、次のようにして、XeLaTeX で TrueType バージョンを使用するように強制できます。
\setmainfont[
Extension=.ttf,
UprightFont=*-R,
ItalicFont=*-I]{GentiumPlus}
これは XeTeX、バージョン 3.14159265-2.6-0.99992 (TeX Live 2015) (プリロードされた形式 = xelatex 2016.2.13) です 2016 年 2 月 14 日 20:43
fontspec-xetex.sty 2016/02/01 v2.5a Font selection for XeLaTeX and LuaLaTeX
答え3
あなたの時間を無駄にしてしまい、申し訳ありません。これは TexShop の「問題」であることが判明しました。Vim でテスト ファイルを編集するまで、TexShop が正確なソースを表示していないことに気付きませんでした。Vim を使用するまで、–
実際のソースが文字通りUTF{2013}
.であったことがわかりませんでした。
これは pTeX をサポートするための設定であり、この StackExchange の回答のようにその設定をオフにすることで修正されます。TexShop の発音区別符号エンコーディング