希腊数字

希腊数字

我希望在某些子方程中使用 1\alpha、1\beta、... 等数字。我知道这可以通过重新定义 \theequation 来实现,如下所示(给出小写罗马数字,1.i、1.ii、...)

\begin{subequations}
\renewcommand{\theequation}{\theparentequation{}.\roman{equation}}
\begin{align}
  a1 &= b1 \\
  a2 &= b2
\end{align}
\end{subequations}

问题是我不知道什么与 \roman 相当,可以产生希腊字母。

一个相关的问题(可能包含上述问题)是:有人可以完成一组命令吗

\arabic, \alph, \Alph, \roman, \Roman, ...

答案1

\alph您可以通过从文件中获取 eg 的代码latex.ltx并对其进行修改来创建希腊语等效代码,以获得所需的内容。它还需要对环境进行轻微subequations修改数学

\documentclass[11pt,a4paper]{article}
\usepackage[T1]{fontenc}
\usepackage[latin1]{inputenc}
\usepackage{amsmath}

\makeatletter
\newcommand*{\greek}[1]{%
  \expandafter\@greek\csname c@#1\endcsname
}
\newcommand*{\@greek}[1]{%
  $\ifcase#1\or\alpha\or\beta\or\gamma\or\delta\or\varepsilon
    \or\zeta\or\eta\or\theta\or\iota\or\kappa\or\lambda
    \or\mu\or\nu\or\xi\or o\or\pi\or\varrho\or\sigma
    \or\tau\or\upsilon\or\phi\or\chi\or\psi\or\omega
    \else\@ctrerr\fi$
}
\renewenvironment{subequations}{%
  \refstepcounter{equation}%
  \protected@edef\theparentequation{\theequation}%
  \setcounter{parentequation}{\value{equation}}%
  \setcounter{equation}{0}%
  \def\theequation{\theparentequation\greek{equation}}%
  \ignorespaces
}{%
  \setcounter{equation}{\value{parentequation}}%
  \ignorespacesafterend
}
\makeatother

\begin{document}
  \begin{subequations}
    \begin{align}
      (a+b)^2 &= a^2+2ab+b^2 \\
      (a-b)^2 &= a^2-2ab+b^2 \\
      (a+b)(a-b) &= a^2-b^2
    \end{align}
  \end{subequations}
\end{document}

您提到您只想修改一些方程式。上面介绍的方法是一种一般性的修改。因此您可能需要自己做一些调整。至少您有希腊字母作为枚举符号,它们也可以在其他地方使用。

答案2

汲取灵感TD 的出色回答,我编写了一个小包来添加额外的计数器输出类型。除了希腊字母,它还定义了二进制、十六进制和“第一、第二、第三……”。

答案3

您可以使用 \greeknumeral 或 \Greeknumeral巴别塔包。我不确定它们在数学环境中的表现如何,但你可以阅读源代码来获得一些启发。

答案4

LaTeX2e 没有与希腊字母对应的命令。你唯一缺少的编号命令是\fnsymbol,这实际上是你自己实现对希腊字母的支持的方式。\fnsymbol是(来自 source2e.pdf)

\def\fnsymbol#1{\expandafter\@fnsymbol\csname c@#1\endcsname}

并且\@fnsymbol

\def\@fnsymbol#1{\ensuremath{\ifcase#1\or 
    *\or \dagger\or \ddagger\or\mathsection\or 
    \mathparagraph\or \|\or **\or \dagger\dagger\or 
    \ddagger\ddagger 
  \else\@ctrerr\fi}}

因此,要定义您自己的编号方案,只需按照类似的方式定义一个新的宏并插入适当的符号。

可能已经有一个包可以做到这一点;另一个类似的包alphalph可以让你按字母顺序显示大于 26 的数字:{ A,...,XYZAAAB...,ZZAAAAAB...,FXSHRXW}

相关内容