0
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

本文内でギリシャ文字をちょっとだけ扱いたい

Posted at

LaTeX でギリシャ文字をちょっとだけ扱いたいこと、例えば、ギリシャ文字が以下のような特定のワードの中で使われていることは多々あります。

  • アンドロメダ座 α 星
  • β1 受容体
  • ε-δ 論法

しかし、これをそのまま upLaTeX や LuaLaTeX で使おうとすると以下のようになります。(この例では LuaLaTeX で作成)

greek-font

コード(折りたたみ)
\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}

cbgreek.png

ギリシャ文字用のコマンドは text に続いて基本的なギリシャ文字名を与えます。大文字は \textAlpha、小文字は \textalpha 等のようにします。
ただし、オミクロンは \textOmikron\textomikron(omicron ではない)、小文字のミューは \textmugreek(textcomp の \textmu を上書きしない)です。

いくつかのギリシャ文字小文字のバリアントは以下のように定義されます。

ϵ \straightepsilon
ϑ \scripttheta
θ \straighttheta
ϕ \straightphi
ς \textvarsigma

イプシロン、シータ、ファイに関しては、数式のギリシャ文字と異なって \var~ となる文字が普通の \text~ ギリシャ文字として割り当てられる傾向にあるようです。

フォントは cbgreek(デフォルト)、eulerartemisia の 3 つをパッケージオプションから選択できます。また、\textgreekfontmap を構成することで任意のギリシャ文字フォントを指定できます。1

euler を指定すると、和欧文間スペースが挿入されません。

euler.png

原因はよく分からないので、対処療法的に BXghost パッケージを使って適切に和欧文間スペースを挿入するようにしてください。 (参考

アンドロメダ座\eghostguarded{\textalpha}星、\eghostguarded{\textbeta}1受容体、\eghostguarded{\textepsilon-\textdelta}論法

加えて、pxcjkcat パッケージで prefercjkvar を指定すると、リテラルな入力であっても欧文フォントで出力されます。フォントは textgreek パッケージのフォントに従います。

\documentclass{jlreq}
\usepackage[T1]{fontenc}
\usepackage[prefercjkvar]{pxcjkcat}
\usepackage[artemisia]{textgreek}
\begin{document}

アンドロメダ座α星、β1受容体、ε-δ論法

\end{document}

artemisia

おそらくこの方法が upLaTeX を使ってリテラルにギリシャ文字を入力する最も平易な方法です。

textgreek パッケージの類似パッケージには、textalphaalphabeta パッケージがあります。これらのパッケージは greek-fontenc のバンドルです。

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}}

NewComputerModern.png

コード(折りたたみ)
\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}

これによって、リテラルなギリシャ文字が欧文扱いとなります。

TeXGyrePagellaX.png

コード(折りたたみ)
\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$}

これを踏まえて先の例を作成してみると、以下のようになります。

article2-image-1.png

コード(折りたたみ)
\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 パッケージは数式用の立体ギリシャ文字を提供します。また、newtxmathnewpxmath パッケージでは立体のギリシャ文字が初めから提供されています。
あるいは、unicode-math パッケージ (LuaLaTeX) を利用している場合でも、立体ギリシャ文字を扱うことが出来ます。

ここでは、upgreek パッケージを利用した結果を例として紹介します。(upgreek では、\upalpha 等とします)

article2-image-2.png

コード(折りたたみ)
\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}
  1. エンコーディングが LGR のギリシャ文字に関する情報は、greek-fontenc のドキュメントを参照してください。

0
0
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
0
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?