使用 cool 包的导数进行基本使用时失败,并显示“缺少 \endcsname 插入”

使用 cool 包的导数进行基本使用时失败,并显示“缺少 \endcsname 插入”

在探索排版衍生品的选项时,我遇到了包裹cool。但第 22 页的一个基本示例内容导向 LaTeX 文档(2006 年 10 月 7 日)似乎会导致错误:

 Missing \endcsname inserted.
  <to be read again> 
                \toks@ 

取消注释下面 MWE 中的行会产生上述错误。照原样,MWE 会产生:

在此处输入图片描述

参考:

  • 我可以有一个灵活的偏导数宏吗? 我更愿意使用这里提到的解决方案之一,因为它们不需要另一个包,但这里提出的语法与包不同cool。这很成问题,因为如果我以后需要包提供的灵活性,cool切换起来就不那么容易了。

代码

\documentclass{article}
\usepackage{amsmath}
\usepackage{cool}
\begin{document}
\begin{align*}
    \D[1]{f}{x,y,z} &= \cdots\\
    %\D[2,n,3]{f}{x,y,z} &= x
\end{align*}
\end{document}

答案1

这是 v1.35 软件包(2006/12/29)中的一个错误cool。第 2056 行至第 2063 行内容如下

\whiledo{ \boolean{COOL@isint} \AND
\NOT \value{COOL@multideriv}>\value{COOL@ct}  }%
{%
\def\COOL@tempd%
{\csname COOL@deriv@powers@\roman{COOL@multideriv}\endcsname}%
\isint{\COOL@tempd}{COOL@isint}%
\stepcounter{COOL@multideriv}%
}

(第 2059行\def) 必须是\edef。更改它之后(当然是在本地副本中),MWE 运行起来没有错误。

顺便说一句:“d”的样式可以通过以下方式改变:

\Style{DSymb={\mathrm d}}

答案2

我使用以下宏来设置多个偏导数:

\newcommand*\mdiff[3]{\frac{\partial^{#2}{#1}}{\pABLN{#3}}}
\newcounter{pABLCounter}
\def\pABLN#1{\setcounter{pABLCounter}{1}\xpABLN#1;pABLEnde;}
\def\pABLEnde{pABLEnde}
\def\xpABLN#1;{\def\temp{#1}%
  \ifx\temp\pABLEnde
  \else 
    \stepcounter{pABLCounter}
    \ifodd \value{pABLCounter} 
      \if1#1\,\else {{}^{#1}\,}\fi%
      \else{\partial{#1}}% 
    \fi %
    \expandafter\xpABLN
  \fi  
}

根据您的情况进行设置:

\mdiff{f}{3}{x;1;y;1;z;1}

其他可能性包括:

\mdiff{f}{5}{x;1;z;4}

给予\frac{\partial^5f}{\partial x\partial z^4}

如果您确实想要,d而不仅仅是\partial在代码中替换它。

相关内容