我正在尝试创建一个新的命令,形式如下,
\gradeq{T,x,y,z}
它接受提供的四个参数并显示,
\pdv{T}{x}\xhat + \pdv{T}{y}\yhat + \pdv{T}{z}\zhat
我试过以下方法
\newcommand{\gradeq}[4]{\pdv{#1}{#2}\xhat + \pdv{#1}{#3}\yhat + \pdv{#1}{#4}\zhat}
我尝试使用额外的花括号,正如有人在另一个问题中推荐的那样,并且尝试将命令放在 $ ... $ 内。
我得到了一整串错误。完整的测试文档如下:
\documentclass{article}
\usepackage{amsmath}
\usepackage[utf8]{inputenc}
\usepackage[T1]{fontenc}
\usepackage{physics}
\renewcommand{\abstractname}{Summary}
\renewcommand{\contentsname}{Outline}
% Frequently Used Math Symbols
% VECTORS
\newcommand{\xhat}{\hat{x}}
\newcommand{\yhat}{\hat{y}}
\newcommand{\zhat}{\hat{z}}
% VECTOR OPERATORS
\newcommand{\gradeq}[4]{\pdv{#1}{#2}\xhat + \pdv{#1}{#3}\yhat + \pdv{#1}{#4}\zhat}
\begin{document}
$\gradeq{T,x,y,z}$
\end{document}
我收到以下错误,(全部在第 25 行)
! Missing } inserted.
! Too many }'s. \frac #1#2->{\begingroup #1\endgroup \@@over #2}
! Missing $ inserted.
! Missing \endcsname inserted.
! Extra }, or forgotten $.
请注意\xhat命令在其他文档中有效,并且\pdv是物理旨在以分数形式给出偏导数的包。
我对 LaTeX 还很陌生,所以我确信我做了很多错误的事情。
答案1
大家好,欢迎来到特克斯社区。错误在于命令\gradeq
。当你引入许多参数时,你应该使用$\gradeq{T}{x}{y}{z}$
逗号代替$\gradeq(T,x,y,z)$
。之后,最好不要使用physics
包来处理间距和不寻常的宏问题。
\documentclass{article}
\usepackage{amsmath,amssymb}
\usepackage[utf8]{inputenc}
\usepackage[T1]{fontenc}
\usepackage{physics}
\renewcommand{\abstractname}{Summary}
\renewcommand{\contentsname}{Outline}
% Frequently Used Math Symbols
% VECTORS
\newcommand{\xhat}{\hat{x}}
\newcommand{\yhat}{\hat{y}}
\newcommand{\zhat}{\hat{z}}
% VECTOR OPERATORS
\newcommand{\gradeq}[4]{\pdv{#1}{#2}\xhat + \pdv{#1}{#3}\yhat + \pdv{#1}{#4}\zhat}
\begin{document}
$\gradeq{T}{x}{y}{z}$
\end{document}