お世話になります。LuaTeXjaがらみの質問です。
MWEは下記の通りです。
--- test.tex ---
%#!lualatex
\documentclass{article}
\usepackage{marvosym}
\usepackage{luatexja}
\begin{document}
\thispagestyle{empty}
{\LARGE\Smiley\FAX\Telefon}
\end{document}
---- ここまで ---
luatexja.styを読み込むとmarvosymのフォントが表示されない、またはuやTなど別の文字になります。
luatexja.styを読み込まなければ、marvosymのフォントは期待通りに表示されます。
パッケージを読み込む順番は試しましたが、変化はありませんでした。
luatexja.styとmarvosym.styを共存させる方法についてご助言を賜れば幸いです。
各バージョンは下記の通りです。
$ grep ProvidesPackage $(kpsewhich luatexja.sty)
\ProvidesPackage{luatexja}[2013/05/14 Japanese Typesetting with LuaTeX]
$ grep -A1 ProvidesPackage $(kpsewhich marvosym.sty)
\ProvidesPackage{marvosym}
[2011/07/20 v2.2 Martin Vogel's Symbols font definitions]
よろしくお願いします。
marvosym.sty では記号を出力するために
\fontfamily{mvs}\fontencoding{U}
\fontseries{m}\fontshape{n}\selectfont
という内容の内部命令 \mvs を定義していますが,
この「fontencoding より先に fontfamily を変える」という順序が
LuaTeX-ja と相性が悪いです.
現段階では,次のようにされてはいかがでしょうか?
\usepackage{marvosym}
\usepackage{luatexja}
% marvosym 読み込み後に,以下の 2 行を加える
\renewcommand{\mvs}{\fontencoding{U}\fontfamily{mvs}%
\fontseries{m}\fontshape{n}\selectfont}
\begin{document}
\thispagestyle{empty}
{\LARGE\Smiley\FAX\Telefon}
\end{document}
\fontfamily{mvs}\fontencoding{U}
\fontseries{m}\fontshape{n}\selectfont
という内容の内部命令 \mvs を定義していますが,
この「fontencoding より先に fontfamily を変える」という順序が
LuaTeX-ja と相性が悪いです.
現段階では,次のようにされてはいかがでしょうか?
\usepackage{marvosym}
\usepackage{luatexja}
% marvosym 読み込み後に,以下の 2 行を加える
\renewcommand{\mvs}{\fontencoding{U}\fontfamily{mvs}%
\fontseries{m}\fontshape{n}\selectfont}
\begin{document}
\thispagestyle{empty}
{\LARGE\Smiley\FAX\Telefon}
\end{document}
\renewcommand{\mvs}{\romanfamily{mvs}\fontencoding{U}%
\fontseries{m}\fontshape{n}\selectfont}
これだと、umvs での符号位置が“文字範囲8”(※)に入る文字については和文扱いになってしまうようです。
※U+0080~00FF の範囲で JIS X 0208 にある文字。〈§〉や〈÷〉など。
\documentclass[a4paper]{article} \usepackage{marvosym} \usepackage{luatexja} \renewcommand{\mvs}{\romanfamily{mvs}\fontencoding{U}% \fontseries{m}\fontshape{n}\selectfont} \begin{document} \Smiley % OK, 符号位置169=<©> \Frowny % NG, 符号位置167=<§> \end{document}
とりあえず、以下のようにすれば回避できます。
\renewcommand{\mvs}{\romanfamily{mvs}\fontencoding{U}% \fontseries{m}\fontshape{n}\selectfont% \ltjsetparameter{jacharrange={-8}}}