考虑以下最小示例:
\documentclass{article}
\usepackage{unicode-math}
\newcommand{\dotcup}{\ensuremath{\mathaccent\cdot\cup}}
\begin{document}
$a \dotcup b$
\end{document}
如果编译时lualatex
出现以下错误
This is LuaTeX, Version 0.95.0 (TeX Live 2016)
restricted system commands enabled.
(./min.tex
LaTeX2e <2016/03/31> patch level 2
Babel <3.9r> and hyphenation patterns for 1 language(s) loaded.
(/usr/local/texlive/2016/texmf-dist/tex/latex/base/article.cls
Document Class: article 2014/09/29 v1.4h Standard LaTeX document class
...
! Missing number, treated as zero.
<to be read again>
\cdot
l.8 $a \dotcup
b$
...
另一方面,如果我不unicode-math
使用 而是使用 来编译示例,那么我将获得所需的 PDF 文件。这是或pdflatex
中的错误吗?unicode-math
lualatex
编辑:
该命令\dotcup
在文件中作为示例给出symbols-a4.pdf
,它作为将两个符号居中的示例。最后,我对那个特定的符号不感兴趣,而是对两个其他符号的组合感兴趣,我收到了同样的错误。这意味着,它为我提供了一个通用示例,以确定这是一个错误还是预期行为。
答案1
答案2
用法非常奇怪(\mathaccent
以数字而不是字符作为说明符)虽然如果给它一个\mathchardef
标记它就会起作用,因为它将数学代码重新解释为数学重音。
unicode-math
\cdot
将(和大多数符号)的定义更改\let
为Unicode字符而不是\mathchardef
定义的标记,因此它不是一个有效的数字。
然而,即使对于 pdftex 来说,这个定义似乎也不好,因为你可能想要一个\mathbin
操作符来使用\cup
我认为你想要 U+228D (⊍) 所以
\documentclass{article}
\usepackage{unicode-math}
\begin{document}
$a \cupdot b$
\end{document}