带帽子的 \slashed 中斜线的位置

带帽子的 \slashed 中斜线的位置

所以我想用帽子来表示狄拉克算子,我尝试了和\hat{\slashed{D}}\slashed{\hat{D}}第一个的$^$离$\slashed{D}$相当远,而第二个的斜线离$D$太左边了,几乎与字母$D$的半垂直笔画重合。

有没有什么办法可以调整帽子或者斜线的位置?

答案1

只需将符号与帽子及其斜线版本重叠即可。

\documentclass{standalone}
\usepackage{mathtools,slashed}
\newcommand\hatslashed[1]{{\hat{#1}\mathllap{\slashed{#1}}}}
\begin{document}
$\hat{\slashed{D}}$
$\slashed{\hat{D}}$
$\hatslashed{D}_{\hatslashed{D}_{\hatslashed{D}}}$
\end{document}

在此处输入图片描述


您可以使用\phantom以下方法来防止双击字形,但据我所知,它\phantom无法检测到拥挤的风格,并且会将帽子向右移动。

\newcommand\hatslashed[1]{{\hat{\phantom{#1}}\mathllap{\slashed{#1}}}}

答案2

无字符重叠:

\documentclass[border=3,varwidth]{standalone}
\usepackage{mathtools,slashed}

\makeatletter
\def\pslashed#1{%
  \expandafter\ifx\csname psla@\string#1\endcsname\relax
    {\mathpalette{\sla@/00}{\phantom{#1}}}%
  \else
    \csname psla@\string#1\endcsname
  \fi}
\def\declarepslashed#1#2#3#4#5{%
  \expandafter\def\csname psla@\string#5\endcsname{%
    #1{\mathpalette{\sla@{#2}{#3}{#4}}{\phantom{#5}}}}}
\makeatother
\declarepslashed{}{/}{.08}{0}{D}

\newcommand\hatslashed[1]{\mathrlap{\hat{#1}}\slashed{#1}}
\begin{document}
$\hat{D}$

$\slashed{D}$

$\hatslashed{D}_{\hatslashed{D}_{\hatslashed{D}}}$
\end{document}

\pslashed我定义了一个模仿的命令\slashed,但是是通过幻影进行的。

为什么没有\hat{\phantom{D}}给出好的结果?因为\hat无法获取有关字符 D 的字体度量信息,因为它位于一个不包含任何内容的框上。因此,我们设置重音字符(在 中\mathrlap),然后将斜线设置为好像它跨过 D。

在此处输入图片描述

答案3

作为一项练习,这比我预期的有趣得多。在我的答案的第一行中,我给出了我们正在使用的基本元素,即 D、带帽的 D 和带斜线的 D。

然后,在第二行,我确认了原帖作者的观察,即创建复合字形\hat{\slashed{D}}\slashed{\hat D}导致结果失真。我想这并不太令人惊讶。

所以我认为这是为堆叠量身定制的,我可以将两个基本元素叠加在一起以实现结果。我首先确认基本元素的宽度都相同,没有通过装饰以某种方式横向增加。当然,如果可能的话,我想避免双击字母D,所以我在堆叠的两个元素之一中使用了\phantomof D。而且,令我非常惊讶的是,我发现幻影也扭曲了结果。

大约在这个时候,Henri 发布了他的解决方案,比我的方法好得多,因为它可以自然地与 mathstyle 配合使用(而scalerel为了实现这一点,我必须在我的解决方案之上添加设备)。我放弃了我的解决方案,投票给 Henri,并给他留下了我的\phantom观察评论。但后来他要求提供 stackengine 结果,所以我继续。

我的结果的第三行显示了这些幻影结果,第一行中帽子向左移动,第二行中笔画向左移动。我认为这可能与字母特定的字距有关,幻影消失了。

因此,在第四行,我和 Henri 一样使用了双击D。但是,这种方法目前的形式与 mathstyle 不兼容。

\documentclass{article}
\usepackage{slashed}
\usepackage{stackengine}
\def\stackslashA#1#2{\def\stacktype{L}\stackon[0pt]{$#1{\phantom{#2}}$}{$\slashed{#2}$}}
\def\stackslashB#1#2{\def\stacktype{L}\stackon[0pt]{$#1{#2}$}{$\slashed{\phantom{#2}}$}}
\def\stackslash#1#2{\def\stacktype{L}\stackon[0pt]{$#1{#2}$}{$\slashed{#2}$}}
\begin{document}
Basic Elements: $D \hat D \slashed D $

Derived Elements:$\hat{\slashed{D}} \slashed{\hat D}$ (ugh!)

Stacked Phantoms: $\stackslashA{\hat}{D} \stackslashB{\hat}{D}$ (slight shifts)

Stacked Element: $\stackslash{\hat}{D}$ (double-stroked D)
\end{document}

在此处输入图片描述

相关内容