如何让 TikZ 在 \tabularx 环境中工作?

如何让 TikZ 在 \tabularx 环境中工作?

我正在使用 Beamer 为会议制作一张海报。海报的一栏中有一些文字,我想在文字旁边放一个神经元图表样式的图形。图片可以毫无问题地嵌入其中。但是当我包含我的 TikZ 代码时,它不起作用。序言包括:

    \begin{block}{BlockTitle}

\begin{columns}
                \begin{column}{.80\textwidth}
\begin{itemize}
\item[] TEXT
\end{itemize}

                \end{column}
                \begin{column}{.20\textwidth}


\centering
 \begin{tabularx}{\linewidth}{r}

{\begin{tikzpicture}
  \matrix[mymx, amperstand replacement=\&] (mx) {
    \& C_1 \\
    |[plain]|  \&\& |[selroute]|E_1 \\
    \& C_2  \\
     |[plain]| \&\& |[plain]|\phantom{E} \\
    \& C_3 \\
  };
  {[route]

    \foreach \y in {1,3,5} {
      \draw (mx-\y-2) -- (mx-2-3);

  }

\end{tikzpicture}}
\\
\includegraphics[width=.80\linewidth]{PICTURE.jpg}
\\

 \end{tabularx}
                \end{column}
              \end{columns}
              \vskip-1ex


    \end{block}

序言部分包括:

  \usepackage{tikz}
\usetikzlibrary{scopes,matrix,positioning}
\tikzset{
  mymx/.style={matrix of math nodes,nodes=myball,column sep=4em,row sep=-1ex},
  myball/.style={draw,circle,inner sep=0pt},
  mylabel/.style={midway,sloped,fill=white,inner sep=1pt,outer sep=1pt,below,
    execute at begin node={$\scriptstyle},execute at end node={$}},
  plain/.style={draw=none,fill=none},
  sel/.append style={fill=green!10},
  prevsel/.append style={fill=red!10},
  route/.style={-latex,thick},
  selroute/.style={route,blue!50!green}
}

有人有什么建议吗?

答案1

您的示例并非同类中最好的。下次请自己编译一下,以确保其他人也可以编译和使用。

首先,您不需要将图片制成表格,因为它只是一张幻灯片,并且您可以随时调整列以匹配您想要的内容。

此外,您有没有节点的空单元格,但您为它们提供了节点选项,除非您添加选项,否则这些选项是不需要的nodes in empty cells

打开块并在其中放入两列。当您将\end{block}其放到正确位置时,错误会减少一次。

\documentclass[12pt]{beamer}
\usepackage{tabularx,tikz}
\usetikzlibrary{scopes,matrix,positioning}
\tikzset{
  mymx/.style={matrix of math nodes,nodes=myball,column sep=4em,row sep=-1ex},
  myball/.style={draw,circle,inner sep=0pt},
  mylabel/.style={midway,sloped,fill=white,inner sep=1pt,outer sep=1pt,below,
    execute at begin node={$\scriptstyle},execute at end node={$}},
  plain/.style={draw=none,fill=none},
  sel/.append style={fill=green!10},
  prevsel/.append style={fill=red!10},
  route/.style={-latex,thick},
  selroute/.style={route,blue!50!green}
}

\begin{document}
\begin{frame}
      \begin{columns}[c]
          \begin{column}{0.5\textwidth}
              \begin{block}{BlockTitle}
                \begin{itemize}
                \item Text
                \end{itemize}
            \end{block}
            \end{column}
            \begin{column}{.5\textwidth}
              \centering
                  \begin{tabularx}{\linewidth}{r}
                  {\begin{tikzpicture}
                  \matrix[mymx,nodes in empty cells, ampersand replacement=\&] (mx) {
                                         \& C_1 \& \\
                                |[plain]|\&     \& |[selroute]|E_1 \\
                                         \& C_2 \& \\
                                |[plain]|\&     \& |[plain]| \phantom{E}\\
                                         \& C_3 \& \\
                                };
                                {[route]
                                    \foreach \y in {1,3,5} {
                                      \draw (mx-\y-2) -- (mx-2-3);
                                   }
                             }
                  \end{tikzpicture}
                  }\\
                  \includegraphics[width=.80\linewidth]{dsotm.jpg}
                  \end{tabularx}
          \end{column}
      \end{columns}
\end{frame}
\end{document}

在此处输入图片描述

相关内容