polynom
必须告知样式(texlive 2012 中的版本“2006/04/20 0.17 (CH,HA)”)哪些标记代表变量。手动的有这样一个例子:
\polyset{vars=XYZ\xi, % make X, Y, Z, and \xi into variables
delims={[}{]}}% nongrowing brackets
当我尝试在最小文档中排版时
\documentclass{article}
\usepackage{polynom,amsmath,amssymb}
\begin{document}
\polyset{vars=XYZ\xi,delims={[}{]}}
\polylongdiv{\xi^2-1}{\xi-1}
\end{document}
我收到以下错误消息:
! Missing \endcsname inserted.
<to be read again>
\xi
l.4 \polyset{vars=XYZ\xi,delims={[}{]}}
因此,将希腊字母视为变量标记似乎存在问题。有人能提出一种解决这个问题的方法吗,即在多项式长除法中实际排版 ξ 或类似的希腊字母作为变量?
答案1
手册对此似乎是错误的:你必须使用简单的字母来表示多项式;但你可以使用一种巧妙的办法:
\documentclass{article}
\usepackage{polynom,amsmath,amssymb}
\begin{document}
\begingroup\mathcode`A=\xi
\polyset{vars=A}
\polylongdiv{A^2-1}{A-1}
\endgroup
\end{document}
只需选择一个未使用的字母作为你的希腊字母,瞧瞧。
需要做一点解释。当 TeX 处于数学模式时,它将字母(更准确地说,是类别 11 或 12 的字符标记)视为数学字符,这些字符具有数学码附在它们上面。控制序列能表示数学代码,这是希腊字母的情况:定义在fontmath.ltx
\DeclareMathSymbol{\xi}{\mathord}{letters}{"18}
最终归结为原始语句
\mathchardef\xi="0118
其中第一位数字0
表示 TeX\xi
是一个普通符号;第二位数字是“数学组”(1 对应于letters
);第三和第四位数字表示字体中应从哪个位置取出符号。
和
\mathcode`A=<number>
我们分配A
一个具有相同规格的数学代码;实际上我们不需要知道与 关联的数学代码是什么\xi
,因为当 TeX 语法需要数字时,用 定义的任何控制序列\mathchardef
都可以用作数字。因此
\mathcode`A=\xi
我们说的是,A
从此刻起,数学公式中的任何一个都将表现得像\xi
。当然,这尊重分组,所以所有这些都发生在一个组中;我用 和 来分隔它\begingroup
,\endgroup
和{
也}
很好,但在某些情况下,前者分隔符比后者造成的问题更少。