Quero um símbolo personalizado no topo de uma variável. O problema é que o tamanho do símbolo sempre permanece o mesmo se o tamanho da variável for alterado. Numa fórmula mais sofisticada com frações etc. isso parece horrível.
Aqui está um exemplo. Para reduzir o espaço vertical, usei o código deComo posso diminuir (ou expandir) o espaçamento vertical em \stackrel?.
\documentclass{minimal}
\usepackage{amsmath}
\usepackage{tikz}
\newcommand{\defeq}{%
\mathrel{\vbox{\offinterlineskip\ialign{%
\hfil##\hfil\cr
$\text{\tikz{\draw[-, line width=0.2ex] (1.6ex,0.5ex) -- (1.6ex,-0.5ex); \begin{scope}[xshift=0ex] \draw[-, line width=0.2ex] (0,0) -- (1.4ex,0); \fill[black] (1.5ex,0) -- (1ex,0.5ex) -- (1ex,-0.5ex) -- cycle; \end{scope} }}$\cr
\noalign{\kern-0.4ex}
}}}}
\begin{document}
\begin{equation}
B_{\overset{\defeq}{AB}} \overset{\defeq}{AB}
\end{equation}
\end{document}
Responder1
O boxe impede a mudança de tamanho em um subscrito, você poderia usar \mathchoice
para selecionar tamanhos diferentes, mas aqui acho que você pode simplesmente remover o vbox e \ialign
como você só tinha uma linha então não estava alinhando nada.
\documentclass{article}
\usepackage{amsmath}
\usepackage{tikz}
\newcommand{\defeq}{%
\mathrel{\text{\tikz{\draw[-, line width=0.2ex] (1.6ex,0.5ex) -- (1.6ex,-0.5ex); \begin{scope}[xshift=0ex] \draw[-, line width=0.2ex] (0,0) -- (1.4ex,0); \fill[black] (1.5ex,0) -- (1ex,0.5ex) -- (1ex,-0.5ex) -- cycle; \end{scope}}}}}
\begin{document}
\begin{equation}
B_{\overset{\defeq}{AB}} \overset{\defeq}{AB}
\end{equation}
\end{document}
Ou mais perto:
\newcommand{\defeq}{%
\mathrel{\text{%
\raisebox{-.4ex}[0pt][0pt]{\tikz{\draw[-, line width=0.2ex] (1.6ex,0.5ex) -- (1.6ex,-0.5ex); \begin{scope}[xshift=0ex] \draw[-, line width=0.2ex] (0,0) -- (1.4ex,0); \fill[black] (1.5ex,0) -- (1ex,0.5ex) -- (1ex,-0.5ex) -- cycle; \end{scope}}}}}}