禁用 \vec 的大小更改

禁用 \vec 的大小更改

我想使用這個巨集:

\newcommand{\norm}[1]{\left\lVert #1 \right\rVert}

但做

\norm{\vec F}
\lVert \vec F \Rvert

產生這個

顯然\vec正在改變參數的“大小”,我想禁用它,以實現上面的第二種形式。

答案1

我建議使用\DeclarePairedDelimiter.然後您可以手動調整分隔符號大小(通常應該這樣做,而不是使用\leftand \right)。

在此輸入影像描述

\documentclass{article}

\usepackage{mathtools}

\DeclarePairedDelimiter{\norm}{\Vert}{\Vert}

\begin{document}

$\norm{F} \quad \norm{\vec F} \quad \norm[\big]{\vec F} \quad \norm[\Big]{\vec F}$

\end{document}

答案2

如果您喜歡使用 生成的“柵欄”自動調整大小\norm,我建議您使用 和 來實現\mleft-\mright這兩個用戶級宏左右包 - 代替\left\right。使用\mleftand\mright將避免在表達式周圍創建過多的空格。

只有當你絕對必要時,你才可以使用\smash壓縮 的高度\vec{F}。但是,請注意,使用\smash並不是萬能的。事實上,它的使用可能會產生許多意想不到的不良後果;請參閱@egreg 在您的查詢下方的評論以獲取此類示例。總結一下:請考慮使用中所述的方法桑迪·G 的回答,它使用\DeclarePairedDelimiter巨集(由套件提供mathtools)來建立一個名為 的巨集\norm

在此輸入影像描述

\documentclass{article}
\usepackage{mleftright} % https://www.ctan.org/pkg/mleftright
\usepackage{amsmath} % for '\Vert' macro
\newcommand{\norm}[1]{\mleft\Vert #1 \mright\Vert}

\begin{document}
$\norm{\vec{F}}$
$\norm{\smash{\vec{F}}}$
$\lVert \vec{F} \rVert$
\end{document}

答案3

為了簡潔起見,我不喜歡使用 Sandy G 的相關解決方案。我聽了 Mico 關於 的使用的建議\left \right,並想出了這個:

\documentclass{article}
\usepackage{mleftright}
\usepackage{amsmath} % for '\Vert' macro
\newcommand{\norm}[1]{\mleft\Vert #1 \mright\Vert}
\let\dvec\vec
\renewcommand\vec[1]{\smash{\dvec #1}}

同時記住,\dvec可以在罕見的情況下使用案例egreg提到的。

\[
    \norm{\vec v} \quad  \norm{\vec V} \quad \norm{\frac{\vec F}{\lVert \dvec F \rVert}}
\]

相關內容