我在用signalflowdiagram
我从这里http://www.texample.net/tikz/examples/signal-flow-building-blocks/。然后我将其安装在我的texmf-local
文件夹中。树如下所示:
/usr/local/texlive/texmf-local
tex
├── latex
│ ├── local
│ ├── signalflowlibrary
│ │ ├── macros.sty
│ │ ├── signalflowdiagram.sty
│ │ ├── tikzlibrarysignalflowarrows.code.tex
│ │ ├── tikzlibrarysignalflowblocks.code.tex
│ │ ├── tikzlibrarysignalflowdiagram.code.tex
│ │ └── tikzlibrarysignalflowoperators.code.tex
...
将必要的文件复制到如上所示的树后,我运行$ mktexlsr
以确保 LaTeX 可以找到新的自定义包。
我可以确认它正常工作,因为此代码:
\documentclass[crop,tikz]{standalone}
\usepackage{signalflowdiagram}
\begin{document}
\begin{signalflow}{Block diagram}
\begin{scope}
\node[input] (in) {$R(s)$};
\node[filter] (plant) [right from=in] {$G(s)$};
\path[r>] (in) -- (plant);
\end{scope}
\end{signalflow}
\end{document}
产生这张图片:
问题
现在我想使用 来定位节点\matrix
。首先,我将展示如何开始\matrix
工作,没有什么特别的:
\documentclass[crop,tikz]{standalone}
\usepackage{tikz}
%\usepackage{signalflowdiagram}
\usetikzlibrary{matrix}
\begin{document}
\begin{tikzpicture}
\matrix (m) [matrix of nodes]
{%
1 & 2 & 3 \\
4 & 5 & 6 \\
};
\end{tikzpicture}
\end{document}
所以我明白了:
这次,我想使用 中的预定义块signalflowdiagram
,因此我取消注释了 行。我的代码现在如下所示。请注意上面第一个示例中显示的和环境\usepackage{signalflowdiagram}
的使用。signalflow
scope
\documentclass[crop,tikz]{standalone}
\usepackage{tikz}
\usepackage{signalflowdiagram}
\usetikzlibrary{matrix}
\begin{document}
\begin{signalflow}{Block diagram}
\begin{scope}
\matrix (m) [matrix of nodes]
{%
1 & 2 & 3 \\
4 & 5 & 6 \\
};
\end{scope}
\end{signalflow}
\end{document}
什么都没有出现:o 我甚至还没有开始使用预定义的块signalflowdiagram
。
即使使用普通的也tikzpicture
什么也画不出来:
\documentclass[crop,tikz]{standalone}
\usepackage{tikz}
\usepackage{signalflowdiagram}
\usetikzlibrary{matrix}
\begin{document}
\begin{tikzpicture}
\matrix (m) [matrix of nodes]
{%
1 & 2 & 3 \\
4 & 5 & 6 \\
};
\end{tikzpicture}
\end{document}
共同点
只要\usepackage{signalflowdiagram}
存在,一切\matrix
就会消失。
有没有办法开始signalflowdiagram
使用\matrix
?我试过侵入signalflowdiagram
代码文件、禁用新环境的定义等,但无济于事。
答案1
根据 @marmot 的评论,样式文件本身很笨重。所以我自己在这里修改了一下:https://github.com/kitmonisit/signalflow
我将引用其中的例子:
\documentclass[crop,tikz]{standalone}
\usepackage{signalflowdiagram}
\usetikzlibrary{matrix}
\begin{document}
\begin{tikzpicture}
[every node/.style={anchor=center}]
\matrix (m) [matrix of nodes,
minimum width=7.5in,
row sep=10mm,
column sep=16mm]
{%
% row 0
\node[input] (in) {$R(s)$}; &
\node[adder] (add) {}; &
\node[block] (plant) {$G(s)$}; &
\node[node] (tap) {}; &
\node[output](out) {$C(s)$}; \\
% row 1
&
&
\node[block] (fb) {$H(s)$}; &
&
& \\
};
\path[r>] (in) -- (add);
\path[r>] (add) -- (plant);
\path[r] (plant) -- (tap);
\path[r>] (tap) -- (out);
\path[r>] (tap) |- (fb);
\path[r>] (fb) -| (add);
\end{tikzpicture}
\end{document}