Отключить изменение размера \vec

Отключить изменение размера \vec

Я хотел бы использовать этот макрос:

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

Но делать

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

Уступает этому

Очевидно, \vecчто изменяется «размер» аргумента, что я хотел бы отключить, чтобы достичь второй формы выше.

решение1

Я рекомендую использовать \DeclarePairedDelimiter. Затем вы можете вручную настроить размер разделителя (что вам следует делать в общем случае вместо использования \leftи \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— двух макросов пользовательского уровнямлевыйправыйpackage -- вместо \leftand \right. Использование \mleftand \mrightпозволит избежать создания лишних пробелов вокруг выражения.

Только если вам это абсолютно необходимо, вы можете использовать \smashдля сжатия высоты \vec{F}. Однако имейте в виду, что использование \smashне является панацеей. На самом деле, его использование может иметь множество непреднамеренных и нежелательных последствий; пожалуйста, см. комментарий @egreg под вашим запросом для такого примера. Подводя итог: рассмотрите возможность использования подхода, изложенного вОтвет Сэнди Джи, который использует \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

Для краткости я предпочитаю не использовать соответствующее решение Сэнди Г. Я воспользовался советом Мико по поводу использования \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}}
\]

Связанный контент