如何在表格的列之间画斜箭头?

如何在表格的列之间画斜箭头?

我想在表格单元格之间绘制一些简单的斜箭头。这两个单元格几乎可以位于表格中的任意位置。

例如给出下表:

无箭头的表格

我如何修改它以获得:

带箭头的表格

另一个带有垂直箭头的例子:

带有垂直箭头的表格

理想情况下,我想避免使用 Tikz,因为使用它tabular来绘制这种图表非常简单,但如果没有其他办法,那么我会接受 Tikz 解决方案。

该表的 MWE 代码:

\documentclass[a4paper,10pt]{article}
\usepackage[utf8]{inputenc}

\begin{document}

\begin{figure}[H]
\begin{tabular}{cccccccc}
((\textbf{N}   & $\Rightarrow$ & \textbf{N}) & $\Rightarrow$ & \textbf{N})& $\Longrightarrow$ & \textbf{N} &     \\
               &               &             &               &            &                   &     $q$      & $O$ \\
               &               &             &               &    $q$     &                   &              & $P$ \\
               &               &     $q$     &               &            &                   &              & $O$ \\
               &               &             &               &    $q$     &                   &              & $P$ \\
               &               &     $q$     &               &            &                   &              & $O$ \\
       $q$     &               &             &               &            &                   &              & $P$ \\
               &               &             &    $\vdots$   &            &                   &              &     \\
\end{tabular}
\end{figure}

\end{document}

答案1

使用\xymatrix来自xypic包(有关其使用的正确介绍,请参阅优秀的XY-pic 用户指南)。该\ar[d]命令按照可选参数指定的方向排版箭头,因此\ar[r]向右移动一个单元格,\ar[ur]向上移动一个单元格,向右移动一个单元格等等。您可以使用\ar@2{->}[r]表示双箭头,\ar@2/^/[u]使用\ar@2/_/[u]表示弯曲箭头。

第一个版本使用的代码与您的表格非常相似,第二个版本\Rightarrow用 的箭头替换所有的 s xy,第三个版本展示了斜箭头的使用。

\documentclass{article}

\usepackage[all]{xy}

\begin{document}
\xymatrix@=2pt{
((\textbf{N} & \Rightarrow & \textbf{N}) & \Rightarrow & \textbf{N})  & \Longrightarrow & \textbf{N} &  \\
             &             &             &             &              &                 &    q       & O\\
             &             &             &             &  q \ar[urr]  &                 &            & P\\
             &             & q \ar[urr]  &             &              &                 &            & O\\
             &             &             &             & q \ar[uuurr] &                 &            & P\\
             &             &  q \ar[urr] &             &              &                 &            & O\\
  q \ar[urr] &             &             &             &              &                 &            & P\\
             &             &             &    \vdots   &              &                 &            & }

\xymatrix@R=2pt{
((\textbf{N} \ar@2{->}[r] & \textbf{N}) \ar@2{->}[r] & \textbf{N}) \ar@2{->}[r] & \textbf{N} &  \\
                          &                          &                          &     q      & O\\
                          &                          &        q \ar[ur]         &            & P\\
                          &       q \ar[ur]          &                          &            & O\\
                          &                          &       q \ar[uuur]        &            & P\\
                          &       q \ar[ur]          &                          &            & O\\
          q \ar[ur]       &                          &                          &            & P\\
                          &        \vdots            &                          &            & }

\xymatrix@R=2pt{
(\textbf{N} \ar@2{->}[r] & \textbf{N} \ar@2{->}[r] & \textbf{N}) \ar@2{->}[r] & \textbf{N} \\
                         &                         &                          &     q      \\
                         &                         &        q \ar[ur]         &            \\
         q \ar[urr]      &                         &                          &            \\
        \ar@/^1pc/[u]0   &       q \ar[uur]        &                          &            \\
                         &      \ar@/^1pc/[u]1     &                          &            \\
                         &                         &          n\ar[uuuu]      &            \\
                         &                         &                          & n\ar[uuuuuu]}
\end{document}

在此处输入图片描述

编辑

居中xy图表很容易,您可以用(替代方案或任何适合您需要的方案) 将其包装xymatrix在显示数学环境中,也可以将其包装在 中。\[.....\]\begin{equation*}...\end{equation*}\centerline{...}

\documentclass{article}

\usepackage[all]{xy}

\begin{document}
\begin{figure}
\centerline{\xymatrix@R=2pt{
((\textbf{N} \ar@2{->}[r] & \textbf{N}) \ar@2{->}[r] & \textbf{N}) \ar@2{->}[r] & \textbf{N} &   \\
                          &                          &                          &     q      & O \\
                          &                          &        q \ar[ur]         &            & P \\
                          &       q \ar[ur]          &                          &            & O \\
                          &                          &       q \ar[uuur]        &            & P \\
                          &       q \ar[ur]          &                          &            & O \\
          q \ar[ur]       &                          &                          &            & P \\
                          &        \vdots            &                          &            & }}
\caption{A very interesting diagram with \texttt{centerline}}
\end{figure}

\begin{figure}
  \[
  \xymatrix@R=2pt{
  (\textbf{N} \ar@2{->}[r] & \textbf{N} \ar@2{->}[r] & \textbf{N}) \ar@2{->}[r] & \textbf{N} \\
                            &                         &                          &     q     \\
                            &                         &        q \ar[ur]         &           \\
            q \ar[urr]      &                         &                          &           \\
           \ar@/^1pc/[u]0   &       q \ar[uur]        &                          &           \\
                            &      \ar@/^1pc/[u]1     &                          &           \\
                            &                         &          n\ar[uuuu]      &           \\
                            &                         &                          & n\ar[uuuuuu]}
  \]
  \caption{A very interesting diagram with displaymath}
\end{figure}
\end{document}

对于不同长度的箭头,您可以使用\Rightarrow\Longrightarrow查看第一个例子。在矩阵中的单元格之间xypic绘制xymatrix箭头,因此为了获得不同长度的箭头,您将需要相距较远的单元格(这是通过空单元格实现的),但这会在图表的其余部分移动。

相关内容