据我所知,在大多数 TeX 代码手册中,希伯来字母在 LaTeX 中可用于数学符号。即\aleph
,,,。\beth
\gimel
\dalet
问题:我想知道是否有其他希伯来字母的 TeX 代码。如果没有,有人能帮忙定义一些代码吗,特别是以下代码:
Lamed、Mim、Ayin、Tsadi、Qof、Shin
为了使我的问题更加清楚,让我添加一些额外的解释:
我想在研究级数学论文中使用新的希伯来字母。这意味着,我正在寻找一个简单的代码,比如\shin
,它可以在英语文本中的美元符号(公式环境)之间使用$ ... $
,并且可以与其他数学运算符(如指数和幂)交互。例如,当我们写的时候,$\aleph_{8}^{2}$
我想写$\shin^{3}$
。
答案1
我可以向您展示如何在清晰的纯 TeX 和使用 OPmac 的纯 TeX 中执行此操作。首先是清晰的纯 TeX:
\newfam\hebfam
\font\tmp=rcjhbltx at10pt \textfont\hebfam=\tmp
\font\tmp=rcjhbltx at7pt \scriptfont\hebfam=\tmp
\font\tmp=rcjhbltx at5pt \scriptscriptfont\hebfam=\tmp
\edef\declfam{\ifcase\hebfam
0\or1\or2\or3\or4\or5\or6\or7\or8\or9\or A\or B\or C\or D\or E\or F\fi}
\mathchardef\shin = "0\declfam 98 % 98 is hexa code of shin
\mathchardef\aleph = "0\declfam 27
\mathchardef\beth = "0\declfam 62
\mathchardef\gimel = "0\declfam 67
\mathchardef\daleth = "0\declfam 64
\mathchardef\lamed = "0\declfam 6C
\mathchardef\mim = "0\declfam 6D
\mathchardef\ayin = "0\declfam 60
\mathchardef\tsadi = "0\declfam 76
\mathchardef\qof = "0\declfam 72
Now I can use $A_\shin, \shin$ or $B^\shin$.
\bye
该解决方案基于rcjhbltx
常见 TeX 发行版中存在的字体。此字体的编码在文件中描述cjhebltx.enc
。您可以查看此文件以查找所需的其他代码。
clear plain TeX 的主要缺点是主字体大小固定为 10pt,数学排版固定为 10pt/7pt/5pt。而 OPmac 提供了任意大小的主字体(以及派生的数学排版)。最后,新数学系列的声明更简单:
\input opmac
\addto\normalmath {\loadmathfamily 15 rcjhbltx } \normalmath
\addto\boldmath {\loadmathfamily 15 rcjhbltx }
\mathchardef\shin = "0F98 % 98 is hexa code of shin
\mathchardef\aleph = "0F27
\mathchardef\beth = "0F62
\mathchardef\gimel = "0F67
\mathchardef\daleth = "0F64
\mathchardef\lamed = "0F6C
\mathchardef\mim = "0F6D
\mathchardef\ayin = "0F60
\mathchardef\tsadi = "0F76
\mathchardef\qof = "0F72
Now I can use $A_\shin, \shin$ or $B^\shin$. (10pt size)
\typosize[12.3/15]
Now I can use $A_\shin, \shin$ or $B^\shin$. (12.3pt size)
\bye
答案2
对 wipet 的优秀答案的 LaTeX 补充。
\documentclass{article}
\usepackage{amsmath,amssymb}
\DeclareFontFamily{U}{rcjhbltx}{}
\DeclareFontShape{U}{rcjhbltx}{m}{n}{<->rcjhbltx}{}
\DeclareSymbolFont{hebrewletters}{U}{rcjhbltx}{m}{n}
% remove the definitions from amssymb
\let\aleph\relax\let\beth\relax
\let\gimel\relax\let\daleth\relax
\DeclareMathSymbol{\aleph}{\mathord}{hebrewletters}{39}
\DeclareMathSymbol{\beth}{\mathord}{hebrewletters}{98}\let\bet\beth
\DeclareMathSymbol{\gimel}{\mathord}{hebrewletters}{103}
\DeclareMathSymbol{\daleth}{\mathord}{hebrewletters}{100}\let\dalet\daleth
\DeclareMathSymbol{\lamed}{\mathord}{hebrewletters}{108}
\DeclareMathSymbol{\mem}{\mathord}{hebrewletters}{109}\let\mim\mem
\DeclareMathSymbol{\ayin}{\mathord}{hebrewletters}{96}
\DeclareMathSymbol{\tsadi}{\mathord}{hebrewletters}{118}
\DeclareMathSymbol{\qof}{\mathord}{hebrewletters}{113}
\DeclareMathSymbol{\shin}{\mathord}{hebrewletters}{152}
\begin{document}
Now I can use $A_\shin$, $\shin$ or $B^\shin$.
$X\aleph\beth\gimel\daleth\lamed\mem\ayin\tsadi\qof\shin X$
$\bet\dalet\mim$
\end{document}
我们在通用U
编码中声明一个新的字体系列,然后为其分配一个字体。然后定义一个数学符号字体并将代码分配给命令。
为达到统一性,来自和计算机现代(aleph)的字形amssymb
已被禁用并重新分配。
我还添加了字体表,rcjhbltx
以便可以导出其他字形的代码。
答案3
自 2021 年起,这个问题可能需要更新。在 PDFTeX 中,Culmus Project 字体现在可用于 8 位 LaTeX,通过包裹culmus-latex
。
\documentclass{article}
\usepackage{amsmath,amssymb}
% The culmus-latex package is available for free at:
% https://sourceforge.net/projects/ivritex/files/culmus-latex/
\usepackage{culmus}
% Use Frank Ruehl CLM as a math symbol font:
\DeclareSymbolFont{alephbet}{HE8}{frank}{m}{n}
\SetSymbolFont{alephbet}{bold}{HE8}{frank}{b}{n}
% remove the definitions from amssymb
\let\aleph\relax\let\beth\relax
\let\gimel\relax\let\daleth\relax
\DeclareMathSymbol{\aleph}{\mathord}{alephbet}{"E0}
\DeclareMathSymbol{\beth}{\mathord}{alephbet}{"E1}
\DeclareMathSymbol{\gimel}{\mathord}{alephbet}{"E2}
\DeclareMathSymbol{\daleth}{\mathord}{alephbet}{"E3}
\DeclareMathSymbol{\he}{\mathord}{alephbet}{"E4}
\DeclareMathSymbol{\vav}{\mathord}{alephbet}{"E5}
\DeclareMathSymbol{\zayin}{\mathord}{alephbet}{"E6}
\DeclareMathSymbol{\het}{\mathord}{alephbet}{"E7}
\DeclareMathSymbol{\tet}{\mathord}{alephbet}{"E8}
\DeclareMathSymbol{\yod}{\mathord}{alephbet}{"E9}
\DeclareMathSymbol{\kaf}{\mathord}{alephbet}{"EB}
\DeclareMathSymbol{\lamed}{\mathord}{alephbet}{"EC}
\DeclareMathSymbol{\mem}{\mathord}{alephbet}{"EE}
\DeclareMathSymbol{\nun}{\mathord}{alephbet}{"F0}
\DeclareMathSymbol{\samech}{\mathord}{alephbet}{"F1}
\DeclareMathSymbol{\ayin}{\mathord}{alephbet}{"F2}
\DeclareMathSymbol{\pe}{\mathord}{alephbet}{"F4}
\DeclareMathSymbol{\tsadi}{\mathord}{alephbet}{"F6}
\DeclareMathSymbol{\qof}{\mathord}{alephbet}{"F7}
\DeclareMathSymbol{\resh}{\mathord}{alephbet}{"F8}
\DeclareMathSymbol{\shin}{\mathord}{alephbet}{"F9}
\DeclareMathSymbol{\tav}{\mathord}{alephbet}{"FA}
\begin{document}
Now I can use $A_\shin$, $\shin$ or $B^\shin$.
{\bfseries\boldmath Also, $A_\shin$, $\shin$ or $B^\shin$.}
$X\aleph\beth\gimel\daleth\he\vav\zayin\het\tet\yod\kaf\lamed\mem\nun\samech\ayin\pe\tsadi\qof\resh\shin\tav X$
\end{document}
要安装该软件包,请将文件解压到本地 TeX 树,然后运行
texhash
updmap-sys --enable Map=culmus.map
我在这个例子中使用了 Frank Ruehl,但也支持许多其他字体。
在 LuaLaTeX 或 XeLaTeX 中,切换到文本模式并使用 OpenType 字体可能更方便。(尽管也可以从 Unicode 编码的符号字体声明希伯来字母。)在此示例中,我使用 Libertinus Serif 和 Libertinus Math:
\documentclass{article}
\usepackage{Libertinus} % For example
\newcommand\vav{\textup{\rmfamily\symbol{"05D5}}} % ו
\newcommand\shin{\textup{\rmfamily\symbol{"05E9}}} % ש
\begin{document}
\section*{The Symbol \(\shin\)}
\( f(t) \cdot \shin \)
\end{document}
这里的十六进制代码是希伯来字母的 Unicode 代码点。
\textup
您可以在或中插入任何文本模式命令\textnormal
,包括切换到使用 加载的希伯来语字体fontspec
。
如果您需要很多符号字母,以至于您使用希伯来语,那么使用 就不会用完unicode-math
。
答案4
我发现使用 cjhebrew 包最方便,请参阅:https://ctan.org/pkg/cjhebrew
它包含在标准包中,因此包含起来非常简单,并且非常易于使用,还支持更高级的功能,例如更改方向(从右到左,如希伯来语)和根据需要调整字尾字符的字体(希伯来语中某些字符有所不同)。非常易于使用(如果您只需要几个字符,那就更好了)。