虚线框内的框

虚线框内的框

如何创建虚线框?对于图表的其余部分,我使用了矩阵,但在创建该框时遇到了麻烦。这是我使用的代码。

\begin{center}
$\begin{matrix}
$ x(n)$\rightarrow \boxed{T} \rightarrow \boxed{[ \hspace{0.25 cm}]^2} \rightarrow &\bigoplus& \rightarrow T[x(n)]$ $\\
$$&\uparrow&$ $\\
$$& 7&$
$ \end{matrix} $
\end{center}

答案1

两种方法:

在此处输入图片描述

  1. 第一个使用您的代码(稍作修改)和tikzmarkTikZ 中的库在图表中放置一些标记;然后使用这些标记来绘制虚线框(文档需要处理两次才能稳定)。

  2. 整个图表是使用 TikZ 绘制的;我使用了链式方法,但当然也可以使用其他方法。然后fit使用该库绘制虚线框。

代码:

\documentclass{article}
\usepackage{amsmath}
\usepackage{amssymb}
\usepackage{tikz}
\usetikzlibrary{tikzmark,chains,fit,positioning}

\begin{document}

\[
\begin{matrix}
 x(n)\rightarrow\tikzmark{start}\boxed{T} \rightarrow \boxed{[ \hspace{0.25 cm}]^2} \rightarrow & \bigotimes\tikzmark{end} & \rightarrow T[x(n)] \\
&\uparrow& \\
& 7&
\end{matrix}
\]

\begin{tikzpicture}[remember picture,overlay]
\draw[dashed]
  ([shift={(-8pt,-1cm)}]pic cs:start) 
    rectangle
  ([shift={(15pt,0.7cm)}]pic cs:end); 
\end{tikzpicture}

\[
\begin{tikzpicture}[
  start chain,
  every join/.style={->},
  shorten >= 5pt,
  shorten <= 5pt,
  node distance=0.8cm and 0.8cm
]
\node[on chain,join] {$x(n)$};
\node[draw,on chain,join] (T) {$T$};
\node[draw,on chain,join] {$[\hspace{0.25 cm}]^2$}; 
\node[draw,circle,on chain,join] (otimes) {$\times$};
\node[on chain,join] {$T[x(n)]$};
\node[below=of otimes] (seven) {$7$};
\draw[->] (seven) -- (otimes); 
\node[draw,inner xsep=12pt,dashed,fit={(T) (otimes) (seven)}] {};
\end{tikzpicture}
\]

\end{document}

答案2

当然,TiKZ 是一个更好的解决方案:

在此处输入图片描述

这里我使用一种简单的方法,即使用positioning库来自动放置图形元素。要创建虚线框,fit库仍然是最佳选择。

\documentclass{article}
\usepackage{amsmath,tikz}
\usetikzlibrary{fit,positioning,arrows}
\begin{document}

\begin{tikzpicture}[>=latex',node distance=.7cm]
\node(xn) {$x(n)$};
\node(bt) [right=of xn,draw]{$T$};
\node(sq) [right=of bt,draw]{$[\hspace{0.25cm}]^2$};
\node(ot) [circle,draw,right=of sq,inner sep=0pt]{$\times$};
\node(tx) [right=of ot]{$T[x(n)]$};
\node(sv) [below=of ot,outer sep=0pt]{7};
\node[draw,inner sep=7pt,dashed,fit={(bt) (ot) (sv)}] {};
\path[->](xn)edge(bt)
         (bt)edge(sq)
         (sq)edge(ot)
         (ot)edge(tx)
         (sv)edge(ot);
\end{tikzpicture}

\end{document}

相关内容