벡터의 노름에 대한 두꺼운 수직선 기호

벡터의 노름에 대한 두꺼운 수직선 기호

일부 오래된 교과서에서는 벡터의 규범을 작성하기 위해 하나의 두꺼운 수직선을 사용합니다. \lvertand 처럼 동작 \rvert하지만 선이 더 두꺼운 구분 기호 쌍을 정의하고 싶습니다 . 물론 새 구분 기호는 \lvert및 마찬가지로 수식의 크기에 맞게 조정되어야 합니다 \rvert. 이것이 가능합니까?

답변1

라는 확장 가능한 구분 기호가 있지만 \bracevert약간의 동축이 필요합니다.

\documentclass{article}
\usepackage{mathtools,xparse}

\DeclarePairedDelimiter{\oldnormaux}{\bracevert}{\bracevert}

\NewDocumentCommand{\oldnorm}{som}{%
  \IfBooleanTF{#1}
    {\oldnormaux*{#3}}
    {\IfNoValueTF{#2}
       {\oldnormaux*{\vphantom{dq}#3}}
       {\oldnormaux[#2]{#3}}%
    }%
}

\begin{document}

$\oldnorm{v}\oldnorm[\big]{v}\oldnorm[\Big]{v}\oldnorm*{\dfrac{1}{2}v}$

\end{document}

구문과 관련하여 mathtoolsfor 문서를 참조하세요 . \DeclarePairedDelimiter우리의 \oldnorm명령은 동일하게 작동합니다.

여기에 이미지 설명을 입력하세요

간격도 관리하는 더 복잡한 솔루션입니다. 이 예에서는 이를 표준 \Vert기호와도 비교합니다.

\documentclass{article}
\usepackage{amsmath,xparse}

\NewDocumentCommand{\oldnorm}{sO{}m}{%
  {\IfBooleanTF{#1}
    {\oldnormaux{\left|}{\right|}{#3}}
    {\oldnormaux{#2|}{#2|}{#3}}}
}
\makeatletter
\newcommand{\oldnormaux}[3]{\mathpalette\oldnormaux@i{{#1}{#2}{#3}}}
\newcommand{\oldnormaux@i}[2]{\oldnormaux@ii#1#2}
\newcommand{\oldnormaux@ii}[4]{%
  \sbox\z@{$\m@th#1#2#4#3$}%
  \sbox\tw@{$\m@th\|$}%
  \mathopen{\hbox to\wd\tw@{\hss\vrule height \ht\z@ depth \dp\z@ width .3\wd\tw@\hss}}%
  #4
  \mathclose{\hbox to\wd\tw@{\hss\vrule height \ht\z@ depth \dp\z@ width .3\wd\tw@\hss}}%
}
\makeatother
\begin{document}

$\oldnorm{v}\oldnorm[\big]{v}\oldnorm[\Big]{v}\oldnorm*{\dfrac{1}{2}v}^2$

$|\oldnorm{x}|$

$|\lVert x\rVert|$

$\oldnorm*{\dfrac{1}{2}v}^2 \left\lVert\dfrac{1}{2}v\right\rVert^2$

$x_{\oldnorm{v}}$ $x_{\lVert v\rVert}$
\end{document}

여기에 이미지 설명을 입력하세요

관련 정보