使用新命令进行 tikz 绘制

使用新命令进行 tikz 绘制

我创建了一个 Ti使用 Z 图片\newcommand,我想用它作为下标。问题是它太大了,有办法让它变小吗?

以下是我尝试过的:

\documentclass[border = 5mm]{standalone}
\usepackage{tikz}
\newcommand{\test}{\begin{tikzpicture}
    \draw (0,0)--(1,1);
    \draw (0,1) -- (0.5-0.05,0.5+0.05);
    \draw (1,0) -- (0.5+0.05,0.5-0.05);
    \end{tikzpicture}}

\begin{document}
    $Something_{\test}$
\end{document}

输出

答案1

scale欢迎使用 TeX-SE!如果您使用缩小图片,您的建议会很有效。

\documentclass{article}
\usepackage{tikz}
\begin{document}
\newcommand{\test}[1][]{\begin{tikzpicture}[#1]
\draw (0,0)--(1,1);
\draw (0,1) -- (0.5-0.05,0.5+0.05);
\draw (1,0) -- (0.5+0.05,0.5-0.05);
\end{tikzpicture}}
$X_{\test[scale=0.2]}$
\end{document}

在此处输入图片描述

但是,人们经常希望定义一个新符号,该符号会随文本缩放,并在周围环境发生变化时变为粗体,适应周围文本的颜色等等。以下是使用命令作为起点实现此目的的一种方法。

\documentclass{article}
\usepackage{amsmath}
\usepackage{tikz}
\makeatletter
\DeclareRobustCommand{\checkbold}[1]{% https://tex.stackexchange.com/a/24635/121799
 \edef\@tempa{\math@version}\edef\@tempb{bold}%
 \ifx\@tempa\@tempb%
  \def#1{1}%
 \else
  \def#1{0}%
 \fi}
\makeatother 
\newcommand{\somedrawing}{(0,0)--(0.7em,0.7em)  (0,0.7em) -- (0.35em-0.07em,0.35em+0.07em)
 (0.7em,0) -- (0.35em+0.07em,0.35em-0.07em)}
\newcommand{\myX}{\checkbold\tmp%
\ensuremath{\mathrel{%
\mathchoice{%
\tikz{\draw[line width={1.2*(1+0.33*\tmp)*0.06em}]\somedrawing;}
}{%
\tikz{\draw[line width={1.2*(1+0.33*\tmp)*0.06em}]\somedrawing;}
}{%
\tikz{\draw[line width={1.2*(1+0.33*\tmp)*0.045em}]\somedrawing;}
}{%
\tikz{\draw[line width={1.2*(1+0.33*\tmp)*0.035em}]\somedrawing;}
}}}}
\newcommand{\test}{\begin{tikzpicture}
\draw[line width=0.07ex] ;
\end{tikzpicture}}
\begin{document}
$X_{\myX}$ {\Large $\myX_{\myX}$} {\boldmath $X_{\myX}$ \textcolor{blue}{\Large $\myX_{\myX}$}}
\end{document}

在此处输入图片描述

更多信息可以在以下答案中找到这个问题,我正在使用 TiZy 从那里回答。

答案2

与 @marmot 的回答类似,但传递的参数(数字)是缩小尺寸,您可以直接执行命令\test而不传递任何参数(默认情况下比例因子设置为 0.2)。此外,我使命令的绘制更加容易,我绘制了一条粗白线,然后绘制了一条较小的黑线。

输出

\documentclass[border = 5mm]{standalone}
\usepackage{tikz}
\newcommand{\test}[1][0.2]{%
    \begin{tikzpicture}[scale=#1]
        \draw[] (0,0)--(1,1);
        \draw[very thick, white] (1,0)--(0,1); % The white separation
        \draw[] (1,0)--(0,1);
    \end{tikzpicture}%
}

\begin{document}
    Default size \test, in mathmode: $Something_{\test[0.125]}$.
\end{document}

相关内容