开关框图

开关框图

我正在尝试使用pst-sigsys...

问题是,使用\ncstar宏只能将多个输入“合并”为 1,而不能相反......

style=Arrow我已经设法做到这一点,但是箭头(以及整个选项)很混乱......

  1. 有谁有技巧可以正确设置箭头吗?

  2. 如果我\input在文档中绘制此图,它将\psset{style=Arrow}与文档中的其他内容发生冲突,并且箭头的大小会有所不同(使用Arrow或经典 PSTricks 选项创建时)。有什么想法吗?

这是我使用的 MWE:

\documentclass[pstricks, float]{standalone}
\usepackage{graphicx}
\usepackage[table, usenames, dvipsnames]{xcolor}
\usepackage{pstricks, pst-node, pst-circ, pst-plot, pst-3dplot, pst-solides3d, pst-sigsys, pstricks-add, pst-eucl}


\begin{document}
\begin{pspicture}[labelangle=:U, showgrid=false](-5, -2.5)(3.5, 6)
    \psset{style = RoundCorners}%, arrowinset=0}
    \psfblock[gratioWh=2](-3.5, 1.75){SW}{\parbox[c]{2\psunit}{\centering Type}}
    \psfblock[gratioWh=2](0.25, 4.25){C1}{Case 1}
    \psfblock[gratioWh=2](0.25, 1.75){C2}{Case 2}
    \psfblock[gratioWh=2](0.25, -0.75){C3}{Case 3}

    \psset{style = Arrow}   
    \nclist{->}{ncline}{SW, C2}
    \ncdiagg[angleA=180, arm =.5]{C1}{SW}
    \ncdiagg[angleA=180, angleB=180]{C3}{SW}

\end{pspicture}

\end{document}

这段代码的结果是:

MWE 结果

答案1

psmatrix环境解决方案

\documentclass[pstricks,border=10pt]{standalone}
\usepackage{pst-node}
\def\PBox#1{\psframebox{\parbox[c][1cm][c]{2cm}{\centering#1}}}
\psset{framearc=0.1,arrowscale=1.5}

\begin{document}
\begin{psmatrix}[colsep=2,rowsep=0.8]
                      &  [name=C1]\PBox{Case 1} \\
[name=SW]\PBox{Type}  &  [name=C2]\PBox{Case 2} \\
                      &  [name=C3]\PBox{Case 1} 
\end{psmatrix}  
\ncline{->}{SW}{C2}
\ncdiagg[angleA=180, arm=.5]{->}{C1}{SW}
\ncdiagg[angleA=180, arm=.5]{->}{C3}{SW}

\end{document}

在此处输入图片描述

答案2

{->}正如赫伯特所指出的,通过反转命令中的 可以轻松解决这个问题\psdiagg

它给出了这个:MWE 结果

代码如下:

\documentclass[pstricks, float]{standalone}
\usepackage{graphicx}
\usepackage[table, usenames, dvipsnames]{xcolor}
\usepackage{pstricks, pst-node, pst-circ, pst-plot, pst-3dplot, pst-solides3d, pst-sigsys, pstricks-add, pst-eucl}


\begin{document}
\begin{pspicture}[labelangle=:U, showgrid=false](-5, -2.5)(3.5, 6)
    \psset{style = RoundCorners, style = Arrow}%, arrowinset=0}
    \psfblock[gratioWh=2](-3.5, 1.75){SW}{\parbox[c]{2\psunit}{\centering Type}}
    \psfblock[gratioWh=2](0.25, 3.5){C1}{Case 1}
    \psfblock[gratioWh=2](0.25, 1.75){C2}{Case 2}
    \psfblock[gratioWh=2](0.25, 0){C3}{Case 3}

    \nclist{->}{ncline}{SW, C2}
    \ncdiagg[angleA=180, arm =.75]{<-}{C1}{SW}   % Add {<-} here
    \ncdiagg[angleA=180, arm =.75]{<-}{C3}{SW}   % idem

\end{pspicture}

\end{document}

附言:我自己回答了这个问题,因为问题只出在箭头上,我不知道他是如何psmatrix解决的。不过所有的功劳都归功于赫伯特。

相关内容