unicode-math 包中的 √ 符号

unicode-math 包中的 √ 符号

我正在将 unicode-math 包与 xelatex 结合使用。借助此包,我可以在 tex 代码中写入 unicode 符号。但是,有些 unicode 符号的编译方式与我预期的不一样。例如,我希望如果键入,$√{2+3}$这将以与相同的方式进行编译$\sqrt{2+3}$。但我得到了以下输出:

在此处输入图片描述

这里发生了什么事?我该如何解决这个问题?

编辑:我现在明白我可以使用以下方法修复此问题:

\usepackage{unicode-math,newunicodechar}
\newunicodechar{√}{\sqrt}

现在我想知道如何定义类似的东西:

\unicodedef█#1{\begin{equation}#1\end{equation}}

答案1

作为主动角色:

\documentclass{scrartcl}
\usepackage{unicode-math}
\setmathfont{XITS Math}

\begin{document}
$√2+3$ 

\catcode`\√=13 \let√\sqrt
$√{2+3}$
\end{document}

在此处输入图片描述

答案2

正如您已经发现的那样,默认情况下,它只是打印为一个普通符号,而不是数学对象。因此您必须定义它

\documentclass{article}
\usepackage{unicode-math}

\usepackage{newunicodechar}
\newunicodechar{√}{\sqrt}

现在您想将参数放在equation环境之间。为此,您需要定义一个辅助宏来为您执行此操作:

\newcommand\myeq[1]{\begin{equation}#1\end{equation}}
\newunicodechar{█}{\myeq}

但还有更多选择。您也可以\active手动创建角色并将其用作命令名称

\catcode`▒=\active
\newcommand▒[1]{\begin{equation}#1\end{equation}}

或者你可以用另一个字符标记等式的结尾

\catcode`▙=\active
\long\def▙#1▜{\begin{equation}#1\end{equation}}

要做到这一点newunicodechar你需要定义

\newunicodechar{▛}{\begin{equation}}
\newunicodechar{▟}{\end{equation}}

这可能存在问题,即当\begin{equation}展开时,它只能看到\end{equation}虽然在我的示例中它似乎有效:

\begin{document}

█{√{a^2 + b^2} = c}

▒{a + b ≥ c}

▙e^{iπ} + 1 = 0▜

▛f(z) = \frac{1}{2πi}∫_{∂B_ε(z)}{\frac{f(ζ)}{ζ-z}\;\mathrm{d}ζ}▟

\end{document}

相关内容