라틴 문자를 그리스어로 변환

라틴 문자를 그리스어로 변환

로마 문자에서 그리스어 문자를 생성하는 패키지나 간단한 방법이 있습니까?

예를 들면 다음과 같습니다.

\greek{a}생성할 것이다\alpha

\greek{b}생성할 것이다\beta

\greek{B}생성할 것이다 \Beta,

등등... 나는 그러한 서신이 일대일 지도는 아니지만 충분히 근접할 수 있다는 것을 알고 있습니다.

이에 대한 나의 필요성은 박사 과정에서 가지고 있는 일련의 명령과 관련이 있습니다. 일부 범주에서 결정된 기호의 호환 가능한(항상 동일한) 사용을 보장하기 위한 문서입니다. 예를 들어 다음과 같은 몇 가지 명령이 있습니다.

\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

한 가지 방법은 다음과 같이 해당 로마 문자의 코드를 기반으로 원하는 문자를 선택하는 것입니다(코드는 불완전하며 처음 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}

관련 정보