缩放 tikz-cd 标签

缩放 tikz-cd 标签

我想缩放绘制的自定义符号tikz,使其与tikz-cd图表中周围的文本大小相同。

例如,在下面的代码中,我希望 左侧的框A_2与 左侧的框按比例相同A_1:当前,这两个框的大小相同,尽管A_2小于A_1

\documentclass{standalone}
\usepackage{tikz-cd}

\newcommand{\boxL}{%
  \tikz[baseline=0em,xscale=0.02em,yscale=0.02em]
  \fill (1,0) -- (0,0) -- (0,1) -- (1,1) -- cycle;\mspace{1mu}}

\begin{document}
\begin{tikzcd}
{\boxL A_1} \rar{\boxL A_2} & A_3
\end{tikzcd}
\end{document}

在此处输入图片描述

这里tikz-cd使用\scriptstyle标签,这很好,但是标签中的框没有正确缩放。

需要说明的是,如果将方程替换为以下内容,则可以解决这个问题:

{\boxL A_1} \rar{\scriptsize\boxL A_2} & A_3

得到如下图片:

在此处输入图片描述

不过,我不想\scriptsize到处都明确添加。

答案1

代码

\documentclass[convert=false]{standalone}
\usepackage{amstext,tikz-cd}

\newcommand{\BOX}{%
  \text{%
    \tikz[baseline=0em,xscale=0.02em,yscale=0.02em]
    \fill (1,0) -- (0,0) -- (0,1) -- (1,1) -- cycle;}\mkern1mu\relax}

\begin{document}
\begin{tikzcd}
{\BOX A_1} \rar{\BOX A_2} & A_3
\end{tikzcd}
\end{document}

输出

在此处输入图片描述

答案2

您可以\mathchoice根据样式适当地缩放符号:

\documentclass{article}
\usepackage{amsmath}
\usepackage{tikz-cd}

\newcommand\Mybox{%
  \tikz[baseline=0em,xscale=0.02em,yscale=0.02em]
  \fill (\unit,0) -- (0,0) -- (0,\unit) -- (\unit,\unit) -- cycle;\mspace{1mu}}
\newcommand\Mbox{%
  \mathchoice{\def\unit{1}\Mybox}{\def\unit{1}\Mybox}{\def\unit{0.67}\Mybox}{\def\unit{0.5}\Mybox}
}

\begin{document}

\[ \Mbox_{\Mbox_{\Mbox}} \]

\begin{tikzcd}
{\Mbox A_1} \rar{\Mbox A_2} & A_3
\end{tikzcd}

\end{document}

在此处输入图片描述

相关内容