制作更粗的 \cdot 用于点积(比 \bullet 更细)

制作更粗的 \cdot 用于点积(比 \bullet 更细)

我正在尝试复制教授在笔记中用于向量点积的点,但我很难做到这一点。它看起来像这样:

在此处输入图片描述

我尝试了几种方法。\cdot太薄了

安省

而且\bullet太厚

在此处输入图片描述

而使用\Large\cdot会产生错误。此外,在仔细研究符号列表后,我无法在\cdot和之间找到一个良好的平衡点\bullet

我怎样才能获得最接近第一张图片的点?

答案1

也许你可以找到一个更好的名字,\dotp或类似的东西。

\documentclass{scrartcl}
\usepackage{graphicx}

\makeatletter
\newcommand*\bigcdot{\mathpalette\bigcdot@{.5}}
\newcommand*\bigcdot@[2]{\mathbin{\vcenter{\hbox{\scalebox{#2}{$\m@th#1\bullet$}}}}}
\makeatother

\begin{document}
$a \bigcdot b$
\end{document}

在此处输入图片描述

答案2

这是一个需要包的简单技巧amsmath

\documentclass{article}
\usepackage{amsmath}

\begin{document}

\begin{equation*}
a \boldsymbol{\cdot} b = 0
\end{equation*}

\end{document}

结果是

在此处输入图片描述

答案3

下面的例子扩展了 Manuel 的回答有两种方式:

  • \cdot垂直位置固定为使符号垂直居中于数学轴周围\bullet
  • 符号的宽度不是 的缩小版宽度\bullet (带有缩小的侧边距),而是 的稍大宽度\cdot

比例和宽度因子可以通过宏\bigcdot@scalefactor和来配置\bigcdot@widthfactor

\documentclass{scrartcl}
\usepackage{color}
\usepackage{graphicx}

\makeatletter
\newcommand*{\bigcdot}{}% Check if undefined
\DeclareRobustCommand*{\bigcdot}{%
  \mathbin{\mathpalette\bigcdot@{}}%
}
\newcommand*{\bigcdot@scalefactor}{.5}
\newcommand*{\bigcdot@widthfactor}{1.15}
\newcommand*{\bigcdot@}[2]{%
  % #1: math style
  % #2: unused
  \sbox0{$#1\vcenter{}$}% math axis
  \sbox2{$#1\cdot\m@th$}%
  \hbox to \bigcdot@widthfactor\wd2{%
    \hfil
    \raise\ht0\hbox{%
      \scalebox{\bigcdot@scalefactor}{%
        \lower\ht0\hbox{$#1\bullet\m@th$}%
      }%
    }%
    \hfil
  }%
}
\makeatother

\begin{document}
\[ a \bigcdot b \]
%
% Comparison with \cdot and \bullet
\[ a \cdot b \bigcdot c \bullet d \]
%
% Different math styles
\[ a \bigcdot b \quad
   \scriptstyle a \bigcdot b \quad
   \scriptscriptstyle a \bigcdot b
\]
%
% Visualization of the math axis
\[
  \sbox0{${-}{\cdot}{\bigcdot}{\bullet}{-}$}
  \rlap{\copy0}%
  \vcenter{%
    \hbox{%
      \textcolor{red}{%
        \vrule width\wd0 height .05pt depth .05pt\relax
      }%
    }%
  }
\]
\end{document}

结果

答案4

我没有提供答案,而是展示了已接受的解决方案的警告,希望得到更为强大的解决方案。

我使用了 Heiko Oberdiek 的解决方案,它基于 Manuel 的解决方案。它一直与 pdflatex 编译器配合得很好,谢谢。但前一段时间我不得不使用常规的 latex 编译器,然后点积照常出现\bullet在 dvi 文件中:

在此处输入图片描述

2020-06-08 更新对于那些感兴趣的人,有几种适用于 dvi 的解决方案:

\documentclass{article}

\usepackage{lmodern}
\usepackage[T1]{fontenc}

\usepackage{scalefnt}
\usepackage{relsize}

\usepackage{mathtools}

\newcommand{\dotp}{
    \mathop{
        \mathchoice{\vcenter{\hbox{\LARGE$\cdot$}}}
                   {\vcenter{\hbox{\LARGE$\cdot$}}}
                   {\vcenter{\hbox{\normalsize$\cdot$}}}
                   {\vcenter{\hbox{\small$\cdot$}}}
    }
}

\begin{document}
\noindent
d\raisebox{-0.5ex}{\LARGE $\cdot$}b ~  d\parbox[c][0pt][c]{0.5em}{\LARGE$\cdot$}b ~ d$\vcenter{\hbox{\LARGE$\cdot$}}$b ~ d$\vcenter{\hbox{\scalefont{1.75}$\cdot$}}$b ~ d$\vcenter{\hbox{\relsize{+2.5}$\cdot$}}$b ~ d$\vcenter{\hbox{$\mathlarger{\mathlarger{\mathlarger{\mathlarger{\cdot}}}}$}}$b
\begin{align*}
    d\raisebox{-0.5ex}{\LARGE $\cdot$}b\\
    d\parbox[c][0pt][c]{0.5em}{\LARGE$\cdot$}b\\
    d\vcenter{\hbox{\LARGE$\cdot$}}b\\
    d\vcenter{\hbox{\scalefont{1.75}$\cdot$}}b\\
    d\vcenter{\hbox{\relsize{+2.5}$\cdot$}}b\\
    d\vcenter{\hbox{$\mathlarger{\mathlarger{\mathlarger{\mathlarger{\cdot}}}}$}}b
\end{align*}
d $\dotp$ b
\begin{align*}
    d \dotp b\\
    a_{d \dotp b}
\end{align*}
\end{document}

在此处输入图片描述

只有\dotp解决方案是可靠的。其他解决方案需要手动干预,例如上标和下标。您可能确实想在左右两侧插入一些负字距调整\dotp

顺便说一下,Hosein 的答案\boldsymbol{\cdot}也是该physics软件包使用的。它也适用于 dvi。不过,我发现那个点太小了。

相关内容