形式为 $a_nx^n+\ldots+a_1x+a_0$ 的多项式的快捷方式

形式为 $a_nx^n+\ldots+a_1x+a_0$ 的多项式的快捷方式

我目前正在学习代数课程,我发现自己正在输入多项式

$a_nx^n+\ldots+a_1x+a_0$ 

一遍又一遍,我想知道我是否可以为这种多项式形式创建一个快捷方式,这样我就可以控制我想要的系数和变量。

我知道多项式包存在,但我似乎无法将“ldots”纳入它提供的命令中。

答案1

我认为您需要一个接受两个参数的宏:系数的“名称”和幂项底数的“名称”。名称一般都是单个字母,对吗?(您在评论中指出,多项式的最高阶和最低阶始终分别为n0。)\pn以下示例中调用的宏满足这些条件。

顺便说一句,二元运算符(例如+)之间使用的印刷省略号通常为\cdots,而不是\ldots。(字母“c”和“l”分别表示居中(在数学线上)或低的(在印刷基线上)。

在此处输入图片描述

\documentclass{article}
%% The following macro must be used only in math mode:
\newcommand\pn[2]{#1_n #2^n + \cdots + #1_1 #2 + #1_0}

\begin{document}
$\pn{a}{x}$

$\pn{\lambda}{z}$

$\pn{\alpha}{\xi}$
\end{document}

附录解决OP的后续请求:假设并非所有多项式都是阶数n,但事实上大多数多项式都是阶数n。在这种情况下,修改\pn宏使其采用3个而不是2个参数是有意义的,并且附加参数n默认采用该值。

在此处输入图片描述

\documentclass{article}
%% The following macro must be used only in math mode:
\newcommand\pn[3][n]{#2_{#1} #3^{#1} + \cdots + #2_1 #3 + #2_0}

\begin{document}
$\pn{a}{x}$ % use default order (n) of polynomial

$\pn[4]{\lambda}{z}$

$\pn[q]{\alpha}{\xi}$
\end{document}

答案2

语法相当简单:

\documentclass{article}
\usepackage{amsmath}
\usepackage{xparse}

\ExplSyntaxOn
\NewDocumentCommand{\poly}{O{}}
 {
  \group_begin:
  \keys_set:nn { poly } { #1 }
  \kam_poly:
  \group_end:
 }

\keys_define:nn { poly }
 {
  degree  .tl_set:N   = \l__poly_degree_tl,
  var     .tl_set:N   = \l__poly_var_tl,
  coef    .tl_set:N   = \l__poly_coef_tl,
  reverse .bool_set:N = \l__poly_reverse_bool,
  degree  .initial:n  = n,
  var     .initial:n  = x,
  coef    .initial:n  = a,
  reverse .default:n  = true,
 }

\cs_new_protected:Nn \kam_poly:
 {
  \bool_if:NTF \l__poly_reverse_bool
   {
    \l__poly_coef_tl \sb { 0 } +
    \l__poly_coef_tl \sb { 1 } \l__poly_var_tl +
    \dots +
    \l__poly_coef_tl \sb { \l__poly_degree_tl }
    \l__poly_var_tl \sp { \l__poly_degree_tl }
   }
   {
    \l__poly_coef_tl \sb { \l__poly_degree_tl }
    \l__poly_var_tl \sp { \l__poly_degree_tl } +
    \dots +
    \l__poly_coef_tl \sb { 1 } \l__poly_var_tl +
    \l__poly_coef_tl \sb { 0 }
   }
 }
\ExplSyntaxOff

\begin{document}

$\poly$

$\poly[var=z]$

$\poly[var=t,degree=m,coef=b]$

$\poly[var=t,degree=m,coef=b,reverse]$

\end{document}

可以按任意顺序指定键,这样你就无需记住哪个参数先出现;默认值为

var = x
degree = n
coef = a

你也可以使用以下方式进行简写:

\newcommand{\polybtn}{\poly[var=t,coef=b,degree=n]}

在此处输入图片描述

答案3

我建议\poly{ax^n}

\newcommand\poly[1]{\dopoly#1^n^\relax}
\def\dopoly#1#2^#3^#4\relax{#1_{#3}#2^{#3} + \dots + #1_{1}#2 + #1_{0}}

您可以使用\poly{ax}\poly{ax^n}

相关内容