斜線の位置 \slashed

斜線の位置 \slashed

そこで、ディラック演算子を帽子で表したいと思い、 と\hat{\slashed{D}}の両方を試しました\slashed{\hat{D}}。最初のものは $^$ が $\slashed{D}$ からかなり離れていますが、2 つ目はスラッシュが $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 は何も含まれていないボックスの上にあるため、文字 D に関するフォント メトリック情報を取得できないためです。そこで、アクセント付き文字 ( \mathrlap) を設定し、スラッシュを D の上にあるかのように設定します。

ここに画像の説明を入力してください

答え3

これは、予想していたよりもずっと興味深い練習になりました。私の回答の最初の行では、私たちが取り組んでいる基本要素である D、斜線付きの D、斜線付きの D を示します。

\hat{\slashed{D}}次に、2 行目で、複合グリフを作成すると\slashed{\hat D}結果に歪みが生じるという OP の観察を確認します。これはそれほど驚くべきことではないと思います。

そこで、これはスタックにぴったりだと考えました。スタックでは、基本要素を 2 つ重ね合わせることで、この結果を実現できます。まず、基本要素がすべて同じ幅であり、装飾によって横方向に何らかの形で拡張されていないことを確認しました。もちろん、可能であれば、文字 を 2 回打つのは避けたかったのでD、スタックの 2 つの要素の 1 つに\phantomの を使用しましたD。そして、非常に驚​​いたことに、ファントムによって結果も歪んでいることがわかりました。

この頃、Henri が自分の解決策を投稿しました。これは、mathstyle で自然にスケールするため、私のアプローチよりもはるかに優れています (一方、私の場合は、scalerelそれを実現するには、自分の解決策に装置を追加する必要があります)。私は自分の解決策を放棄し、Henri に投票し、自分の\phantom観察結果をコメントに残しました。しかし、その後、Henri が stackengine の結果を要求したため、私は続行しました。

私の結果の 3 行目には、最初の行ではハットが左にシフトされ、2 番目の行ではストロークが左にシフトされた、ファントムの結果が表示されています。これは、ファントムによって失われた文字固有のカーニングと関係があるのではないかと考えました。

したがって、4 行目では、DHenri と同じように、二重に打った を使用しました。ただし、このアプローチは、現在の形式では、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}

ここに画像の説明を入力してください

関連情報