如果我使用 TeX Gyre Termes 或 TeX Gyre Pagella,我该如何生成与符号\square
和\Diamond
对应的符号?amsfonts
例如,XeLaTeXing 以下内容给出Undefined control sequence
(\square
并且类似地,\Diamond
如果行\square
被注释掉)。
从http://mirrors.ibiblio.org/CTAN/macros/latex/contrib/unicode-math/unimath-symbols.pdf,我知道 unicode-math 符号\enclosequare
和\enclosediamond
,但前者比 amsfonts 大\square
,而后者只是一个旋转的正方形,而不是更细的 amsfonts \Diamond
;此外,ams 符号具有前导空格,而相应的 unicode-math 符号则没有。(要查看差异,请取消注释行% \RequirePackage{amsfonts}
。)
\documentclass{article}
\RequirePackage{fontspec}
\setmainfont[Ligatures=TeX]{TeX Gyre Termes}
\RequirePackage{unicode-math}
% Need amsmath first to avoid conflict for \dddot, etc.
\RequirePackage{amsmath}
\setmathfont{TeX Gyre Termes Math}
% Won't following overwrite def's of TeX Gyre Math symbols?
% \RequirePackage{amsfonts}
\begin{document}
$x=2$\\
$\enclosesquare$\\
$\enclosediamond$\\
$\square$\\
$\Diamond$
\end{document}
目的: 我希望这些符号严格用于证明结束,类似地,用于示例结束。我添加了一个建议答案,给出了我的解决方案。
答案1
amssymb
提前加载unicode-math
。
\documentclass{article}
\usepackage{amsmath,amssymb}
\usepackage{fontspec}
\usepackage{unicode-math}
\setmainfont{TeX Gyre Termes}
\setmathfont{TeX Gyre Termes Math}
\begin{document}
$x=2 + \square + \Diamond$
\end{document}
或者,使用字体中可用的符号:
\documentclass{article}
\usepackage{amsmath}
\usepackage{fontspec}
\usepackage{unicode-math}
\setmainfont{TeX Gyre Termes}
\setmathfont{TeX Gyre Termes Math}
\newcommand{\square}{□} % U+25A1
\renewcommand{\Diamond}{◊} % U+25CA
\begin{document}
$x=2 + \square + \Diamond$
\end{document}
答案2
您可以直接使用 unicode 字符,即 ♢ 和 □(代码点 U+2662 和 U+25A1),方法是在文档中键入它们,或者定义\newcommand
(用于单独使用符号)或\DeclareMathOperator
(用于将它们用作数学运算符)。例如,请参阅http://www.gust.org.pl/projects/e-foundry/tg-math/gust_e-foundry-math_fonts-presentation.pdf表示此字体中可用的符号。您还可以将原始amssymb
命令与 TeX Gyre Termes Math 一起使用。请注意和\enclosesquare
是\enclosediamond
组合字符,旨在将前一个字符括在正方形或菱形中。
一些例子:
\documentclass{article}
\RequirePackage{fontspec}
\setmainfont[Ligatures=TeX]{TeX Gyre Termes}
\RequirePackage{unicode-math}
\RequirePackage{amsmath}
\RequirePackage{amsfonts}
\setmathfont{TeX Gyre Termes Math}
\newcommand\mydiamondsingle{♢}
\newcommand\mysquaresingle{□}
\DeclareMathOperator{\mydiamond}{♢}
\DeclareMathOperator{\mysquare}{□}
\begin{document}
$x=2$\\
$♢,\mydiamond,\Diamond,\quad x\enclosediamond$\\
$□,\mysquare,\square,\quad y\enclosesquare$\\
\end{document}
结果:
答案3
和分别amsmath
\Diamond
看起来\square
更像\mdlgwhtlozenge
和\mdlgwhtsquare
。但是,TeX Gyre Pagella Math 不包含\mdlgwhtsquare
(截至 1.632 版)。
如果 Unicode 数学字体缺少特定的字形,或者您不喜欢它的外观,则可以使用选项从另一种字体中修补range=
符号\setmathfont
。
\documentclass{article}
\usepackage{amssymb}
\usepackage{unicode-math}
\defaultfontfeatures{Scale=MatchLowercase}
\setmainfont{TeX Gyre Pagella}[Ligatures=Common, Scale=1.0]
\setmathfont{TeX Gyre Pagella Math}
\setmathfont[Scale=MatchUppercase,
range={\mdlgwhtlozenge, \mdlgwhtsquare}
]{STIX Two Math}
\begin{document}
amssymb: \( x \Diamond y \square \)
Pagella with STIX Two: \( x \mdlgwhtlozenge y \mdlgwhtsquare \)
\end{document}
自 2019 年 7 月起,range=
不再与 一起使用version=
。这主要在您使用粗体数学时导致问题。
答案4
这是我提出的解决方案https://tex.stackexchange.com/a/501596/13492但对正方形和菱形的字形进行了一些处理,使得它们在使用 XeLaTeX 时分别显示为校样结束和示例结束,与使用 pdfLaTeX 时的外观非常接近。
\documentclass{article}
\usepackage{amsthm} % load now to avoid openbox clash
\usepackage{iftex}
\ifTUTeX
\usepackage{fontspec}
\usepackage{unicode-math}
\defaultfontfeatures{ Scale=MatchLowercase, Ligatures=TeX }
\setmainfont{TeX Gyre Termes}[Scale=1.0]
\setmathfont{TeX Gyre Termes Math}
\usepackage{graphicx}
\newcommand\myDiamond{♢}
\newcommand\mySquare{\raisebox{0.75pt}{\scalebox{0.93}{$□$}}}
\mathchardef\timessymbol=\numexpr\times-"2000\relax
\else
\RequirePackage[theoremfont]{newtxtext}
\RequirePackage{newtxmath}%
\DeclareMathAlphabet{\mathbfsf}{\encodingdefault}{\sfdefault}{bx}{n}
\newcommand{\mySquare}{\square}
\newcommand{\myDiamond}{\Diamond}
\fi
\renewcommand{\qed}{\quad\hbox{\qedsymbol}}% run-in QED
\renewcommand{\qedsymbol}{$\mySquare$}
\usepackage{thmtools}
%
\declaretheoremstyle[bodyfont=\mdseries\slshape]{thmstyle}
\declaretheorem[style=thmstyle,name=Theorem,numberwithin=section]{theorem}
%
\declaretheoremstyle[bodyfont=\normalfont]{exstyle}
\declaretheorem[
style=exstyle,numberlike=theorem,
preheadhook=\renewcommand{\qedsymbol}{$\myDiamond$}\pushQED{\qed},
postfoothook=\popQED
]
{example}
\begin{document}
\section{Triangles}
\begin{theorem}
The square on the hypotenuse equals the sum of the squares on the other two sides.
\end{theorem}
\begin{proof}
Consider the following diagram\dots .
Thus
\[ a^{2} + b^{2} = c^{2}\qedhere\]
\end{proof}
\begin{example}
As a particular case,
\[
3^{2} + 4^{2} = 5^{2}= c^{2 }\qedhere
\]
\end{example}
\end{document}
pdfLaTeX 的输出:
XeLaTeX 的输出: