ラテン文字をギリシャ文字に変換する

ラテン文字をギリシャ文字に変換する

ローマ字からギリシャ文字を生成するパッケージまたは簡単な方法はありますか?

たとえば、次のようになります。

\greek{a}生成する\alpha

\greek{b}生成する\beta

\greek{B}生成されます\Beta

などなど...このような対応は 1 対 1 のマップではないことは承知していますが、十分に近いものになる可能性があります。

私がこれを必要としているのは、いくつかのカテゴリで決定されたシンボルを互換性のある(常に同等の)方法で使用できるようにするため、博士論文に記述した一連のコマンドに関係しています。たとえば、次のようなコマンドがあります。

\newcommand{\setname}[1]{\ensuremath{\uppercase{#1}}}
\newcommand{\matrixname}[1]{\ensuremath{\mathbf{\uppercase{#1}}}}
\newcommand{\vectorname}[1]{\ensuremath{\vec{\lowercase{#1}}}}
\newcommand{\scalarname}[1]{\ensuremath{\lowercase{#1}}}

したがって、セット S を定義する必要がある場合は、 を使用でき、セットは数式フォーマット (斜体など) 付きの大文字になることが保証されます。何らかの理由で、後でセットのフォーマットを小文字に変更する必要がある場合は、コマンドの定義を\setname{S}変更するだけで済みます。\setname

ここで、特定の空でない種類のセット、つまりアルファベット用の新しいコマンドが必要です。アルファベットの名前を定義するために大文字のギリシャ文字を使用したいと思います。そこで、次のようなコマンドを作成したいと思います。

\newcommand{\alphabetname}[1]{\ensuremath{\greek{\uppercase{#1}}}}

次に、Σ アルファベットを定義するには次のように記述します。

\alphabetname{s}そしてΣを得ます。

答え1

以下は、ラテン文字を使用してギリシャ語を入力するための LaTeX の標準エンコードです。

\documentclass{article}
\usepackage{amsmath}
\usepackage{xparse}

\ExplSyntaxOn
\NewDocumentCommand{\ucgreek}{m}
 {
  \str_case:nn { #1 }
   {
    {A}{\mathrm{A}}
    {B}{\mathrm{B}}
    {C}{\Sigma}
    {D}{\Delta}
    {E}{\mathrm{E}}
    {F}{\Phi}
    {G}{\Gamma}
    {H}{\mathrm{H}}
    {I}{\mathrm{I}}
    {J}{\Theta}
    {K}{\mathrm{K}}
    {L}{\Lambda}
    {M}{\mathrm{M}}
    {N}{\mathrm{N}}
    {O}{\mathrm{O}}
    {P}{\Pi}
    {Q}{\mathrm{X}}
    {R}{\mathrm{P}}
    {S}{\Sigma}
    {T}{\mathrm{T}}
    {U}{\Upsilon}
    %{V}{}
    {W}{\Omega}
    {X}{\Xi}
    {Y}{\Psi}
    {Z}{\mathrm{Z}}
   }
 }
\NewDocumentCommand{\lcgreek}{m}
 {
  \str_case:nn { #1 }
   {
    {a}{\alpha}
    {b}{\beta}
    {c}{\varsigma}
    {d}{\delta}
    {e}{\varepsilon}
    {f}{\varphi}
    {g}{\gamma}
    {h}{\eta}
    {i}{\iota}
    {j}{\vartheta}
    {k}{\kappa}
    {l}{\lambda}
    {m}{\mu}
    {n}{\nu}
    {o}{o}
    {p}{\pi}
    {q}{\chi}
    {r}{\rho}
    {s}{\sigma}
    {t}{\tau}
    {u}{\upsilon}
    %{v}{}
    {w}{\omega}
    {x}{\xi}
    {y}{\psi}
    {z}{\zeta}
   }
 }
\ExplSyntaxOff

\newcommand{\alphabetname}[1]{\uppercase{\ucgreek{#1}}}

\begin{document}

The alphabet $\alphabetname{S}$ is important.

\end{document}

答え2

1 つの方法は、次のように対応するローマ字のコードに基づいて必要な文字を選択することです (コードは不完全で、最初の 4 文字のみが実装されています。また、たとえば別の対応を使用する必要がある場合もあります\gamma) g

\documentclass{article}

\newcounter{tmpgreek}
\newcommand{\greek}[1]{%
  \setcounter{tmpgreek}{`#1}
  \addtocounter{tmpgreek}{-`a}
  \ifcase\value{tmpgreek}
    \alpha\or\beta\or\gamma\or\delta
  \fi
  \setcounter{tmpgreek}{`#1}
  \addtocounter{tmpgreek}{-`A}
  \ifcase\value{tmpgreek}
    \mathrm A\or \mathrm B\or\Gamma\or\Delta
  \fi
}

\begin{document}
$\greek{a}$
$\greek{b}$
$\greek{c}$
$\greek{d}$

$\greek{A}$
$\greek{B}$
$\greek{C}$
$\greek{D}$
\end{document}

関連情報