In einigen alten Lehrbüchern werden einzelne dicke vertikale Linien zum Schreiben von Vektornormen verwendet. Ich möchte ein Trennzeichenpaar definieren, das sich wie \lvert
und verhält \rvert
, aber dickere Linien hat. Die neuen Trennzeichen sollten sich natürlich an die Größe der Formel anpassen, genau wie \lvert
und \rvert
. Ist das möglich?
Antwort1
Es gibt ein erweiterbares Trennzeichen namens \bracevert
, das jedoch etwas Überredung erfordert:
\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}
Informationen zur Syntax finden Sie in der Dokumentation zu mathtools
for . Unser Befehl funktioniert genauso.\DeclarePairedDelimiter
\oldnorm
Eine komplexere Lösung, bei der auch die Abstände berücksichtigt werden; im Beispiel wird auch ein Vergleich mit den Standardsymbolen vorgenommen \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}