关于绝对符号已经有几个问题,比如这个。我的问题不同,因为我对我所知道的任何选项提供的绝对符号的排版都不满意。请考虑以下 MWE,它说明了字母“G”的问题:
\documentclass[crop,varwidth]{standalone}
\usepackage{amsmath}
\usepackage{mathtools}
\usepackage{tikz}
\DeclarePairedDelimiter{\abs}{\lvert}{\rvert}
\newcommand\myslash{\char`\\}
\begin{document}
\texttt{|G|}: $|G|$
\texttt{\myslash left G\myslash right}: $\left|G\right|$
\texttt{\myslash lvert G\myslash rvert}: $\lvert G\rvert$
\texttt{\myslash abs\{G\}}: $\abs{G}$
\end{document}
所有四个选项产生的绝对符号都远远低于基线(对我来说):
使用新命令:
\documentclass[crop,varwidth]{standalone}
\usepackage{tikz}
\newlength{\myht}
\newlength{\mydp}
\newcommand{\myabs}[1]{%
\settoheight{\myht}{#1}%
\settodepth{\mydp}{#1}%
\tikz[anchor=base, baseline=0pt] \draw[line cap=round] (0pt,-\mydp-0.2pt) -- (0pt,\myht+0.3pt);%
$\mkern0.6mu #1\mkern1.0mu$%
\tikz[anchor=base, baseline=0pt] \draw[line cap=round] (0pt,-\mydp-0.2pt) -- (0pt,\myht+0.3pt);%
}
\begin{document}
\myabs{G} = 2
\myabs{g} = 3
\end{document}
我得到了我认为更好看的绝对标志:
当然,人们可以对绝对符号和字母之间的间距以及字母上方和下方的距离提出一些争论;我还没有尝试调整这些。
然而,这显然不够好,因为当你排版标量积时,我们有两个并排的绝对值。
我能看到的唯一解决方案(除了在点积中使用具有相似高度和深度的符号)是允许用户影响绝对符号的排版,例如像这样:
\documentclass[crop,varwidth]{standalone}
\usepackage{tikz}
\usepackage{xifthen}
\newlength{\myht}
\newlength{\mydp}
\newcommand{\myabs}[3]{%
\settoheight{\myht}{#2}%
\settodepth{\mydp}{#3}%
\tikz[anchor=base, baseline=0pt] \draw[line cap=round] (0pt,-\mydp-0.2pt) -- (0pt,\myht+0.3pt);%
\ensuremath{\mkern0.6mu {#1}\mkern1.0mu}%
\tikz[anchor=base, baseline=0pt] \draw[line cap=round] (0pt,-\mydp-0.2pt) -- (0pt,\myht+0.3pt);%
\ensuremath{\mkern2.0mu}%final space
}
\begin{document}
\myabs{G}{G}{g}\myabs{g}{G}{g}
\end{document}
我有兴趣获得有关新命令的反馈,无论是从排版的角度还是从实施的角度。