我想使用卷曲的 S 样式,因此我写了以下内容:
\documentclass{article}
\usepackage{amsmath,amssymb}
\DeclareMathAlphabet\EuScript{U}{eus}{m}{n}
\SetMathAlphabet\EuScript{bold}{U}{eus}{b}{n}
\begin{document}
\[ \mathcal{A} = \EuScript{A} \neq \CMcal{A} \]
\end{document}
但它会产生以下错误。
Command Line: bibtex.exe "ideje7"
Startup Folder: C:\Users\hynek0\Desktop\TH0dipl
This is BibTeX, Version 0.99d (MiKTeX 2.9 64-bit)
The top-level auxiliary file: ideje7.aux
I found no \citation commands---while reading file ideje7.aux
I found no \bibdata command---while reading file ideje7.aux
I found no \bibstyle command---while reading file ideje7.aux
(There were 3 error messages)
Command Line: pdflatex.exe --interaction=errorstopmode --synctex=-1 "C:\Users\hynek0\Desktop\TH0dipl\ideje7.tex"
Startup Folder: C:\Users\hynek0\Desktop\TH0dipl
This is pdfTeX, Version 3.14159265-2.6-1.40.15 (MiKTeX 2.9 64-bit)
entering extended mode
(C:/Users/hynek0/Desktop/TH0dipl/ideje7.tex
LaTeX2e <2014/05/01>
Babel <3.9l> and hyphenation patterns for 68 languages loaded.
(D:\ProgramFiles\MikTexExe\tex\latex\base\article.cls
Document Class: article 2014/09/29 v1.4h Standard LaTeX document class
(D:\ProgramFiles\MikTexExe\tex\latex\base\size10.clo))
(D:\ProgramFiles\MikTexExe\tex\latex\amsmath\amsmath.sty
For additional information on amsmath, use the `?' option.
(D:\ProgramFiles\MikTexExe\tex\latex\amsmath\amstext.sty
(D:\ProgramFiles\MikTexExe\tex\latex\amsmath\amsgen.sty))
(D:\ProgramFiles\MikTexExe\tex\latex\amsmath\amsbsy.sty)
(D:\ProgramFiles\MikTexExe\tex\latex\amsmath\amsopn.sty))
(D:\ProgramFiles\MikTexExe\tex\latex\amsfonts\amssymb.sty
(D:\ProgramFiles\MikTexExe\tex\latex\amsfonts\amsfonts.sty)) (ideje7.aux)
(D:\ProgramFiles\MikTexExe\tex\latex\amsfonts\umsa.fd)
(D:\ProgramFiles\MikTexExe\tex\latex\amsfonts\umsb.fd)
(D:\ProgramFiles\MikTexExe\tex\latex\amsfonts\ueus.fd)
! Undefined control sequence.
l.9 \[ \mathcal{A} = \EuScript{A} \neq \CMcal
{A} \]
?
有什么帮助/建议吗?
答案1
Euler Script 是个不错的选择!我喜欢这个字体,它与 Hermann Zapf 更著名的字体 Palatino 非常搭配。
我的建议
我希望这个答案不要太复杂。该文件试图表达的是,\usepackage{eucal}
但它犯了一个错误,即以一个不该做什么的高级示例作为开端。
我尽可能使用现代工具链,包括 XeTeX 或 LuaTeX,只有在必须的情况下才使用传统的 8 位字体。查看您提供的链接,它演示了一些不太有用的东西:在同一文档中结合欧拉脚本和计算机现代符号脚本。
如果你确实想在同一文档中使用两种不同的手写体字母,那么它们在视觉上应该有更大的区别。我自己的做法是将其定义\mathcal
为看起来像默认书法字母的东西,并将其\mathscr
定义为另一种风格的第二种手写体字母,通常是略微倾斜的草书。
您给出的示例中的两个字母都可以作为 OpenType 数学字母的数学脚本范围使用。拉丁现代数学是计算机现代的克隆,应该已经包含在您的 TeX 发行版中。AMS Euler 在 OTF 中可用,如下所示新欧拉。您可以安装字体,也可以将其复制到fonts
本地 texmf 文件夹的子目录中。
实际上,你用来获取欧拉脚本的模板\mathcal
是这样的:
\usepackage{unicode-math}
\defaultfontfeatures{ Scale = MatchUppercase }
\setmathfont{Latin Modern Math} % Or your math font of choice.
\setmathfont[range = {cal, bfcal}]{Neo Euler}
以下是如何使用 重现该精确样本的方法unicode-math
。(实际上不要这样做。)
\documentclass[varwidth, preview]{standalone}
\usepackage{unicode-math}
\defaultfontfeatures{ Scale = MatchUppercase }
\setmathfont{Latin Modern Math}
\setmathfont[range = {scr, bfscr}]{Neo Euler}
\begin{document}
\( \mathscr{A} = \mathscr{A} \neq \mathcal{A} \)
\end{document}
如果你确实需要在同一个文档中使用两种不同的脚本和书法字体,这里有一个不太疯狂的例子:
\documentclass[varwidth, preview]{standalone}
\usepackage{unicode-math}
\defaultfontfeatures{ Scale = MatchUppercase }
\setmainfont[Scale = 1.0, Ligatures = Common]{TeX Gyre Pagella}
\setmathfont{Asana Math}
\setmathfont[range = {cal, bfcal}]{Neo Euler}
\setmathfont[range = {scr, bfscr}, StylisticSet = 1]{STIX Two Math}
\begin{document}
\[ \mathcal{A} = \mathcal{A} \neq \mathscr{A} \]
\end{document}
我从未\mathscr
在真正的论文中使用过,但如果我用过,它的定义在视觉上是不同的\mathcal
,并且不会过度倾斜。 但是,您可以将任何您想要的字体加载为数学字母。
该\setmathfont[range = {cal, bfcal}]
命令可从任何数学字体加载脚本和粗体脚本字母。您还可以使用\setmathfont[range=cal]
或加载任何装饰性 OpenType 或 TrueType 字体\setmathfont[range=scr]
。
向后兼容
如果你需要向后兼容 PDFTeX,我建议你使用以下方式加载数学字母表mathalfa
,其中还包含所有替代方案的良好字体样本,以及isomath
。
\documentclass[varwidth, preview]{standalone}
\usepackage[T1]{fontenc}
\usepackage{textcomp} % Not actually needed here.
\usepackage[utf8]{inputenc} % The default since 2018
\usepackage[ cal = cm,
scr = euler
]{mathalfa}
\begin{document}
\( \mathscr{A} = \mathscr{A} \neq \mathcal{A} \)
\end{document}
然而,使用欧拉文字的最简单方法是\usepackage{eucal}
替换\mathcal
字母表,或者\usepackage{euscript}
将其添加为\mathscr
。