文本中的小图表

文本中的小图表

我想在我的数学公式中使用有限类别的小图片。例如,我想生成看起来像$C^{\bullet \rightrightarrows \bullet}$$C^{\bullet \quad \bullet}$但也适用于其他小形状(例如下面的形状)的东西。

实现这一目标的最佳方法是什么?

编辑。不知何故,我的问题中的 LaTeX 无法渲染,所以这里有一张我想要的图片。理想情况下,它不应该太大,以便它可以在文本中工作。

答案1

调整cramped*风格从我的另一个答案来看,它甚至更加紧密,并增加了supercramped距离更小的样式。

(您不需要使用width数学模式中测量元素大小的函数,您可以直接使用任何尺寸,甚至那些依赖于字体大小的尺寸(em 和 ex)。)

\mtikzcd使得您可以&在宏内部继续使用。amsmath\text宏用于根据周围的数学风格提供某种程度的缩放。

代码

\documentclass{article}
\usepackage{amsmath, tikz-cd}
\tikzcdset{
  /tikz/bullet/.style={shape=circle, fill, inner sep=+.13em, yshift=axis_height},
  cramped*/.style={
    arrows=overlay, /tikz/arrows={[scale=.6]}, line cap=round,
    every matrix/.append style={
      every outer matrix/.append style={inner sep=+0pt}},
    every cell/.append style={inner sep=+0pt, outer sep=.5*width("$\;$")},
    column sep/.evaluated=.75*width("${}\to{}$"),
    row sep/.evaluated=.75*width("${}\to{}$")},
  supercramped/.style={
    cramped*,  cells={outer sep=.25*width("$\;$")},
    column sep/.evaluated=.5*width("${}\to{}$"),
    row sep/.evaluated   =.5*width("${}\to{}$")}}
\newcommand*\mtikzcd[1][]{%
  \begingroup
    \let\texbullet\bullet % store old definition
    \def\bullet{|[bullet]|}% overwriting
    \catcode`\&=\active\mmtikzcd{#1}}
\newcommand*\mmtikzcd[2]{%
  \text{\begin{tikzcd}[cramped*,#1]#2\end{tikzcd}}\endgroup}
\begin{document}
\[
  A^{\mtikzcd{\texbullet \rar[shift left] \rar[shift right] & \texbullet}}
\]

\[
  B^{\mtikzcd{\bullet \rar[shift left] \rar[shift right] & \bullet \rar & A}}
\]

\[
  C^{\mtikzcd[supercramped]{ & \bullet \dar \\ \bullet \rar & \bullet}}
\]
\end{document}

输出

在此处输入图片描述

答案2

像这样:

在此处输入图片描述

\documentclass{article}
\usepackage{lipsum}
\usepackage{tikz}
\usetikzlibrary{arrows.meta, positioning}
\tikzset{dot/.style = {circle, fill, inner sep=1pt},
         arr/.style = {-{Straight Barb[scale=0.8]}, shorten > = 1pt, shorten <=1pt}
         }

\begin{document}
\lipsum[1][1-1] Image 
    \tikz[node distance = 3mm and 3mm, baseline=0.9ex]{
    \node[dot] (a) {};
    \node[dot,right=of a] (b) {}; 
    \node[dot,above=of b] (c){};
    \draw[arr] (a) -- (b);
    \draw[arr] (c) -- (b);} shows \dots
\lipsum[1][2-3]
\end{document}

相关内容