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 のように定義しようとすると定義済みのエラーが生じるため、もしもこのような形で定義したい場合は別のコマンド名を命名してください。(既に定義されている \textalpha 等は \foreignlanguage 内で使う必要があります)
あるいは、\DeclareUnicodeCharacter を使ってリテラルな主要ギリシャ文字を \foreignlanguage{greek}{α} となるように定義しても良いでしょう。これによって本文中でリテラルに扱えるようになります。
declare-greek.tex(折りたたみ)
\DeclareUnicodeCharacter{0391}{\foreignlanguage{greek}{\textAlpha }} %% Α
\DeclareUnicodeCharacter{0392}{\foreignlanguage{greek}{\textBeta }} %% Β
\DeclareUnicodeCharacter{0393}{\foreignlanguage{greek}{\textGamma }} %% Γ
\DeclareUnicodeCharacter{0394}{\foreignlanguage{greek}{\textDelta }} %% Δ
\DeclareUnicodeCharacter{0395}{\foreignlanguage{greek}{\textEpsilon }} %% Ε
\DeclareUnicodeCharacter{0396}{\foreignlanguage{greek}{\textZeta }} %% Ζ
\DeclareUnicodeCharacter{0397}{\foreignlanguage{greek}{\textEta }} %% Η
\DeclareUnicodeCharacter{0398}{\foreignlanguage{greek}{\textTheta }} %% Θ
\DeclareUnicodeCharacter{0399}{\foreignlanguage{greek}{\textIota }} %% Ι
\DeclareUnicodeCharacter{039A}{\foreignlanguage{greek}{\textKappa }} %% Κ
\DeclareUnicodeCharacter{039B}{\foreignlanguage{greek}{\textLambda }} %% Λ
\DeclareUnicodeCharacter{039C}{\foreignlanguage{greek}{\textMu }} %% Μ
\DeclareUnicodeCharacter{039D}{\foreignlanguage{greek}{\textNu }} %% Ν
\DeclareUnicodeCharacter{039E}{\foreignlanguage{greek}{\textXi }} %% Ξ
\DeclareUnicodeCharacter{039F}{\foreignlanguage{greek}{\textOmicron }} %% Ο
\DeclareUnicodeCharacter{03A0}{\foreignlanguage{greek}{\textPi }} %% Π
\DeclareUnicodeCharacter{03A1}{\foreignlanguage{greek}{\textRho }} %% Ρ
\DeclareUnicodeCharacter{03A3}{\foreignlanguage{greek}{\textSigma }} %% Σ
\DeclareUnicodeCharacter{03A4}{\foreignlanguage{greek}{\textTau }} %% Τ
\DeclareUnicodeCharacter{03A5}{\foreignlanguage{greek}{\textUpsilon }} %% Υ
\DeclareUnicodeCharacter{03A6}{\foreignlanguage{greek}{\textPhi }} %% Φ
\DeclareUnicodeCharacter{03A7}{\foreignlanguage{greek}{\textChi }} %% Χ
\DeclareUnicodeCharacter{03A8}{\foreignlanguage{greek}{\textPsi }} %% Ψ
\DeclareUnicodeCharacter{03A9}{\foreignlanguage{greek}{\textOmega }} %% Ω
\DeclareUnicodeCharacter{03B1}{\foreignlanguage{greek}{\textalpha }} %% α
\DeclareUnicodeCharacter{03B2}{\foreignlanguage{greek}{\textbeta }} %% β
\DeclareUnicodeCharacter{03B3}{\foreignlanguage{greek}{\textgamma }} %% γ
\DeclareUnicodeCharacter{03B4}{\foreignlanguage{greek}{\textdelta }} %% δ
\DeclareUnicodeCharacter{03B5}{\foreignlanguage{greek}{\textepsilon }} %% ε
\DeclareUnicodeCharacter{03B6}{\foreignlanguage{greek}{\textzeta }} %% ζ
\DeclareUnicodeCharacter{03B7}{\foreignlanguage{greek}{\texteta }} %% η
\DeclareUnicodeCharacter{03B8}{\foreignlanguage{greek}{\texttheta }} %% θ
\DeclareUnicodeCharacter{03B9}{\foreignlanguage{greek}{\textiota }} %% ι
\DeclareUnicodeCharacter{03BA}{\foreignlanguage{greek}{\textkappa }} %% κ
\DeclareUnicodeCharacter{03BB}{\foreignlanguage{greek}{\textlambda }} %% λ
\DeclareUnicodeCharacter{03BC}{\foreignlanguage{greek}{\textmu }} %% μ %% \textmugreek
\DeclareUnicodeCharacter{03BD}{\foreignlanguage{greek}{\textnu }} %% ν
\DeclareUnicodeCharacter{03BE}{\foreignlanguage{greek}{\textxi }} %% ξ
\DeclareUnicodeCharacter{03BF}{\foreignlanguage{greek}{\textomicron }} %% ο
\DeclareUnicodeCharacter{03C0}{\foreignlanguage{greek}{\textpi }} %% π
\DeclareUnicodeCharacter{03C1}{\foreignlanguage{greek}{\textrho }} %% ρ
\DeclareUnicodeCharacter{03C2}{\foreignlanguage{greek}{\textfinalsigma }} %% ς %% final sigma
\DeclareUnicodeCharacter{03C3}{\foreignlanguage{greek}{\textsigma }} %% σ
\DeclareUnicodeCharacter{03C4}{\foreignlanguage{greek}{\texttau }} %% τ
\DeclareUnicodeCharacter{03C5}{\foreignlanguage{greek}{\textupsilon }} %% υ
\DeclareUnicodeCharacter{03C6}{\foreignlanguage{greek}{\textphi }} %% φ
\DeclareUnicodeCharacter{03C7}{\foreignlanguage{greek}{\textchi }} %% χ
\DeclareUnicodeCharacter{03C8}{\foreignlanguage{greek}{\textpsi }} %% ψ
\DeclareUnicodeCharacter{03C9}{\foreignlanguage{greek}{\textomega }} %% ω
\documentclass{jlreq}
\usepackage[LGR, T1]{fontenc}
\usepackage[greek, japanese]{babel}
\usepackage[prefercjkvar]{pxcjkcat}
\input{declare-greek.tex}
\begin{document}
アンドロメダ座α星、β1受容体、ε-δ論法
\end{document}
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
-
エンコーディングが LGR のギリシャ文字に関する情報は、greek-fontenc のドキュメントを参照してください。 ↩





