添加从一个单元格到另一个单元格的线条

添加从一个单元格到另一个单元格的线条

我已经在 Google 上搜索了一些有关该主题的内容,但没有找到任何结果。

我正在尝试为我的大学课程写一些笔记。主题是“数值插值方法”。更准确地说,我必须建立一个“有限差分”表(这里有一个描述,大约在页面中间,您可以看到一个“三角形”的值表,这就是我必须做的),使用命令可以很容易地完成\multirow{n}*{text}

但是我需要添加一行来“链接”第一列的第一个单元格和第二列的第二个单元格。我该怎么做?

这是一个例子,您可以看到从一个单元格到另一个单元格的线条。

一个例子

答案1

下面是使用的示例pst-node(来自pstricks捆绑)和array(针对m{<len>}列类型)。节点通过 标记\pnode(<x>,<y>){<name>},线条使用 绘制\psline(<node1>)(<node2>)

在此处输入图片描述

\documentclass{article}
\usepackage{pst-node}% http://ctan.org/pkg/pstricks
\usepackage{array}% http://ctan.org/pkg/array
\begin{document}
\newcolumntype{L}{@{}l@{}}%
\[
  \begin{array}{*{5}{m{4em}}}
    $x$ & 
    $f$ & 
    I~diff. & 
    II~diff. & 
    III~diff. \\[\jot]
    $\begin{array}{L}
      x_0 \\ x_1 \\ x_3
    \end{array}$ &
    $\begin{array}{L}
      f(x_0)\pnode(0.5ex,0.6ex){fx0} \\ f(x_2) \\ f(x_3)\pnode(0.5ex,0.6ex){fx3}
    \end{array}$ &
    $\begin{array}{L}
      \pnode(-0.5ex,0.6ex){fx1L}f(x_1)\pnode(0.5ex,0.6ex){fx1R} \\ \pnode(-0.5ex,0.6ex){fx2L}f(x_2)\pnode(0.5ex,0.6ex){fx2R}
    \end{array}$ &
    $\begin{array}{L}
      \pnode(-0.5ex,0.6ex){fx0L}f(x_0)\pnode(0.5ex,0.6ex){fx0R} \\ \pnode(-0.5ex,0.6ex){fx12L}f(x_1)\pnode(0.5ex,0.6ex){fx12R}
    \end{array}$ &
    \pnode(-0.5ex,0.6ex){ans}$0.0333$
  \end{array}
\]
\psline(fx0)(fx1L)
\psline(fx3)(fx2L)
\psline(fx1R)(fx0L)
\psline(fx2R)(fx12L)
\psline(fx0R)(ans)
\psline(fx12R)(ans)
\end{document}

还可以更改线条样式和箭头。需要通过latex-> dvips->ps2pdf或直接使用进行编译。xelatex

答案2

解决方案\rnode

\documentclass{article}
\usepackage{pst-node,amsmath}
\begin{document}
\[
  \begin{psmatrix}[rowsep=-2pt,colsep=1cm]
x   & f & \text{I~diff.} & \text{II~diff.} & \text{III~diff.} \\[3mm]
x_0 & f(x_0)                             \\
    &        & f(x_1) & f(x_0)           \\
x_1 & f(x_2) &        &        & 0.0333  \\
    &        & f(x_2) & f(x_1)           \\
x_3 & f(x_3)                             \\
\end{psmatrix}
\]
\psset{arrows=->,nodesep=2pt,linecolor=red}
\ncline{2,2}{3,3} \ncline{6,2}{5,3} \ncline{3,3}{3,4}
\ncline{5,3}{5,4} \ncline{3,4}{4,5}\ncline{5,4}{4,5}
\end{document}

在此处输入图片描述

答案3

还没有 tikz 解决方案?我很幸运(纯文本格式):

\input tikz
\usetikzlibrary{matrix,chains,scopes,arrows}
\tikzpicture[every on chain/.style={join={by <<-o,blue!60}}]
  \matrix[matrix of math nodes,column sep=2em,row sep=-2ex] (mx) {
    % "mx" is now the name of our matrix, to which we can refer to later
    x   & f      & \hbox{I diff.} & \hbox{II diff.} & \hbox{III diff.} \\[2ex]
    x_0 & f(x_0) \\
        &        & f(x_1)         & f(x_0) \\
    x_1 & f(x_2) &                &                 & 0.0333 \\
        &        & f(x_2)         & f(x_1) \\
    x_2 & f(x_3) \\
  };
  {[start chain]
    \chainin (mx-4-5);
    {[start branch] \chainin (mx-3-4); \chainin (mx-3-3); \chainin (mx-2-2); }
    {[start branch] \chainin (mx-5-4); \chainin (mx-5-3); \chainin (mx-6-2); }
  }
\endtikzpicture
\bye

好像:
在此处输入图片描述

答案4

由于未提供 MWE,因此以下答案旨在获得所需的输出。我使用 PSTricks 进行定位并获取线段。

\documentclass[12pt]{report}
\usepackage{graphicx}
\usepackage{pstricks}

\begin{document}

\begin{pspicture*}(0,0)(15,-5)
\rput[tl](0,0){$x$}
\rput[tl](3,0){$f$}
\rput[tl](6,0){I diff}
\rput[tl](9,0){II diff}
\rput[tl](12,0){III diff}

\rput[tl](0,-1.1){$x_0$}
\rput[tl](3,-1){$f(x_0)$}

\rput[tl](0,-2.1){$x_1$}
\rput[tl](3,-2){$f(x_2)$}

\rput[tl](0,-3.1){$x_3$}
\rput[tl](3,-3){$f(x_3)$}

\rput[tl](6,-1.5){$f(x_1)-f(x_0)$}
\rput[tl](6,-2.5){$f(x_2)-f(x_1)$}

\rput[tl](9,-2){$0.0333$}

\psline[linecolor=blue](4,-1.3)(6,-1.7)
\psline[linecolor=blue](4,-3.3)(6,-2.7)

\psline[linecolor=blue](8.5,-1.8)(8.9,-2.2)
\psline[linecolor=blue](8.5,-2.8)(8.9,-2.2)
\end{pspicture*}

\end{document}

在此处输入图片描述

相关内容