新しいアクセント表記を作成する方法

新しいアクセント表記を作成する方法

自分で定義した操作を表すために、新しいアクセント表記を使用する必要があります。これは、左端と右端に 2 つのポイントがあるバーです。

\documentclass{article}
\begin{document}
\[myaccents{A}\]
\end{document}

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

答え1

\documentclass{article}
\usepackage{amsmath,xcolor}
\begin{document}
\[\overset{\textcolor{red}{\cdot}\!-\!\textcolor{red}{\cdot}}{A}\]
\end{document}

または、\myaccentコマンドを使用して簡略化します。

\documentclass{article}
\usepackage{amsmath,xcolor}

\def\myaccent#1{\overset{\textcolor{red}{\cdot}\!-\!\textcolor{red}{\cdot}}{#1}}

\begin{document}
\[\myaccent{A}\]
\end{document}

ムウェ

バーの垂直距離は、 を追加することで調整できます\raisebox。また、バーを小さくして文字を垂直にすると見栄えが良くなります。斜体ではバーが思われる中央に配置されません。例:

\documentclass{article}
\usepackage{xcolor}
\usepackage{amsmath}
\def\myaccent#1{\overset{%
\hskip0pt   
\raisebox{-.2ex}[0ex][0ex]{%   
$_{\textcolor{red}{\cdot}\text{-}\textcolor{red}{\cdot}}$%
}}{\text{#1}}}
\begin{document}
\[\myaccent{t} \neq \myaccent{\i} \neq \myaccent{m} \neq \myaccent{e} \]
\[\myaccent{T} = \myaccent{I} = \myaccent{M} = \myaccent{E} \]
\end{document}

\begin{document}
\[\myaccent{t} \myaccent{m} \myaccent{M}  \myaccent{g} \]
\end{document}

ムウェ

バーを文字と同じ長さにするには、\widthtof{}パッケージ を 使用できますcalc。例では、 2ptドットがあるためにこの罫線を短くしました。 はもう少し短くてもよいかもしれませんが、 のような狭い文字では罫線が小さくなります\i。必要に応じて調整してください。

\documentclass{article}
\usepackage{xcolor,calc}
\usepackage{amsmath}
\def\myaccent#1{\overset{
\hskip0pt % add 2 or 3 pt if you change \text{#1} to #1 to use italics 
\raisebox{-.3ex}[0ex][0ex]{%   
$_{\textcolor{red}{\cdot}\rule[.35ex]{\widthof{#1}-2pt}{.4pt}\textcolor{red}{\cdot}}$%
}}{\text{#1}}}
\begin{document}
\[\myaccent{t} \neq \myaccent{\i} \neq \myaccent{m} \neq \myaccent{e} \]
\[\myaccent{T} = \myaccent{I} = \myaccent{M} = \myaccent{E} \]
\end{document}

MWE3

答え2

質問の意味が理解できれば、アクセントを数学変数の上に置く必要があります。アクセントは通常、斜体 (数学斜体) です。\mathaccentプリミティブは、ベースとの間をカーニングしてアクセントを水平に配置します\skewchar。この動作はマクロでシミュレートできます。そうすれば、アクセントは斜体変数の上でも見栄えが良くなります。

\mathchardef\myskewchar="717F 

\def\myaccent#1{\vbox{\offinterlineskip \lineskip=-.066em
   \setbox0=\hbox{$#1\myskewchar$}\dimen0=\wd0
   \setbox0=\hbox{$#1\kern0pt\myskewchar$}\advance\dimen0 by-\wd0
   \setbox0=\hbox{$#1$}\dimen1=\wd0 \advance\dimen1 by-.3em
                       \ifdim\dimen1<.2em \dimen1=.2em \fi
   \ialign{\hfil##\hfil\cr \hbox to0pt{\hss\kern2\dimen0
       ${\cdot}\hbox to\dimen1{\leaders\vrule height .28em depth-.23em\hfil}{\cdot}$%
       \hss}\cr$#1$\cr}}}

$\myaccent A \dot A + \myaccent x + \dot x + \myaccent t + \myaccent {xx}$.

スキューチャー02

アクセントの幅をベースの幅に応じて変えるようにコードを編集しました。

練習問題として残されている問題が 3 つあります。

  • ドットの色を追加します (使用されている別のマクロ、OPmac、xcolor.sty などによって異なります)
  • マクロを複雑にして、添え字と下添え字で動作するようにするには、つまり\mathchoiceまたは を使用します\mathpalette
  • \accentテキスト モードで斜体文字の上の基本的な動作をエミュレートします。

関連情報