
인라인 TikZ 코드를 사용하여 나만의 아래 첨자 기호를 만들고 싶습니다. 예를 들어
$V_{\tikz{ \draw [|->] (0,0) -- (2ex,0); }}$
문제는 규모가 조정되지 않는다는 것입니다. 화살표의 길이는 문자의 2배보다 깁니다 x
( ex
문자의 높이를 의미함 x
). 이 문제를 어떻게 해결할 수 있나요? 기호가 아래 첨자의 아래 첨자라면 문제는 정말 고통스럽습니다. TikZ는 절대 높이가 ex
변경되더라도 기호의 크기를 조정하지 않습니다.
나는 '표준' 수학 기호를 사용하고 싶지 않습니다. 사실 내 기호는 더 복잡하고 수학 기호를 사용할 수 없습니다.
답변1
(로도 로드됨 ) 패키지 \text
의 매크로는 올바른 글꼴 크기를 설정하고 글꼴 단위 및 에 올바르게 액세스하는 데 사용할 수 있습니다 .amstext
amsmath
em
ex
귀하의 의견에 따르면 실제 화살표를 사용하는 대신 화살표에 글꼴 크기 기반 노드를 사용한 것처럼 보입니다(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}