新的命令定义导致“缺少数字,视为零”错误

新的命令定义导致“缺少数字,视为零”错误

我正在用波斯语写一些东西,我想管理一些单词之间的空格。
我定义了:

\newcommand{\nf}{\char\value{226}\char\value{128}\char\value{140}}

但是在构建文档之后,我在使用 \nf 的每一行都看到了“!缺少数字,视为零”错误...
这是一个简短的示例文件:

    \documentclass[11pt,oneside,a4paper]{report}
\usepackage{xepersian}
\settextfont{Yas}
\newcommand{\nf}{\char\value{226}\char\value{128}\char\value{140}}

\begin{document}
اگر $n$ نقطهٔ رنگی در صفحه از $k$ رنگ مختلف داشته باشیم، می\nf
خواهیم یک شکل هندسی (دایره، مثلث و ...) را طوری در صفحه قرار دهیم که از هر رنگ دست\nf
کم یکی پوشانده شود.
\end{document}

我在 Ubuntu 1604 上使用 TeXMaker 4.4.1;出了什么问题?!

答案1

宏指\value的是计数器的值。我怀疑是否有计数器名称 226,,128140。我假设你指的是数字:

\char226 \char128 \char140

在 LaTeX 中提供了宏\symbol(负责处理数字的正确结尾):

\newcommand*{\nf}{\symbol{226}\symbol{128}\symbol{140}}

但这些数字让人怀疑这是一个以 UTF-8 编码的 Unicode 字符。这是一个不同的故事。

使用 8 位 TeX 引擎可以写成:

\newcommand*{\nf}{^^e2^^80^^8c}

但使用支持 Unicode 的 TeX 引擎(XeTeX、LuaTeX),可以直接指定字符。或者使用 ^ 符号 (各种引擎中的 ^^ 符号):

\newcommand*{\nf}{^^^^200c}

符号为:U+200C ZERO WIDTH NON-JOINER

相关内容