LaTeX 可扩展分隔符定义

LaTeX 可扩展分隔符定义

我正在编写一种新字体(使用 Metafont),并且正在研究 OMX 编码的数学字体。我已经正确定义了可扩展括号的各个部分,并为 TFM 包含了相当简单的连字程序:

extensible oct"060": oct"060",0,oct"100",oct"102";
extensible oct"061": oct"061",0,oct"101",oct"103";

我非常有信心 TFM 文件正确反映了这些连字程序,如 tftopl 的输出所示:

(CHARACTER C 0
    (CHARWD R 0.63999)
    (CHARHT R 2.4)
    (CHARDP R 0.800001)
    (VARCHAR
    (TOP C 0)
        (BOT O 100)
        (REP C B)
        )
    )
(CHARACTER C 1
    (CHARWD R 0.63999)
    (CHARHT R 2.4)
    (CHARDP R 0.800001)
    (VARCHAR
        (TOP C 1)
        (BOT C A)
        (REP C C)
        )
    )

我还编写了一个 LaTeX 包文件,据我从 fntguide.pdf 中得知,它应该可以启用可扩展字符。以下是 MWE,它并没有真正帮助,因为字体文件不可用,但无论如何它还是值得的:

\documentclass{article} 
\DeclareMathVersion{drmmath}
\DeclareFontFamily{OMX}{drm}{}
\DeclareFontShape{OMX}{drm}{m}{n}{ <-> drmomx10 }{}
\DeclareSymbolFont{drmmathomx}{OMX}{drm}{m}{n}
\SetSymbolFont{drmmathomx}{drmmath}{OMX}{drm}{m}{n}
\DeclareMathDelimiter{(}{\mathopen}{operators}{"28}
    {drmmathomx}{"00}
\DeclareMathDelimiter{)}{\mathclose}{operators}{"29}
    {drmmathomx}{"01}
\mathversion{drmmath}
\begin{document}

$$\left(\frac{%
    \frac{x^4}{2a\vartheta^{-\gamma}}
    }{\frac{\xi_4^\kappa}{\frac{37\alpha^4 +
    b}{\frac{3}{4}y^a}}}
    \right)$$

$$\left(\frac{2}{3}\right)$$

$$\left(2\right)$$

\end{document}

如果我将“drmmathomx”更改为“largesymbols”,扩展就会起作用;但是,如果我不这样做,它们就不会起作用。字形来自正确的字体;但它们没有扩展。我尽我所能地搜索了可用的文献,但老实说,我不知道这里是什么不起作用。任何关于这个深奥问题的帮助都将不胜感激。

答案1

对于可能遇到类似问题的其他人,我设法研究了一些其他字体文件并发现了问题。

看来我做的一切都正确,只是在 OMX 字体的连字符表中我没有指示 Metafont 将相应的符号关联在一起。因此,相关的连字符条目现在如下所示:

charlist oct"000" : oct"020" : oct"022" : oct"040" : oct"060";
charlist oct"001" : oct"021" : oct"023" : oct"041" : oct"061";
extensible oct"060": oct"060",0,oct"100",oct"102";
extensible oct"061": oct"061",0,oct"101",oct"103";

在 OMX 编码中(我复制它是因为...好吧,因为这是 Knuth 所做的,如果它可以改进,那我的数学水平还不够好),指令将charlist开括号和闭括号关联在一起;extensible然后指令告诉 Metafont 在到达oct"060"和时该做什么oct"061",它们是可扩展括号的顶部部分。

现在它起作用了,我的头痛也消失了。真尴尬,这是一件如此简单的事情。

相关内容