아래 첨자에서 인라인 TikZ 코드의 크기를 자동으로 조정하는 방법은 무엇입니까?

아래 첨자에서 인라인 TikZ 코드의 크기를 자동으로 조정하는 방법은 무엇입니까?

인라인 TikZ 코드를 사용하여 나만의 아래 첨자 기호를 만들고 싶습니다. 예를 들어

$V_{\tikz{ \draw [|->] (0,0) -- (2ex,0); }}$

문제는 규모가 조정되지 않는다는 것입니다. 화살표의 길이는 문자의 2배보다 깁니다 x( ex문자의 높이를 의미함 x). 이 문제를 어떻게 해결할 수 있나요? 기호가 아래 첨자의 아래 첨자라면 문제는 정말 고통스럽습니다. TikZ는 절대 높이가 ex변경되더라도 기호의 크기를 조정하지 않습니다.

나는 '표준' 수학 기호를 사용하고 싶지 않습니다. 사실 내 기호는 더 복잡하고 수학 기호를 사용할 수 없습니다.

답변1

(로도 로드됨 ) 패키지 \text의 매크로는 올바른 글꼴 크기를 설정하고 글꼴 단위 및 에 올바르게 액세스하는 데 사용할 수 있습니다 .amstextamsmathemex

귀하의 의견에 따르면 실제 화살표를 사용하는 대신 화살표에 글꼴 크기 기반 노드를 사용한 것처럼 보입니다(TikZ는 화살표 크기와 관련하여 매우 유연하지 않기 때문에 나쁜 생각은 아닐 것입니다). |하나의 옵션을 사용하는 화살표 끝 의 작은 재정의 ( 로 설정 \pgfsetarrowoptions및 액세스 \pgfgetarrowoptions).

암호

\documentclass{article}
\usepackage{tikz,amstext}
\makeatletter
\newcommand*{\myarrow}{%
    \mathchoice
        {\pgfsetarrowoptions{:}{2pt}\my@arrow}
        {\pgfsetarrowoptions{:}{2pt}\my@arrow}
        {\pgfsetarrowoptions{:}{1pt}\my@arrow}
        {\pgfsetarrowoptions{:}{1pt}\my@arrow}
}
\newcommand*{\my@arrow}{\text{\tikz\draw[:->] (0,0) -- (2ex,0);}}
\pgfarrowsdeclare{:}{:}
{
  \pgfarrowsleftextend{+-0.25\pgflinewidth}
  \pgfarrowsrightextend{+.75\pgflinewidth}
}
{
  \pgfutil@tempdima\pgfgetarrowoptions{:}
  \advance\pgfutil@tempdima by0\pgflinewidth%
  \pgfsetdash{}{+0pt}
  \pgfsetrectcap
  \pgfpathmoveto{\pgfqpoint{0.25\pgflinewidth}{-\pgfutil@tempdima}}
  \pgfpathlineto{\pgfqpoint{0.25\pgflinewidth}{\pgfutil@tempdima}}
  \pgfusepathqstroke
}
\makeatother
\begin{document}
$\displaystyle\myarrow\textstyle\myarrow V_{\myarrow_{\myarrow}}$
\end{document}

산출

여기에 이미지 설명을 입력하세요

관련 정보