如何通过输入将 tikz 放置在表格内

如何通过输入将 tikz 放置在表格内
\begin{table}
\begin{tabular}{|l|ll|}
\hline
\begin{tabular}{@{}l@{}}
\input{diagrams/classifier.tex} \\
  VAE \\ 
  RNN 
\end{tabular}
&
diagram vrnn 
&
diagram vada 
\\ \hline
\end{tabular}
\end{table}

创建

在此处输入图片描述

然而

\input{diagrams/classifier.tex}
\begin{table}
\begin{tabular}{|l|ll|}
\hline
\begin{tabular}{@{}l@{}}
\input{diagrams/classifier.tex} \\
  VAE \\ 
  RNN 
\end{tabular}
&
diagram vrnn 
&
diagram vada 
\\ \hline
\end{tabular}
\end{table}

创建

在此处输入图片描述

正确显示,但代价是页面上其他位置的第二个图表。如何才能在不添加额外图像的情况下正确显示图表?我做错了什么吗?

以下是该图的代码:

\usetikzlibrary{positioning,arrows}
\begin{tikzpicture}
\begin{scope}[xshift=-7.5cm,yshift=-5cm,thick,
node distance=1.6cm,on grid,>=stealth',
comp/.style={circle,draw=black}]
\node [comp]  (input)                       {$x$};
\node [comp]  (latent)  [right=of input]    {$z$} edge [<-,very thick] (input);
\node [comp]  (copy)  [right=of latent]    {$L_y$} edge [<-, very thick](latent);
\end{scope}
\end{tikzpicture}

答案1

您的问题一点都不清楚,无论如何,让我猜一下(基于提供的图像)您的问题是什么。在此我定义了序言,我在其中加载了以下软件包:

  • tikz用于绘制图表
  • makecell用于写入多行单元格并在单元格中添加垂直空格
  • tabularx用于简单设置具有规定宽度的表格。选择\texwidth表格宽度确保表格从左文本边框开始,到右文本边框结束。
  • graphicx可以包含图像
  • adjustbox用于在表格单元格中定位包含的图形文件

我考虑两种情况:

  • 图像的代码是表格的一部分(或者可以使用 将其导入为 .tex 文件\input{<path>/<code name>}
  • 图像以 .pdf 或 .png 或 .jpg 文件形式存在,并通过\includegraphics[...]{...}宏包含在表中:

在此处输入图片描述

考虑两种情况的 MWE 是:

\documentclass{article}
\usepackage{tikz}
\usetikzlibrary{arrows.meta, chains, positioning}
\usepackage{makecell,tabularx}
\usepackage{graphicx}
\usepackage[Export]{adjustbox}

\begin{document}
    \begin{table}[ht]
\renewcommand\arraystretch{1.2}
\setcellgapes{5pt}
\makegapedcells
\begin{tabularx}{\textwidth}{|l|X|X|}
    \hline
% \input{<path>/<code name>}
% or put image code directly here
\begin{tikzpicture}[baseline,
node distance = 1.6cm, on grid,
  start chain = going right,  
  comp/.style = {circle,draw=black,on chain},
every path/.style = {thick, -Stealth}
                    ]
\node [comp]  (input)   {$x$};
\node [comp]  (latent)  {$z$};
\node [comp]  (copy)    {$L_y$} edge [<-, very thick](latent);
\draw   (input)  edge (latent) 
        (latent)  to  (copy);
\end{tikzpicture}
                        & diagram vrnn  &   diagram vada    \\
\makecell[l]{VAE\\ RNN} &               &                   \\
    \hline
\end{tabularx}
    \end{table}

    \begin{table}[ht]
\renewcommand\arraystretch{1.3}
\begin{tabularx}{\textwidth}{|l|X|X|}
    \hline
\includegraphics[width=38mm, height=11mm,
                 margin=0pt 2pt, valign=t]{example-image}
                        & diagram vrnn  &   diagram vada    \\
\makecell[l]{VAE\\ RNN} &               &                   \\
    \hline
\end{tabularx}
    \end{table}
\end{document}

如果我的猜测正确,请告诉我。如果不正确,请澄清您的问题。最好的方法是提供完整的小文档(可以基于我的答案),以显示您的问题。

相关内容