положение косой черты в hatted \slashed

положение косой черты в hatted \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 с косой чертой.

Затем, во второй строке, я подтверждаю наблюдения OP, что создание составных глифов \hat{\slashed{D}}и \slashed{\hat D}вызывает искажения в результате. Это не слишком удивительно, я полагаю.

Поэтому я решил, что это было сделано специально для стека, в котором я мог бы наложить два базовых элемента друг на друга, чтобы достичь результата. Сначала я убедился, что все базовые элементы были одинаковой ширины, не увеличенной сбоку каким-либо образом декором. Конечно, я хотел избежать, если это возможно, двойного удара по букве D, поэтому я использовал a \phantomв Dодном из двух элементов стека. И я обнаружил, к своему удивлению, что фантом также искажал результаты.

Примерно в это же время Анри опубликовал свое решение, намного превосходящее мой собственный подход, поскольку оно естественным образом масштабируется с mathstyle (тогда как мне пришлось бы добавить аппарат поверх scalerelмоего решения, чтобы достичь этого). Я отказался от своего решения, проголосовал за Анри и оставил ему комментарий о своих \phantomнаблюдениях. Но затем он попросил результат stackengine, поэтому я продолжаю.

Третья строка моего результата показывает эти фантомные результаты, с шляпой, смещенной влево в первой строке, и штрихом, смещенным влево во второй. Я подумал, что это может быть как-то связано с кернами, специфичными для букв, потерянными вместе с фантомом.

Итак, на четвертой строке я просто жил с двойным ударом D, как и Анри. Но этот подход в его нынешнем виде не масштабируется с математическим стилем.

\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}

введите описание изображения здесь

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