我曾经这个问题前段时间,问如何设置字母杰始终非斜体杰在数学模式下无需使用\mathrm
。
提供的解决方案是:
\DeclareMathSymbol{j}{\mathalpha}{operators}{`j}
然而,由于我改成了路拉泰克斯和unicode 数学上面那行
没有效果:
\documentclass{article}
\usepackage{amsmath}
\usepackage{fontspec}
\usepackage{unicode-math}
\DeclareMathSymbol{j}{\mathalpha}{operators}{`j}
\begin{document}
\begin{equation}
j ~~\text{is not}~~ \mathrm{j}
\end{equation}
\end{document}
或者如果我将 MinionPro 和 MnSymbol 定义为我的数学字体,杰
完全消失:
\documentclass{article}
\usepackage{amsmath}
\usepackage{fontspec}
\usepackage{unicode-math}
\setmainfont{Minion Pro}
\setmathfont{MnSymbol}
\setmathfont[range=\mathup/{num,latin,Latin,greek,Greek}]{Minion Pro}
\setmathfont[range=\mathbfup/{num,latin,Latin,greek,Greek}]{MinionPro-Bold}
\setmathfont[range=\mathit/{num,latin,Latin,greek,Greek}]{MinionPro-It}
\setmathfont[range=\mathbfit/{num,latin,Latin,greek,Greek}]{MinionPro-BoldIt}
\setmathfont[range=\mathscr,StylisticSet={1}]{XITS Math}
\setmathrm{Minion Pro}
\DeclareMathSymbol{j}{\mathalpha}{operators}{`j}
\begin{document}
\begin{equation}
j ~~\text{is not}~~ \mathrm{j}
\end{equation}
But actually $j$ is not there at all.
\end{document}
我试图声明 unicode 字符杰分开,但没有成功。
\setmathfont[range={"006A} ]{Minion Pro}
这使得杰但它仍然是斜体。
如果使用 unicode-math,对旧问题有没有什么新的解决方案?
我希望提出新问题是适当的做法。我不想修改旧问题,因为这会使答案无效。
编辑:
虽然不知道这很重要,但我还需要包括符号包,连同egreg 的解决方案得出以下结果:
\documentclass{article}
\usepackage{amsmath}
\usepackage{amssymb}
\usepackage{fontspec}
\usepackage{unicode-math}
\usepackage{etoolbox}
\setmainfont{Minion Pro}
\setmathfont{MnSymbol}
\setmathfont[range=\mathup/{num,latin,Latin,greek,Greek}]{Minion Pro}
\setmathfont[range=\mathbfup/{num,latin,Latin,greek,Greek}]{MinionPro-Bold}
\setmathfont[range=\mathit/{num,latin,Latin,greek,Greek}]{MinionPro-It}
\setmathfont[range=\mathbfit/{num,latin,Latin,greek,Greek}]{MinionPro-BoldIt}
\setmathfont[range=\mathscr,StylisticSet={1}]{XITS Math}
\setmathrm{Minion Pro}
\AfterEndPreamble{ %
\Umathcode`j="0"4"6A
}
\begin{document}
\begin{equation}
j ~~\text{is not}~~ \mathrm{j}
\end{equation}
But actually $j$ is not there at all.
\end{document}
答案1
\documentclass{article}
\usepackage{amsmath}
\usepackage{fontspec}
\usepackage{unicode-math}
\AtBeginDocument{\Umathcode`j="0"0"6A }
\begin{document}
\begin{equation}
j ~~\text{is}~~ \mathrm{j}
\end{equation}
\end{document}
我没有 MinionPro。但是这是使用 Arial 的扩展版本(你想要 6)
\documentclass{article}
\usepackage{amsmath}
\usepackage{amssymb}
\usepackage{fontspec}
\usepackage{unicode-math}
\usepackage{etoolbox}
\setmainfont{Arial}
\setmathfont{MnSymbol}
\setmathfont[range=\mathup/{num,latin,Latin,greek,Greek}]{Arial}
\setmathfont[range=\mathbfup/{num,latin,Latin,greek,Greek}]{Arial}
\setmathfont[range=\mathit/{num,latin,Latin,greek,Greek}]{Arial}
\setmathfont[range=\mathbfit/{num,latin,Latin,greek,Greek}]{Arial}
\setmathfont[range=\mathscr,StylisticSet={1}]{XITS Math}
\setmathrm{Arial}
\AfterEndPreamble{ %
\Umathcode`j="0"6"6A
}
\begin{document}
\showoutput
\begin{equation}
j ~~\text{is}~~ \mathrm{j}
\end{equation}
But actually $j$ is not there at all.
\end{document}
答案2
使用适当的家庭号码j
:
\documentclass{article}
\usepackage{amsmath}
\usepackage{fontspec}
\usepackage{unicode-math}
\setmainfont{Minion Pro}
\setmathfont{MnSymbol}
\setmathfont[range=\mathup/{num,latin,Latin,greek,Greek}]{Minion Pro} % this is number 4
\setmathfont[range=\mathbfup/{num,latin,Latin,greek,Greek}]{MinionPro-Bold}
\setmathfont[range=\mathit/{num,latin,Latin,greek,Greek}]{MinionPro-It}
\setmathfont[range=\mathbfit/{num,latin,Latin,greek,Greek}]{MinionPro-BoldIt}
\setmathfont[range=\mathscr,StylisticSet={1}]{XITS Math}
\AtBeginDocument{\Umathcode`j="0"4"6A }
\begin{document}
\begin{equation}
j \text{ is } \mathrm{j}\ne\mathbf{j}\ne\mathit{j}
\end{equation}
\end{document}