Gibt es ein Paket oder eine einfache Methode, um griechische Zeichen aus ihren römischen Entsprechungen zu generieren?
Wie zum Beispiel:
\greek{a}
würde erzeugen\alpha
\greek{b}
würde erzeugen\beta
\greek{B}
erzeugen würde \Beta
,
Und so weiter … Mir ist bewusst, dass eine solche Entsprechung keine Eins-zu-eins-Zuordnung wäre, aber sie könnte nahe genug herankommen.
Mein Bedarf hierfür hängt mit einer Reihe von Befehlen zusammen, die ich in meinem Doktorarbeitsdokument habe, um eine kompatible (immer gleiche) Verwendung bestimmter Symbole in einigen Kategorien sicherzustellen. Ich habe beispielsweise einige Befehle wie:
\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}}}
Wenn ich also jemals einen Satz S definieren muss, kann ich ihn verwenden und der Satz ist garantiert ein Großbuchstabe mit mathematischer Formatierung (kursiv). Wenn ich aus irgendeinem Grund später die Formatierung von Sätzen ändern muss, um Kleinbuchstaben zu verwenden, muss ich nur die Definition des Befehls \setname{S}
ändern .\setname
Jetzt brauche ich einen neuen Befehl für eine bestimmte Art von Menge, die nicht leer ist: ein Alphabet. Ich möchte griechische Großbuchstaben verwenden, um den Namen eines Alphabets zu definieren. Daher möchte ich einen Befehl wie diesen erstellen:
\newcommand{\alphabetname}[1]{\ensuremath{\greek{\uppercase{#1}}}}
Zur Definition eines Σ-Alphabets könnte ich dann schreiben:
\alphabetname{s}
und erhalten Sie Σ.
Antwort1
Dies ist die in LaTeX standardmäßige Kodierung für die Eingabe von Griechisch mit lateinischen Zeichen.
\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}
Antwort2
Eine Möglichkeit besteht darin, das gewünschte Zeichen einfach anhand des Codes des entsprechenden römischen Zeichens auszuwählen, wie folgt (der Code ist unvollständig, es sind nur die ersten vier Buchstaben implementiert, außerdem möchten Sie vielleicht eine andere Entsprechung verwenden, \gamma
zum g
Beispiel):
\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}