具有数学支持的手写字体

具有数学支持的手写字体

朋友们,我一直在寻找支持数学的手写字体。在LaTeX 字体目录,有很多很棒的手写字体可用,但不幸的是我找不到具有适当数学支持的字体。

我知道一般规则是使用适当的数学字体,比如说mathpazo。但在这个非常特殊的情况下 -beamer我正在为我的一个主题演讲编写的模板 - 手写字体非常适合。

我在comp.text.tex线并且还LaTeX 社区论坛- 后者提供了一种有趣的方法弗拉布尤斯

由于这两个条目的日期都是 2010 年 1 月,我想知道是否有关于这个主题的新见解 - 新字体、新技术等。

或者我可以收集一些detexify样本并将它们全部放在一起以数学字体显示。=P (只是在开玩笑!)


更新:由于我的问题得到了如此出色的答案,我将添加悬赏。我的计划是接受一个答案,同时为另一个答案授予悬赏。

答案1

您可以尝试 AMS Euler 字体(或 Neo Euler opentype)。它是一种直立字体,设计为类似于黑板上写的数学。

我认为,对于演示而言,Euler 与 GFS Artemisia 结合得很好,但后者不是手写字体。

编辑:如果你决定使用欧拉字体,你可以通过以下方式获得数学支持\usepackage{euscript}然后你可以写,例如:$\EuScript{C}$得到一个漂亮的圆形字母C。

答案2

正如 Andrey 在他的评论中提到的那样,有“书法”字体,例如 Zapf Chancery 和 Euler。另一个例子是非免费的、收费的 Math Script 和 Math Curly,它们是完整的 mtpro2 系列。使用这两个和普通 mtpro2 字体的一个简单的例子是:

\documentclass{article}
\usepackage[mtpccal,mtpscr]{mtpro2}
\newcommand\scrsin{s\kern-.17em i\kern-.12em n}
\begin{document}
\[ \mathscr{{d f(x)\over dx} = {d \scrsin(x) \over dx} = \cos(x)} \]

\[ \mathcal{{d f(x)\over dx} = {d \scrsin(x) \over dx} = \cos(x)} \]

\[{d f(x)\over dx} ={d \sin x \over dx} = \cos x \]
\end{document}

这也说明了模拟手写的一些问题:

  • 标准数学运算符可能看起来不像手写的;比较一下 \sin、\scrsin 的快速替换与上面的 \cos。

  • 除了专业的书法作家外,手写文本并不是完全均匀的(即,给定字母形式的每次出现都是相同的)。

  • 手写字母的形状可能因邻近字母而异。有些手写字体确实支持替代字母形式(例如 mtpro2 的 Math Curly 和 Math Script 中的“r”和“z”),但通常不支持全范围来模拟手写。

  • 除了在有线纸上以外,手写数学的基线和规则在手写版本中并不那么直接。

  • 手写字体通常不如好的“标准”字体清晰易读。对于有限的用途(例如通常的数学用途,作为脚本或书法变量),这通常并不重要,但对于更广泛的用途,尤其是投影时,则需要考虑与更常见的字体相比,远距离可读性和易读性(包括视力不太好的人)的问题。这可能会限制它们在投影材料中的使用,除非用于新颖用途或不重要的内容?

答案3

您将其描述为“特殊”情况。我也一直在寻找手写数学字体。我一直很欣赏我父亲在 20 世纪中期的物理学教科书的外观。我特别喜欢墨水插图,我很想将当今计算机绘制插图的精确性与我在其中看到的优雅性融合在一起。如果有人在这方面有建议,我会很高兴听到(handLaTeX 是我不知道的)。这是 Morse 的一个例子振动和噪音文本量比平常要多。

Morse 的《振动与声音》,1948 年,第 8 页

答案4

为了完整起见,我针对手写字体问题添加了另一条建议:


第一条建议:加载“普通”手写字体并将数学字体设置为它。

那是弗拉布尤斯' 最初的建议LaTeX 社区论坛。这个想法是使用适当的引擎加载“正常”手写字体并将数学字体设置为它。这种方法将仅替换数字,不是操作符集,但它可能适用于一些简单的情况。


第二条建议:DIY 手写字体。

这开始只是个玩笑,但人们可能真的会考虑自己动手做——自己做- 手写字体。

信息 (事实上​​,我实际上正在计划这个,一旦我有一些重要的东西要展示,我会编辑这个问题并提供正确字体存储库的链接 - 可能是 GitHub)

我的想法:

  1. 用你最喜欢的编辑器绘制人类已知的每一个字形(例如,Inkscape)或将它们画在纸上,扫描,然后使用适当的转换器将其描摹为矢量(例如,波特雷斯)。

  2. 从 SVG 符号创建符号字体并按照说明使用FontForge生成新字体。


第三个建议:警告未经测试!警告使用euler带有一些趣味的字体。

我找到了一个项目叫手用乳胶托管在 Google Code 上。它似乎有一个包和一个程序。这是使用 Python 3 的新链接:https://github.com/DavideFauri/handlatex 根据手册:

hand软件包是专用handlatex前端的 LaTeX 接口。它提供了一个简单的环境,\handpar可用于注入段落位置、内衬和方向的看似随机的变化,以及视觉单词移位。结合适当的字体,它可以合理地模仿在分界纸上潦草手写文本的典型渲染效果。

您可以查看.tex可用的示例文件这里

\documentclass{article}

% Sample demo document for handLatex using TeX Live' xelatex driver.

\usepackage[xetex,
  bookmarks=false,
  pdftitle={handLaTeX demo}]{hyperref}
\usepackage{fontspec}

\usepackage[driver=xelatex,
  lowwordangle=-3,
  highwordangle=3,
]{hand}
\usepackage{amssymb}

\begin{document}
\thispagestyle{empty}

\section*{\texttt{hand}\LaTeX\ Demo}
%\fontspec{Fountain Pen Frenzy} % If you have any good font, include it here.

\vfill

\begin{handpar}
Lorem ipsum dolor sit amet, consectetuer adipiscing elit. Duis ut libero et arcu
interdum varius. Nam bibendum, mi sed consequat malesuada, nunc diam condimentum
massa, sit amet egestas nibh ligula sit amet dui. Vestibulum eu urna. Etiam
vestibulum. Aenean nisi nulla, fringilla at, laoreet eu, iaculis id,
diam. Mauris aliquet vehicula lacus. Maecenas id nisl ac justo sodales
dictum. Phasellus eget eros. In hac habitasse platea dictumst. Nam ut tortor
vitae dui mollis egestas. Nullam sagittis libero quis nibh. Donec aliquam. Donec
tincidunt. Aliquam eget nisl. Suspendisse mollis pellentesque nunc.
\end{handpar}

...

输出:

手用LaTeX

我想看看使用这个包/前端时可以实现什么效果euler。我稍后会试验一下。顺便说一句,我在阅读手册时没有找到任何关于数学的参考资料hand,所以我不确定它的表现如何。

相关内容