矢量投影符号的代码?

矢量投影符号的代码?

我使用什么 LaTex 代码来获得此等式左边的符号,即向量 a 在向量 v 上的投影?

http://rypress.com/tutorials/mathml/media/vectors-and-functions/summary.png

答案1

这是一个选项:

在此处输入图片描述

\documentclass{article}

% http://tex.stackexchange.com/q/169557/5764
\usepackage{mathtools}
\DeclarePairedDelimiter{\norm}{\lVert}{\rVert}
\newcommand{\vectorproj}[2][]{\textit{proj}_{\vect{#1}}\vect{#2}}
\newcommand{\vect}{\mathbf}

\begin{document}

\[
  \vectorproj[v]{a} = \frac{\vect{a} \cdot \vect{v}}{\norm{\vect{v}}^2} \vect{v}
\]

\end{document}

\vectorproj[<onvector>]{<ofvector>}可以配备可选的<onvector>

答案2

假设您可能希望将投影排版为运算符(不是斜体),您可以使用包\DeclareMathOperator{}{}中的声明一个新运算符amsmath。受 Werners 回答的启发,我为投影命令添加了一个宏。

在此处输入图片描述

\documentclass{article}
\usepackage{amsmath}

\DeclareMathOperator{\proj}{proj}
\newcommand{\vct}{\mathbf}
\newcommand{\vctproj}[2][]{\proj_{\vct{#1}}\vct{#2}}

\begin{document}
\[
\vctproj[v]{a} = \frac{\vct{a}\cdot\vct{v}}{\lVert\vct{v}\rVert^2}\vct{v}
\]
\end{document}

答案3

如果想要分别将\proj_{#1}{#2}\rej_{#1}{#2}作为矢量投影和拒绝的宏,这里有另一个可能的解决方案。我还为这两个宏添加了带星号的变体。

\proj_{#1}{#2}, \proj*{#1}{#2}, \rej{#1}{#2}, \rej*_{#1}{#2}

\documentclass{article}

\usepackage{mathtools}
\usepackage{scalerel} % For \stretchrel
\ifdefined\NewDocumentCommand\else\usepackage{xparse}\fi

\renewcommand{\vec}{\mathbf}
\DeclareMathOperator{\vectorprojection}{proj}
\NewDocumentCommand{\proj}{s e{_} m}{%
    \IfBooleanTF{#1}{#3_{\stretchrel*{\parallel}{\perp}#2}}{\vectorprojection_{#2}#3}
}
\DeclareMathOperator{\vectorrejection}{oproj}
\NewDocumentCommand{\rej}{s e{_} m}{%
    \IfBooleanTF{#1}{#3_{\perp #2}}{\vectorrejection_{#2}#3}
}

\begin{document}
\begin{center}
\begin{tabular}{lr}
    \verb|\proj_{\vec{b}}{\vec{a}}|: & \(\proj_{\vec{b}}{\vec{a}}\) \\
    \verb|\proj*_{\vec{b}}{\vec{a}}|: & \(\proj*_{\vec{b}}{\vec{a}}\) \\
    \verb|\rej_{\vec{b}}{\vec{a}}|: & \(\rej_{\vec{b}}{\vec{a}}\) \\
    \verb|\rej*_{\vec{b}}{\vec{a}}|: & \(\rej*_{\vec{b}}{\vec{a}}\)
\end{tabular}
\end{center}
\end{document}

相关内容