我想画这样的图:
(此图是从这篇研究论文)
a
和a*
或tb
和tb*
或tr
和等垂直对齐很重要tr*
(因为它们代表 DNA 的互补链,并且它们应该在图中垂直对齐才能有意义。)
我尝试了一些类似这样的事情:
$_{\xleftharpoondown[ta^*a^*tb^*b^*tr^*r^*tq^*]{}}^{\text{ }\xrightharpoonup{a\text{ }tb}\xrightharpoonup{b\text{ }tr}\xrightharpoonup{r\text{ }tq}}$
它给出:
关于上图的抱怨很少:
左鱼叉和右鱼叉之间的间隙太大。如何修复?
最重要的是 - 标签
a
等a*
必须对齐!如何做到?
另外还有福利(但不是必需的):
我想内联使用这样的图形(就像方程式一样)。目前我拥有的图形可以内联使用。我不确定图形是否可以tikz
内联使用。所以请演示如何内联使用此图形。
编辑:这stackchange 答案演示如何插入内联图形。因此,如果使用,tikz
奖励问题就得到了解决。请有人帮我用 画这个!tikz
tikz
编辑:如何在中间添加间隙?像这样:
标签未显示在上图中,但它们会在那里并且必须对齐。使用答案中的解决方案,我可以创建以下内容:
此处顶部的第一个箭头是错误的。它应该从 下方开始ta
,并结束于 下方a
,这样间隙就会暴露出来tb*
编辑:我可以解决它!以下是代码:
\begin{tikzcd}[DNA=odd]
ta\ar[below] & a & \, & b \ar[below] & tr & r \ar[below] & tq \\
ta^* & a^* & tb^* & b^* & tr^* & r^* & tq^* \ar[llllll, above]
\end{tikzcd}
结果是:
答案1
让我们从某件事开始吧。
\matrix
我们通过 TikZ-CD使用 TikZ 。DNA
样式设置了一些有助于我们对齐的值。
text depth
和键text height
确保所有节点具有相同的高度和深度,这有助于对齐其下方或上方的箭头。
说到箭头,有键below
和(不要与和above
混淆),它们可以从右到左在多个节点上方绘制鱼叉,或者从左到右在多个节点下方绘制鱼叉。/tikz/above
/tikz/below
该below
键r
默认使用,这意味着无需任何进一步的设置,它将始终强调当前节点和下一个节点r
。
llllll
箭头中的表示above
箭头将在左侧六列的节点上方结束。
顺便说一下,above
和below
键的设置below
样式应该总是从行尾开始使用,并且应该指定左侧目标。键above
最好用在行的第一个单元格中。
添加baseline = -axis_height
关键DNA
是让图片按照数学模式下矩阵通常的方式对齐。
看起来顶线上的节点对应该更靠近在一起,对于常规顶行,样式DNA*
可以与参数一起使用even
,或者odd
指定不应column sep
添加的位置。
对于更不规则的图表,您可以使用no csep
接受列列表的键,其后应column sep
为 0。
代码
\documentclass[varwidth]{standalone}
%\documentclass{article}
\usepackage{tikz-cd}
\tikzcdset{
no csep/.style={/utils/temp/.style={/tikz/column ##1/.append style={
column sep=+0pt}},/utils/temp/.list={#1}},
DNA/.style={
column sep={\the\arraycolsep}, row sep=+.3em, thick,
cells={inner xsep=+.15em, outer xsep=+.2em,
text depth=+0pt, text height=+.7\ht\strutbox}},
DNA*/.style={DNA, /tikz/every #1 column/.append style={column sep=+0pt}},
above/.style={
/tikz/arrows=-{Straight Barb[left]},
to path={(\tikztostart.north east) -- (\tikztotarget.north west)}},
below/.style={% implicitly one to the right
r, /tikz/arrows=-{Straight Barb[left]},
to path={(\tikztostart.south west) -- (\tikztotarget.south east)}}}
\begin{document}
\begin{tikzcd}[DNA*=even, cells={nodes={help lines,draw,text=black}}]
& a \ar[below] & tb & b \ar[below] & tr & r \ar[below] & tq \\
t & a^* & tb^* & b^* & tr^* & r^* & tq^* \ar[llllll, above]
\end{tikzcd}
\begin{tikzcd}[DNA, no csep={1,4,6}]
ta \ar[below] & a & tb & b \ar[below] & tr & r \ar[below] & tq \\
t & a^* & tb^* & b^* & tr^* & r^* & tq^* \ar[llllll, above]
\end{tikzcd}
\end{document}