LaTeX でギリシャ文字をちょっとだけ扱いたいこと、例えば、ギリシャ文字が以下のような特定のワードの中で使われていることは多々あります。
- アンドロメダ座 α 星
- β1 受容体
- ε-δ 論法
しかし、これをそのまま upLaTeX や LuaLaTeX で使おうとすると以下のようになります。(この例では LuaLaTeX で作成)
コード(折りたたみ)
\documentclass{jlreq}
\begin{document}
アンドロメダ座α星、β1受容体、ε-δ論法
\end{document}
ギリシャ文字が 1 文字単体の “α” こそ気にならないですが、アラビア数字が続く “β1” やハイフンで繋がった “ε-δ” は間延びしたような印象を受けます。
このようになる原因は、ギリシャ文字に和文フォントを使うためです。そのため、ギリシャ文字を欧文扱いに変更し、ギリシャ文字に適切なフォントを当てる必要があります。
そこで、本記事では本文内でギリシャ文字を欧文としてちょっとだけ扱いたいときの方法を紹介します。
この “ちょっとだけ” とは、ダイアクリティカルマークの付かないギリシャ文字(小文字 24 文字、大文字 24 文字)を使って、せいぜい数文字程度のギリシャ文字を扱うこと指します。
upLaTeX の場合
textgreek パッケージを使う
現在の LaTeX では標準で提供される \textmu
が利用できますが、これ以外のギリシャ文字を利用することは出来ません。
textgreek パッケージを使うと、\textmu
と同じように \textalpha
等と言った形でギリシャ文字を扱うことが出来るようになります。
\documentclass{jlreq}
\usepackage[T1]{fontenc}
%% ギリシャ文字のエンコーディングは LGR だが、
%% fontenc では T1 を指定するだけで良い
\usepackage{textgreek}
\begin{document}
アンドロメダ座\textalpha{}星、\textbeta{}1受容体、\textepsilon-\textdelta{}論法
\end{document}
ギリシャ文字用のコマンドは text
に続いて基本的なギリシャ文字名を与えます。大文字は \textAlpha
、小文字は \textalpha
等のようにします。
ただし、オミクロンは \textOmikron
・\textomikron
(omicron ではない)、小文字のミューは \textmugreek
(textcomp の \textmu
を上書きしない)です。
いくつかのギリシャ文字小文字のバリアントは以下のように定義されます。
ϵ | \straightepsilon |
ϑ | \scripttheta |
θ | \straighttheta |
ϕ | \straightphi |
ς | \textvarsigma |
イプシロン、シータ、ファイに関しては、数式のギリシャ文字と異なって \var~
となる文字が普通の \text~
ギリシャ文字として割り当てられる傾向にあるようです。
フォントは cbgreek
(デフォルト)、euler
、artemisia
の 3 つをパッケージオプションから選択できます。また、\textgreekfontmap
を構成することで任意のギリシャ文字フォントを指定できます。1
加えて、pxcjkcat パッケージで prefercjkvar
を指定すると、リテラルな入力であっても欧文フォントで出力されます。フォントは textgreek パッケージのフォントに従います。
\documentclass{jlreq}
\usepackage[T1]{fontenc}
\usepackage[prefercjkvar]{pxcjkcat}
\usepackage[artemisia]{textgreek}
\begin{document}
アンドロメダ座α星、β1受容体、ε-δ論法
\end{document}
おそらくこの方法が upLaTeX を使ってリテラルにギリシャ文字を入力する最も平易な方法です。
babel+pxcjkcat を使う
これはギリシャ文字を扱う最も一般的な方法で、本記事のコンセプトである “ちょっとだけ” と言うよりはかなり真面目な方法です。(そのため、普通に “Καλημέρα” のような文章を扱えます)
upLaTeX でギリシャ文字を扱うには、babel パッケージを使ってギリシャ文字を導入し、pxcjkcat パッケージでギリシャ文字を欧文扱いに変更します。
%% LGR エンコーディングを追加していることに注意
\usepackage[LGR, T1]{fontenc}
\usepackage[greek, japanese]{babel}
\usepackage[prefercjkvar]{pxcjkcat}
babel を使うため、ギリシャ文字は \foreignlanguage{greek}
を使ってエンコーディングの切り替えを明示する必要があります。
その都度 \foreignlanguage{greek}{α}
等とするのは非常に面倒なので、以下のように定義すると楽でしょう。
\newcommand{\greek}[1]{\foreignlanguage{greek}{#1}}
コード(折りたたみ)
\documentclass{jlreq}
\usepackage[LGR, T1]{fontenc}
\usepackage[greek, japanese]{babel}
\usepackage[prefercjkvar]{pxcjkcat}
\newcommand{\greek}[1]{\foreignlanguage{greek}{#1}}
\begin{document}
アンドロメダ座\greek{α}星、\greek{β}1受容体、\greek{ε-δ}論法
\end{document}
\textalpha
のように定義しようとすると定義済みのエラーが生じるため、もしもこのような形で定義したい場合は別のコマンド名を命名してください。
LuaLaTeX の場合
LuaLaTeX の場合は、luatexja パッケージの \ltjsetparameter
から jacharrange
でギリシャ文字が含まれる範囲を欧文扱いに変更します。
加えて、デフォルトの Latin Modern ではギリシャ文字が収録されていないため、fontspec パッケージで適当なフォントに変更します。
以下の例では TeXGyrePagellaX に変更しました。
\usepackage{luatexja}
\ltjsetparameter{ jacharrange = {-2} }
\usepackage{fontspec}
\setmainfont{texgyrepagellax-regular.otf}
これによって、リテラルなギリシャ文字が欧文扱いとなります。
コード(折りたたみ)
\documentclass{jlreq} %% jlreq 文書クラスは内部で luatexja を読み込む
\ltjsetparameter{ jacharrange = {-2} }
\usepackage{fontspec}
\setmainfont{texgyrepagellax-regular.otf}
\begin{document}
アンドロメダ座α星、β1受容体、ε-δ論法
\end{document}
babel を使えばハイフネーションやギリシャ文字のフォント変更等が出来ますが、ちょっと扱いたいだけであればこのような方法でも十分だと思われます。
余談
ギリシャ文字をちょっとだけ扱う方法でした。
textgreek が使えない
ギリシャ文字に関するパッケージは TeX Live の langgreek コレクションに含まれ、textgreek パッケージは langgreek コレクションのいくつかのパッケージを必要とします。
一方で、textgreek パッケージは mathscience コレクションに含まれます。
そのため、textgreek パッケージが無い、あるいはギリシャ文字に関する諸々のパッケージが無いという事態に陥る可能性があります。
どちらかが不足している場合は、以下のようにしてインストールしてください。
- textgreek パッケージのインストール
tlmgr install textgreek
- langgreek コレクションのインストール
tlmgr install collection-langgreek
ギリシャ文字を数式で代用する
数式のギリシャ文字で代替する方法は最も平易でよく行われることでしょう。ただ、簡単ですが(個人的に)あまりオススメ出来ない方法です。
数式のギリシャ文字で代替する方法は非常に楽ですが、以下のような問題が生じます。
-
\textit
や\textbf
等による変更が効かない - 見出しにギリシャ文字を含めた場合、PDF の見出し情報にギリシャ文字が反映されない
これまでに紹介した方法ではこのような問題は生じません。
数式では、$\alpha$
等とすればギリシャ文字を扱うことが出来ます。これを利用して、数式用のギリシャ文字を代替的に本文に持ち込みます。
また、その都度 $\alpha$
等とするのは面倒なので、以下のようにコマンドを定義しておくと楽でしょう。
\newcommand{\textalpha}{$\alpha$}
これを踏まえて先の例を作成してみると、以下のようになります。
コード(折りたたみ)
\documentclass{jlreq}
\usepackage[T1]{fontenc}
\newcommand{\textalpha}{$\alpha$}
\newcommand{\textbeta}{$\beta$}
\newcommand{\textepsilon}{$\varepsilon$}
\newcommand{\textgamma}{$\gamma$}
\newcommand{\textdelta}{$\delta$}
\begin{document}
アンドロメダ座\textalpha{}星、\textbeta{}1受容体、\textepsilon-\textdelta{}論法
\end{document}
あるいは、立体のギリシャ文字を使いたい場合は、立体のギリシャ文字が収録されたパッケージを利用しましょう。
例えば、upgreek パッケージは数式用の立体ギリシャ文字を提供します。また、newtxmath や newpxmath パッケージでは立体のギリシャ文字が初めから提供されています。
あるいは、unicode-math パッケージ (LuaLaTeX) を利用している場合でも、立体ギリシャ文字を扱うことが出来ます。
ここでは、upgreek パッケージを利用した結果を例として紹介します。(upgreek では、\upalpha
等とします)
コード(折りたたみ)
\documentclass{jlreq}
\usepackage[T1]{fontenc}
\usepackage{upgreek}
\newcommand{\textalpha}{$\upalpha$}
\newcommand{\textbeta}{$\upbeta$}
\newcommand{\textepsilon}{$\upvarepsilon$}
\newcommand{\textgamma}{$\upgamma$}
\newcommand{\textdelta}{$\updelta$}
\begin{document}
アンドロメダ座\textalpha{}星、\textbeta{}1受容体、\textepsilon-\textdelta{}論法
\end{document}
-
エンコーディングが LGR のギリシャ文字に関する情報は、greek-fontenc のドキュメントを参照してください。 ↩