如何在 cdot 之前和之后添加间距?

如何在 cdot 之前和之后添加间距?

我有以下代码:

\documentclass[11pt]{article}
\usepackage{amssymb,amsthm,amsmath}
\newcommand{\norm}[1]{\lVert #1 \rVert_2}

\begin{document}
\begin{displaymath}
\norm{\cdot}=...
\end{displaymath}
\end{document}

我想在标准中的点之前和之后添加一点空格,因为它现在在垂直线之间有点挤在一起。是否有输出相同的命令可以自动执行此操作,还是我应该每次\cdot手动插入空格(例如使用)?~

答案1

我甚至会比 Mico 走得更远,为什么不将空的参数标记嵌入到宏本身中呢?

\documentclass[a4paper]{memoir}
\usepackage{mathtools,etoolbox,amssymb}
\newcommand\emptyarg{{}\cdot{}}
\DeclarePairedDelimiterX\norm[1]\lVert\rVert{
  \ifblank{#1}{\emptyarg}{#1}
}
\begin{document}
\[
\norm{}: A \to B \qquad \norm{X}
\]
\end{document}

顺便说一句:CTAN 的最新mathtools版本现在包含一个构建L^2规范的工具,这样人们就不必一直_2手动添加。

答案2

您可以定义一个名为“ \widecdot”的新宏,其两边\cdot用细空格 ( ) 包围。注意:我不会直接重新定义,因为这个宏也往往被其他宏内部使用。\,\cdot

顺便说一句,你的定义\norm有点不太理想,因为下标(例如2你示例中的)设置得不够低。最好使用\DeclarePairedDelimiter数学工具包;比较下面第二个等式中\norm和宏的输出。\Norm

在此处输入图片描述

\documentclass[11pt]{article}
\usepackage{amssymb,mathtools}
\newcommand{\norm}[1]{\lVert #1 \rVert_2}
\DeclarePairedDelimiter{\Norm}{\lVert}{\rVert}
\newcommand\widecdot{\,\cdot\,}
\begin{document}
\[ \norm{\cdot} \text{ vs.\ } \norm{\widecdot}\]

\[ \norm{\widecdot}\text{ vs.\ } \Norm{\widecdot}_2 \]
\end{document}

相关内容