我想求两个向量的余弦,我定义了\cross
两个向量的叉积命令。我试过了
\documentclass[12pt,a4paper]{article}
\usepackage[utf8]{inputenc}
\usepackage{amsmath}
\usepackage{fourier}
\usepackage{esvect}
\usepackage[left=2cm,right=2cm,top=2cm,bottom=2cm]{geometry}
\newcommand{\cross}[2]{\biggl[\vv{#1},\vv{#2} \biggr]}
\begin{document}
\[\cos \varphi =\dfrac{\cross{CA'}{CB} \cdot \cross{CA'}{CD}}{\left \vert \cross{CA'}{CB} \right\vert \cdot \left \vert \cross{CA'}{CD} \right\vert}. \]
\end{document}
我觉得命令中的括号\cross
不太好。我该如何修复它们?
答案1
方括号似乎太高了。具体来说,我认为没有必要将方括号做得足够高以将箭头括起来。箭头“伸出”在括号上方,不会让任何人感到困惑。因此,使用\big
而不是 来\bigg
表示括号的大小应该没问题。
从印刷方面来说,我还看到了改进的空间,即 产生的箭头高度不均匀\vv
。由于高度不均匀是由\cross
宏的第一个参数中的“素数”引起的,因此解决此问题的一种方法是自动将“垂直幻影”(由#1
...组成)添加到第二宏的参数\cross
。
\documentclass[12pt,a4paper]{article}
\usepackage[utf8]{inputenc}
\usepackage{mathtools}
\DeclarePairedDelimiter{\abs}{\lvert}{\rvert}
\usepackage{fourier,esvect}
\usepackage[margin=2cm]{geometry}
\newcommand{\cross}[2]{\bigl[ \vv{#1},\vv{#2\vphantom{#1}} \bigr]}
\newcommand\z{\vphantom{{}'}} % insert a vertical phantom as tall as a superscript prime
\begin{document}
\[
\cos \varphi =\dfrac{\cross{CA'}{CB} \cdot \cross{CA'}{CD}}
{\abs*{\cross{CA'}{CB}} \cdot \abs*{\cross{CA'}{CD}} }\,.
\]
\end{document}
答案2
另一种选择是使用粗体字母表示向量。我还将括号改为圆括号,希望这不会改变主题中的含义。physics
包用于使用\vb*
宏使向量加粗。如果要使用直立字母表示向量,请使用\vb
不带星号的符号。由于\cross
由 physcis 定义,我将其更改为\Cross
。
\documentclass[12pt,a4paper]{article}
\usepackage[utf8]{inputenc}
\usepackage{amsmath}
\usepackage{fourier}
\usepackage{physics}
\usepackage[left=2cm,right=2cm,top=2cm,bottom=2cm]{geometry}
\newcommand{\Cross}[2]{(\vb*{#1},\vb*{#2})}
\begin{document}
\[\cos \varphi =\dfrac{\Cross{CA'}{CB} \cdot \Cross{CA'}{CD}}{\vert \Cross{CA'}{CB} \vert \cdot \vert \Cross{CA'}{CD} \vert} \]
\end{document}
我还从 中删除了\left
和。\right
\vert
答案3
一个可能的解决方案(因为您还没有告诉我们您希望它如何,所以这只是一个猜测):
\documentclass{article}
\usepackage{mathtools}
\usepackage{fourier}
\DeclarePairedDelimiter{\abs}{\lvert}{\rvert}
\newcommand*\cross[2]{\left[\overrightarrow{#1},\overrightarrow{#2}\right]}
\begin{document}
\begin{equation}
\cos\varphi
= \frac{\cross{CA'}{CB} \cdot \cross{CA'}{CD}}{\abs*{\cross{CA'}{CB}} \cdot \abs*{\cross{CA'}{CD}}}.
\end{equation}
\end{document}
这样,支架就会根据材料自动缩放。
请注意,我使用了\overrightarrow
而不是,\vv
以避免加载esvect
包。(我不认为这是一个“坏”包,但我只是喜欢尽可能少地加载包。)
更新
如果您总是有像示例中这样的向量,则可以使代码更简单:
\documentclass{article}
\usepackage{mathtools}
\usepackage{fourier}
\DeclarePairedDelimiter{\abs}{\lvert}{\rvert}
\newcommand*\cross[2]{\left[\overrightarrow{#1},\overrightarrow{#2}\right]}
\newcommand*\crossProduct[3]{
\frac{\cross{#1}{#2} \cdot \cross{#1}{#3}}% nominator
{\abs*{\cross{#1}{#2}} \cdot \abs*{\cross{#1}{#3}}}% denominator
}
\begin{document}
\begin{equation}
\cos\varphi
= \crossProduct{CA'}{CB}{CD}
\end{equation}
\end{document}
答案4
忽略数学轴时必须小心谨慎,但从你的问题来看,你似乎对向量下方的额外空间(括号内的空间)感到不满。这些额外空间是为了使箭头上方的向量符号对称。
很多人会说,即使看起来很奇怪,也不应该打扰它。但是,既然你在寻找替代方案,这里有一个解决方案,可以删除括号下方的空间。但看看它的作用:它使字母居中\cdot
,因此相对于括号的高度不对称。
因此,这是一种选择,但许多人不会说这是一种改进。
\documentclass[12pt,a4paper]{article}
\usepackage[utf8]{inputenc}
\usepackage{amsmath}
\usepackage{fourier}
\usepackage{esvect}
\usepackage{scalerel}
\usepackage[left=2cm,right=2cm,top=2cm,bottom=2cm]{geometry}
\newcommand{\cross}[2]{{\stretchleftright{[}{\vv{#1},\vv{#2}}{]}}}
\begin{document}
\[\cos \varphi =\dfrac{\cross{CA'}{CB} \cdot \cross{CA'}{CD}}
{\stretchleftright{\vert}{\protect\cross{CA'}{CB}}{\vert} \cdot
\stretchleftright{ \vert}{\cross{CA'}{CD}}{\vert}}. \]
\end{document}