\span 作为数学运算符

\span 作为数学运算符

我想\span成为一名数学操作员(跨度一组向量),但显然它已经是一个 TeX 命令了。你们建议我做什么呢?(我真的不想要一个奇怪的大写字母\Span,或者其他奇怪的变体……但我猜重新定义不是一个好主意\span?)

答案1

是的,这是个坏主意:\span是一个在 中使用的原始命令\multicolumn

实际上\span在 LaTeX 内核中只出现一次,因此可以说

\makeatletter
\let\@@span\span
\def\sp@n{\@@span\omit\advance\@multicnt\m@ne}
\makeatother

\renewcommand{\span}{...}

但其他包可能依赖于 的原始含义\span。如果你喜欢冒险……

确实有一个重要的包依赖\span数学,它在其最重要的例程之一中使用该原语。当 LaTeX3 发布时,所有原语命令都将获得新名称,并且 LaTeX3 包将不再使用\span;在此之前,请选择其他名称,例如\Span\vspan

答案2

由于\span已经是一个成熟的宏,因此在新的命令中重新使用该词不是一个好主意。\spn\Span作为 的替代品真的那么糟糕吗\span? 以下 MWE 使用了amsmath包及其DeclareMathOperator命令,说明了 宏的用法\spn

\documentclass{article}
\usepackage{amsmath,amsfonts}
\DeclareMathOperator{\spn}{span}
\renewcommand{\vec}[1]{\mathbf{#1}}
\begin{document}
Let $\vec{e}_i = (0,\dots,0,1,0,\dots,0)'$ be an $n\times 1$ column 
vector with $1$ in the $i$-th position and $0$ in all others. Then 
$\spn\{\vec{e}_1,\vec{e}_2,\dots,\vec{e}_n\} = \mathbb{R}^n$.
\end{document}

在此处输入图片描述

答案3

考虑使用spannspanset,我更喜欢后者使用一个简短的宏。

\documentclass{article}
\usepackage{amsmath,amsfonts}
\DeclareMathOperator{\spann}{span}
\newcommand\spanset[1]{\ensuremath\spann(#1)}
\begin{document}
\[
\spann(S) = \spann(v_1,\dots,v_r) = \{ {\lambda _1 v_1  +  \dots  + \lambda _r v_r \mid \lambda _1 , \dots ,\lambda _r  \in \mathbf{K}} \}
\]

\[
\spanset{S}=\spanset{v_1,\dots,v_r}= \{ {\lambda _1 v_1  +  \dots  + \lambda _r v_r \mid \lambda _1 , \dots ,\lambda _r  \in \mathbf{K}} \}
\]
\end{document}

答案4

\operatorname{span}

效果很好。

相关内容