DNA 链位移:如何在一个鱼叉上画出多个鱼叉,使它们的标签对齐?

DNA 链位移:如何在一个鱼叉上画出多个鱼叉,使它们的标签对齐?

我想画这样的图:

在此处输入图片描述

(此图是从这篇研究论文

aa*tbtb*tr和等垂直对齐很重要tr*(因为它们代表 DNA 的互补链,并且它们应该在图中垂直对齐才能有意义。)

我尝试了一些类似这样的事情:

$_{\xleftharpoondown[ta^*a^*tb^*b^*tr^*r^*tq^*]{}}^{\text{      }\xrightharpoonup{a\text{ }tb}\xrightharpoonup{b\text{ }tr}\xrightharpoonup{r\text{ }tq}}$

它给出:

在此处输入图片描述

关于上图的抱怨很少:

  1. 左鱼叉和右鱼叉之间的间隙太大。如何修复?

  2. 最重要的是 - 标签aa*必须对齐!如何做到?

另外还有福利(但不是必需的):

我想内联使用这样的图形(就像方程式一样)。目前我拥有的图形可以内联使用。我不确定图形是否可以tikz内联使用。所以请演示如何内联使用此图形。

编辑:这stackchange 答案演示如何插入内联图形。因此,如果使用,tikz奖励问题就得到了解决。请有人帮我用 画这个!tikztikz

编辑:如何在中间添加间隙?像这样:

在此处输入图片描述

标签未显示在上图中,但它们会在那里并且必须对齐。使用答案中的解决方案,我可以创建以下内容:

在此处输入图片描述

此处顶部的第一个箭头是错误的。它应该从 下方开始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

belowr默认使用,这意味着无需任何进一步的设置,它将始终强调当前节点和下一个节点r

llllll箭头中的表示above箭头将在左侧六列的节点上方结束。

顺便说一下,abovebelow键的设置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}

输出

在此处输入图片描述

相关内容