我使用 Euler Math 字体 ( classicthesis
)。但\otimes
命令生成的内容看起来像 CM。我是否可以加载其他包来获得更合适的内容?
答案1
您可以使用图片模式来修复它:
\documentclass{article}
\usepackage{eulervm,pict2e}
\DeclareRobustCommand{\eulerosym}[1]{%
\mathbin{\mathpalette\eulerosymaux{#1}}%
}
\makeatletter
\newcommand{\eulerosymaux}[2]{%
\vcenter{\hbox{%
\sbox\z@{$\m@th#1#2$}%
\dimen@=\ht\z@
\advance\dimen@ \dp\z@
\unitlength=.5\dimen@
\kern.085\dimen@
\begin{picture}(2,2)
\linethickness{.4pt}
\put(1,1){\makebox(0,0){$\m@th#1#2$}}
\put(1,1){\circle{2}}
\end{picture}%
\kern.085\dimen@
}}%
}
\makeatother
\begin{document}
$\frac{1}{1}\otimes\oplus\times+$ \fboxsep=0pt \fbox{$\otimes$} \fbox{$\eulerosym{\times}$}
$a\otimes b$ $a\oplus b$
$a\eulerosym{\times}b$ $a\eulerosym{+}b$
$\eulerosym{\times}_{\eulerosym{\times}_{\eulerosym{\times}}}$
$\eulerosym{+}_{\eulerosym{+}_{\eulerosym{+}}}$
$a\times b \eulerosym{\times} c$
$a+b\eulerosym{+} c$
\end{document}
然后就是重新定义\otimes
并\oplus
使用新宏的问题。请注意,第二级下标中的带圆圈的加号看起来是错误的;我认为它无法解决,因为该大小的加号不受正方形的限制。
答案2
您喜欢该字体的 \times - 符号吗?(基于:如何给操作符加上圆圈?)
\documentclass{article}
\usepackage{eulervm}
\makeatletter
\newcommand\incircbin
{%
\mathpalette\@incircbin
}
\newcommand\@incircbin[2]
{%
\mathbin%
{%
\ooalign{\hidewidth$#1#2$\hidewidth\crcr$#1\bigcirc$}%
}%
}
\newcommand{\fauxtimes}{\incircbin{\times}}
\makeatother
\begin{document}
$$a\otimes b$$
$$a\fauxtimes b$$
\end{document}
编辑:重新缩放(需要 graphicx 包)
\newcommand{\fauxtimes}{\raisebox{0.1345ex}{\scalebox{0.7421}{$\incircbin{\times}$}}}
答案3
classicthesis
带有该选项的软件包将euler
文本字体设置为 Palatino,将数学字体设置为 AMS Euler。AMS Euler 不附带符号\otimes
或\oplus
(AMS 字体指南第 32 页),所以用 中eulervm
的代替cmex10
。
有几种数学字体设计为与 Palatino 相匹配,并且包含这些符号。这些包括系列、和mathpple
,mathpazo
尽管今天您可能会使用基于 Young Ryu 设计的较新的软件包。我将举两个简单的例子。pxfonts
newpx
在现代工具链中
Palatino、AMS Euler 和newpx
均有 OpenType 格式的免费克隆,可通过 来使用unicode-math
。我在这里没有定义匹配的无衬线或等宽字体,但 Optima(或其克隆 URW Classico)和 Inconsolata 是匹配良好的字体。
\documentclass[varwidth, preview]{standalone}
\usepackage[math-style=upright]{unicode-math}
\defaultfontfeatures{Scale=MatchLowercase}
\setmainfont{TeX Gyre Pagella}[
Scale = 1.0,
Ligatures = {Common, Discretionary, TeX},
Numbers = OldStyle ]
\setmathfont{Asana Math}
\setmathfont[range = { up/{Latin,latin,Greek,greek},
bfup/{Latin,latin,Greek,greek},
cal, bfcal, frak, bffrak },
script-features = {},
sscript-features = {}
]{Neo Euler}
\begin{document}
\( a \otimes_{\otimes_\otimes} b, \alpha \oplus_{\oplus_\oplus} \gamma \)
\end{document}
pxfonts
该示例将文本字体设置为 Palatino 克隆,仅对数学模式下的字母使用 Neo Euler,对其他所有内容(包括数字和运算符)使用 Asana Math(基于)。
如果您希望文档中欧拉值更多或更少,请编辑 range =
中的语句\setmathfont
。例如,如果您将\otimes
和添加\oplus
到 中range=
,您将得到以下结果:
\setmathfont[range = { up/{Latin,latin,Greek,greek},
bfup/{Latin,latin,Greek,greek},
cal, bfcal, frak, bffrak,
\otimes, \oplus },
script-features = {},
sscript-features = {}
]{Neo Euler}
由于 Neo Euler 是一种不完整的字体,不再维护,而且它的一些符号非常独特,因此最好使用该range=
选项加载 Neo Euler。在加载之前加载一个后备数学字体,就像我在这里加载 Asana Math 一样。Libertinus Math(也是由 Khaled Hosny 设计的)也是另一个不错的选择。这样,如果您的文档使用 Neo Euler 缺少的任何符号,您的后备字体将提供它们。
在 PDFLaTeX 中
该eulerpx
包将 中的数学符号和数字newpxmath
与 中的数学字母结合在一起euler
。它是最新的,截至 2018 年仍在维护,可能是获得所需结果的最简单方法。
\documentclass[varwidth, preview]{standalone}
\usepackage[T1]{fontenc}
\usepackage{textcomp}
\usepackage[utf8]{inputenc} % The default since 2018
\usepackage{newtxtext}
\usepackage[utf8]{eulerpx}
% Other font packages that might be useful to load: classico (for sans-serif),
% inconsolata (typewriter), mathalfa and isomath (additional math alphabets).
\begin{document}
\( a \otimes_{\otimes_\otimes} b, \alpha \oplus_{\oplus_\oplus} \gamma \)
\end{document}
传统 NFSS 中的 Kitbashing
如果您尝试使用 PDFLaTeX 中的旧包,或者(据我所知)classicthesis
文档类本身,您可能被迫重新定义单个宏。
如有必要,您可以尝试从pxfonts
或加载单个符号newpxmath
。此示例加载eulervm
,newpxmath
然后重新定义\oplus
和\otimes
使用 中的字体newpxmath
。(它没有最有效地利用数学字母表。)
\documentclass[varwidth, preview]{standalone}
\usepackage[T1]{fontenc}
\usepackage[utf8]{inputenc} % The default since 2018
\usepackage{newtxtext, newtxmath}
% Other font packages that might be useful to load: classico (for sans-serif),
% inconsolata (typewriter), mathalfa and isomath (additional math alphabets).
\usepackage{eulervm}
%% From newpxmath.sty:
% \DeclareFontEncoding{LMS}{}{}
% \DeclareFontSubstitution{LMS}{npxsy}{m}{n}
\DeclareSymbolFont{newpxsym}{LMS}{npxsy}{m}{n}
\SetSymbolFont{newpxsym}{bold}{LMS}{npxsy}{b}{n}
\DeclareMathSymbol{\oplus}{\mathbin}{newpxsym}{8}
\let\circledplus\oplus
\DeclareMathSymbol{\otimes}{\mathbin}{newpxsym}{10}
\let\circledtimes\otimes
\begin{document}
\( a \otimes_{\otimes_\otimes} b, \alpha \oplus_{\oplus_\oplus} \gamma \)
\end{document}