Ich muss eine neue Akzentnotation verwenden, um eine von mir definierte Operation zu kennzeichnen. Es handelt sich um einen Balken mit zwei Punkten am linken/rechten Ende.
\documentclass{article}
\begin{document}
\[myaccents{A}\]
\end{document}
Antwort1
\documentclass{article}
\usepackage{amsmath,xcolor}
\begin{document}
\[\overset{\textcolor{red}{\cdot}\!-\!\textcolor{red}{\cdot}}{A}\]
\end{document}
Oder vereinfacht mit einem \myaccent
Befehl:
\documentclass{article}
\usepackage{amsmath,xcolor}
\def\myaccent#1{\overset{\textcolor{red}{\cdot}\!-\!\textcolor{red}{\cdot}}{#1}}
\begin{document}
\[\myaccent{A}\]
\end{document}
Der vertikale Abstand des Balkens kann durch Hinzufügen eines angepasst werden \raisebox
. Außerdem könnte es mit kleineren Balken und aufrechten Buchstaben besser aussehen, da in Kursivschrift die Balkenscheintnicht zentriert. Beispiel:
\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}
Um den Balken so lang wie das Zeichen zu machen, könnte man \widthtof{}
aus dem Paket verwenden calc
. Im Beispiel habe ich diese Regel 2pt
wegen der Punkte kürzer gemacht. Vielleicht sollte sie noch etwas kürzer sein, aber dann ist die Regel bei schmalen Zeichen wie sehr klein \i
. Passen Sie sie nach Wunsch an:
\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}
Antwort2
Wenn ich die Frage richtig verstehe, müssen Sie Ihren Akzent über mathematische Variablen setzen. Diese sind normalerweise kursiv (mathematische Kursivschrift). Das \mathaccent
Primitiv bewirkt die horizontale Platzierung des Akzents durch Kern zwischen der Basis und \skewchar
. Wir können dieses Verhalten durch Makros simulieren. Dann sieht Ihr Akzent über kursiven Variablen besser aus.
\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}$.
Ich habe meinen Code bearbeitet, um die Breite des Akzents entsprechend der Breite der Basis zu variieren.
Es gibt drei Probleme, die als Übung übrig bleiben:
- um die Farbe der Punkte hinzuzufügen (dies hängt von dem anderen verwendeten Makro ab, OPmac, xcolor.sty usw.)
- um das Makro so zu komplizieren, dass es mit Index und Unterindex arbeitet, d. h. um
\mathchoice
oder zu verwenden\mathpalette
. \accent
um zu versuchen, das primitive Verhalten über kursiven Buchstaben im Textmodus zu emulieren .