绘制非平凡的交​​换图?

绘制非平凡的交​​换图?

我正在尝试绘制以下数学图表(见附件)。如果所有元素都采用数组样式的图形,那么通常的等式就没问题了。\begin{array}但是符号中的箭头\mathbb R延伸到数组的几个元素上。我真的不知道该如何处理这幅图,想知道是否有人可以给我指出正确的方向?非常感谢!

在此处输入图片描述

答案1

这在 Ti 中绝对可行Z 或 PSTricks,但我认为对于像这样的简单图表来说,这有点过头了。我认为你应该使用tikz-cd,代码非常少,并且专为这种图表而设计。

请记住,它的工作方式类似于matrix(基本上是一张表),因此您知道如何放置各种“节点”。此外,箭头的命令也很简单,字母表示方向:u向上、d向下、向右r和向左、向右下、向右下右等等。ldrdrr

我看不懂某些箭头上的文字,所以你可能必须修复它,但它给出了想法。

输出

输出

代码

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

\begin{document}
\[\begin{tikzcd}
        & & T(TM) & & T^*(TM)\\
        & & T^{*}M \arrow[u, "X_H", swap] \arrow[urr, "\delta_H", swap]\\
   R    \arrow[uurr, "X_{H}\circ(X\circ\varphi)", bend left=45]  
        \arrow[urr, "\alpha\circ\varphi", swap, bend left] 
        \arrow[rr] 
        \arrow[drr, "X\circ\varphi", bend right]  
        \arrow[ddrr, "X_{L}\circ(X\circ\varphi)", swap, bend right=45] 
        & & M \arrow[u, "\alpha", swap] \arrow[d, "X"] \\
        & & TM \arrow[d, "X_L"] \arrow[drr, "\delta_L"]\\
        & & T(TM) & & T^*(TM)
\end{tikzcd}\]
\end{document}

答案2

环境所需的代码psmatrix也不是很长。主要区别在于tikz-cd先描述节点,然后描述节点连接。

\documentclass[border=3pt]{standalone}
\usepackage{pst-node}
\usepackage{auto-pst-pdf}

\begin{document}

\psset{arrows=->, arrowinset=0.15, linewidth=0.6pt, nodesep=2pt, labelsep=1pt, colsep=0.8cm, rowsep=1cm, shortput=nab}%
\everypsbox{\scriptstyle}
$ \begin{psmatrix}
    %% nodes
     & T(TM) & \pnode[0,-0.5]{TsTs}\rput[l](TsTs){\textstyle T^*(T^*M)}\\
    &T^*M & \\
   \mathbf{R} & M \\
    & TM\\
    &T(TM) & \pnode[0,0.5]{TsT}\rput[l](TsT){\textstyle T^*(TM)}
    %% arrows
    \ncline{2,2}{1,2}>{X_H}
    \ncline{2,2}{TsTs}\nbput[npos = 0.6]{\theta_H}
    \ncline{3,1}{3,2}^{\varphi}
    \ncline{3,2}{2,2}>{\alpha}\
    \ncline{3,2}{4,2}>{X}
    \ncline{4,2}{5,2}>{X_L}
    \ncline{4,2}{TsT}\naput[npos = 0.6]{\theta_L}
    \psset{arcangle=40, npos=0.45, nrot=:U, nodesepA=4pt}
    \ncarc{3,1}{2,2}\naput{\alpha\circ\varphi}
    \ncarc{3,1}{1,2}\naput{X_H\circ(\alpha\circ\varphi)}
    \psset{arcangle=-40}
    \ncarc{3,1}{4,2}\naput[npos=0.5]{X\circ Y}
    \ncarc{3,1}{5,2}\naput[npos=0.55]{X_H\circ(\alpha\circ\varphi)}
    \end{psmatrix} $

\end{document} 

在此处输入图片描述

答案3

希望我已经正确阅读了所有箭头,这是我的代码和输出:

\documentclass[a4paper]{report}
\usepackage{amsmath,amsfonts,amssymb,xypic}

\begin{document}
\[\xymatrix{
 & T(TM) & T^\ast(T^\ast M) \\
 & T^\ast M \ar[u]_{X_H} \ar[ur]_{\theta_H} \\
\mathbb R \ar@/^2pc/[uur]^{X_H\circ(\alpha\circ\phi)} \ar@/^1pc/[ur]^{\alpha\circ\gamma} \ar[r]^{\gamma} \ar@/_1pc/[dr]_{x\circ\gamma} \ar@/_2pc/[ddr]_{x_\iota\circ(x\circ\gamma)} & M \ar[d]_x \\
 & TM \ar[d]_{X_\iota} \ar[dr]^{\theta_n} \\
 & T(TM) & T^\ast(TM)
}\]
\end{document}

在此处输入图片描述

基本上,a\xymatrix是一个大矩阵,其中你可以有箭头起始于你想要的任何单元格并结束于其中。

您将命令\ar等放在箭头开始的单元格中,然后在[]s 中指定箭头结束的位置,并使用d表示向下、u表示向上、r表示向右和l表示向左的组合,相对于您使用前一个字母到达的单元格。例如,假设我从 (4,1) 开始并且有[uurur]。所以我有u,我向上移动一个,到达 (3,1),然后是另一个u,所以 (2,1),一个r,所以 (2,2),另一个u,所以 (1,2),和r,所以我最终到达 (1,3)。当然,[uuurr]是等效的,任何排列都是等效的。我从未尝试混合us 和ds 或rs 和ls,但如果它没有给出错误,au应该取消 anl和 a dan r,反之亦然。

_箭头后面^放东西。不要问我关于转向箭头的更多细节,因为我自己经常会犯错 :),但是如果你有一个指向右边的箭头(也许是直上,所以是us 和rs 的组合),_则将东西放在它下面和^上面。

然后是@s 的世界。这个\ar@命令是我所知道的最复杂的命令之一。你可以@在一个箭头中使用多个 s,它们接受非常多样化的参数。我不会讲得太详细,但文档应该可以帮到你。

  • 您有@/_…/,它将箭头“向下”弯曲(例如_将东西放在“下面”)…,这肯定是一个维度。这有@/^…/“向上”弯曲的对应项。我不知道@/…/是什么,但它不应该给出错误。
  • 然后我们有@<…>,它使箭头移动了…,这是一个维度。移动垂直于箭头本身,至少当箭头是直的时候是这样,但“垂直”的适当定义应该将这种解释扩展到弯曲的箭头(@/_…/@/^…/箭头)。
  • 您有@{…},它指定了箭的形状(三位:尾部、箭杆、头部,按此顺序)。

我记得的就这些了。我已经很久没画图了,最近我换成了 tikz-cd,因为它允许使用彩色箭头,但xy不幸的是它不支持。不过,我用这个包已经有几年了,它是绘制黑白图的好方法——直到你想弄乱箭头环或做一些奇怪的箭头摆弄,在xy失控时,tikz-cd前来救援,一旦你学会了如何使用它:)

我应该指出的是,在我最后一次争论xypicTL 发行版的版本已过时,而最新版本可以在源码,该软件包作者的站点。

答案4

的用户lualatex还可以使用luamplib来编写内联 Metapost 图形。但它远不如 简洁tikz-cd,而且您需要知道如何使用 MP。

在此处输入图片描述

\documentclass[a4paper]{article}
\usepackage{fontspec}
\setmainfont{TeX Gyre Termes}
\usepackage{unicode-math}
\setmathfont{TeX Gyre Termes Math}
\usepackage{luamplib}
\begin{document}

In theory, the interrelation of system and/or subsystem technologies must utilize
and be functionally interwoven with the evolution of specifications over a given
time period.  In particular, any associated supporting element necessitates that
urgent consideration be applied to possible bidirectional logical relationship
approaches.  
\[\begin{mplibcode}

vardef label_connect@#(expr i,j,s) = 
  save p, a, b; path p; pair a, b;
  a = center c[i];
  b = center c[j];
  p = a -- b cutbefore bbox c[i] cutafter  bbox c[j];
  drawarrow p; label.@#(s,point 0.5 of p);
enddef;

beginfig(1);
  bboxmargin := 5pt;
  picture c[];

  c5 = thelabel(btex $\mathbb{R}$ etex, 80 left);
  c0 = thelabel(btex $M$     etex, origin);
  c1 = thelabel(btex $T^*M$  etex, 60 up);
  c2 = thelabel(btex $T(TM)$ etex, 120 up); 
  c3 = thelabel(btex $TM$    etex, 60 down);
  c4 = thelabel(btex $T(TM)$ etex, 120 down); 
  c6 = thelabel(btex $T^*(T^*M)$ etex, 80 up + 80 right); 
  c7 = thelabel(btex $T^*(TM)$   etex, 80 down + 80 right); 

  for i=0 upto 7: draw c[i]; endfor

  label_connect.rt   (0, 1, btex $X$ etex);
  label_connect.rt   (1, 2, btex $X_H$ etex);
  label_connect.rt   (0, 3, btex $X$ etex);
  label_connect.rt   (3, 4, btex $X_L$ etex);
  label_connect.top  (5, 0, btex $Y$ etex);
  label_connect.ulft (5, 1, btex $X\circ Y$ etex);
  label_connect.llft (5, 3, btex $X\circ Y$ etex);
  label_connect.lrt  (1, 6, btex $\theta_H$ etex);
  label_connect.urt  (3, 7, btex $\theta_L$ etex);

  path a,b; 
  a = center c[5] {up} .. {dir 30} center c[2] cutbefore bbox c[5] cutafter  bbox c[2];
  b = a reflectedabout(left,right);

  drawarrow a; label.ulft(btex $X_H\circ (X\circ Y)$ etex, point 0.6 of a);
  drawarrow b; label.llft(btex $X_L\circ (X\circ Y)$ etex, point 0.6 of b);

endfig;
\end{mplibcode}\]
Conversely, any associated supporting element recognizes other systems'
importance and the necessity for possible bidirectional logical relationship
approaches.  However, a service-oriented paradigm is further compounded when taking
into account the evolution of specifications over a given time period.  

\end{document}

相关内容