基本数学模式符号存储在哪里

基本数学模式符号存储在哪里

我想要做的:我想取两个基本的 LaTeX 数学模式字符,取它们的矢量图文件,然后将它们编辑在一起以形成一个新符号,我希望它的行为与任何其他数学模式符号一样。然后我想用这个制作一个功能齐全的包。

我没有问的是:我并不是在问如何查找这个符号是否已被其他人制作(我知道不是)。我也不想通过使用 \newcommand 将两个字符打印在另一个字符之上,然后弄乱间距(这不会提供令人满意的结果)来做到这一点,而且我确信使用 tikz 重新创建它将非常困难(由于所涉及字符的复杂性和字母式风格)。这些是我在被问到这样的问题时在这里找到的一些答案,我确信这不是我需要做的。

我的问题是:在哪里(哪个目录)可以找到简单数学模式字符的矢量图,以便我可以编辑它们以达到自己的目的,在哪里可以找到包代码,使我的角色的行为与任何其他数学模式符号完全一样。我同时问这两个问题,因为我假设它们在类似的地方。


我正在尝试弄清楚事情是如何运作的,因此如果您展示非平凡代码,请解释它的作用。

答案1

这里的主要困难似乎是您想要一个适用于所有数学样式的符号,而不必每次使用时都调整间距和大小。这里的解决方案是使用 或 来定义符号\mathchoice\mathpalette有关详细信息,请参阅

假设你有一些非常复杂的符号

在此处输入图片描述

您可能已经开始手绘并描摹。无论如何,以上是图像形式的符号的矢量化版本。我将其称为象征

定义你的象征通过\mathchoice以下方式:

\newcommand{\mysymbol}{%
  \mathchoice
    {\includegraphics[height=1em]{super_intricate_symbol}}
    {\includegraphics[height=1ex]{super_intricate_symbol}}
    {\includegraphics[height=.7ex]{super_intricate_symbol}}
    {\includegraphics[height=.5ex]{super_intricate_symbol}}
}

这使您可以定制象征即使您只使用一张图片,也会根据数学样式调整显示尺寸(以及相关的间距/对齐方式)。以下是用例示例:

在此处输入图片描述

\documentclass{article}

\usepackage{graphicx}

\newcommand{\mysymbol}{%
  \mathchoice
    {\includegraphics[height=1em]{super_intricate_symbol}} % \displaystyle
    {\includegraphics[height=1ex]{super_intricate_symbol}} % \textstyle
    {\includegraphics[height=.7ex]{super_intricate_symbol}}% \scriptstyle
    {\includegraphics[height=.5ex]{super_intricate_symbol}}% \scriptscriptstyle
}

\begin{document}

\[
  x\ {\textstyle x}^{x^x} \quad
  x\mysymbol\ {\textstyle x\mysymbol}^{x\mysymbol^{x\mysymbol}} \quad
  x\mysymbol\ {\textstyle x\mysymbol}_{x\mysymbol_{x\mysymbol}} \quad
  x\ {\textstyle x}_{x_x}
\]

\end{document}

使用这种方法会损失字体粗细,因为字体粗细通常会根据较小版本进行调整。请注意,x尽管以 书写,但其字干仍然相当粗。以下是使用的\scriptscriptstyle直接比较x象征

在此处输入图片描述

\newcommand{\mysymbol}{%
  \mathchoice
    {\resizebox{!}{1ex}{$\textstyle x$}} % \displaystyle
    {\resizebox{!}{1ex}{$\textstyle x$}} % \textstyle
    {\resizebox{!}{.7ex}{$\textstyle x$}}% \scriptstyle
    {\resizebox{!}{.5ex}{$\textstyle x$}}% \scriptscriptstyle
}

不同的字体粗细在\scriptscriptstyle(上标的上标)中很明显。为此,您可以定义不同粗细版本的象征并在 中的相应组件 ( \...style)中使用它们\mathchoice。但是,根据用例和/或象征建设,这可能不是一个问题。

即使你定义了你的象征使用多个符号叠加;也就是说,定义适当的间距/布局,这可能取决于您所使用的数学风格。


字体应该存储在 TeX 目录结构 (TDS) 中名为 的文件夹下fonts。如果您想知道使用了哪些字体,则可以添加\showoutput到一个小文档中,使用符号并查看.log。例如,以下最小示例

\documentclass{article}

\begin{document}

\showoutput
$\alpha$

\end{document}

显示(我为页面上的元素添加了突出显示;\alpha以及页码):

Completed box being shipped out [1]
\vbox(633.0+0.0)x407.0
.\glue 16.0
.\vbox(617.0+0.0)x345.0, shifted 62.0
..\vbox(12.0+0.0)x345.0, glue set 12.0fil
...\glue 0.0 plus 1.0fil
...\hbox(0.0+0.0)x345.0
..\glue 25.0
..\glue(\lineskip) 0.0
..\vbox(550.0+0.0)x345.0, glue set 539.94232fil
...\write-{}
...\glue(\topskip) 5.69446
...\hbox(4.30554+0.0)x345.0, glue set 323.56596fil
....\hbox(0.0+0.0)x15.0
....\mathon
....\OML/cmm/m/it/10  % <------------------------------- \alpha
....\kern0.03702
....\mathoff
....\penalty 10000
....\glue(\parfillskip) 0.0 plus 1.0fil
....\glue(\rightskip) 0.0
...\glue 0.0 plus 1.0fil
...\glue 0.0
...\glue 0.0 plus 0.0001fil
..\glue(\baselineskip) 23.55556
..\hbox(6.44444+0.0)x345.0, glue set 170.0fil
...\glue 0.0 plus 1.0fil
...\OT1/cmr/m/n/10 1 % <--------------------------------- page number (1)
...\glue 0.0 plus 1.0fil

您将看到\alpha使用cmm- Computer Modern Math 和italics 形状作为点。然后您可以打印via10的整个字体表:cmmi10\fonttable

在此处输入图片描述

\documentclass{article}

\usepackage{fonttable}

\begin{document}

\fonttable{cmmi10}

\end{document}

\show\alpha还将职位标识为\mathchar"10B

您还会失去字体特有的字距校正功能。不过,与以自己想要的方式管理内容所带来的便利相比,所有这些损失可能微不足道。

有关的:有没有简单的方法可以打印出 LaTeX 字体集中所有可用的字符?

相关内容