镜像节点形状

镜像节点形状

我必须绘制一个图表,并希望将其放在一页纸上,因此我没有太多空间。因此,我必须“堆叠”一些门,但是如果我可以将逻辑门的输出放在左侧,将输入放在右侧,那将大有裨益。有没有办法翻转节点形状(标签&仍然需要以正确的方式读取)?

问题草图(左边是我想要的,右边是暂时的替代方案): 问题草图,左侧为最优,右侧为当前解决方案

(我没有花太多时间在简化的涂鸦上,但我认为它说明了问题,如何获得上部和大门)

编辑:就我而言,a3 input and就可以了,但我对解决方案而不是“变通方法”感到好奇。

平均能量损失:只是一个and门。问题是,我如何旋转输入和输出端(锚点的顺序input n可以颠倒)

\documentclass[12pt]{article}
\usepackage[english]{babel}
\usepackage[utf8x]{inputenc}
\usepackage{tikz}

\usetikzlibrary{circuits}
\usetikzlibrary{circuits.logic}
\usetikzlibrary{circuits.logic.IEC}
\begin{document}

\begin{tikzpicture} [circuit logic IEC,
every circuit symbol/.style={
logic gate IEC symbol color=black,
fill=blue!20,draw=blue,very thick}]

    \node (and)[and gate]{};
    \draw (and.output) -- ++ (1,0);
    \draw (and.input 1) -- ++ (-1,0);
    \draw (and.input 2) -- ++ (-1,0);

\end{tikzpicture}

\end{document}

答案1

好吧,这就是解决方案的想法。由于label选项只是一个包装器,append after command我们可以使用\tikzlastnode并提取适当的尺寸并&适当地放置(或使用的任何符号)。

代码

\documentclass[12pt,tikz,convert=false]{standalone}
\usepackage{tikz}
\usepackage{etoolbox}

\usetikzlibrary{circuits.logic.IEC}

% from: http://tex.stackexchange.com/a/106796/16595
\makeatletter
%\tikzset{anchor/.append code=\let\tikz@auto@anchor\relax}
\tikzset{inside/.code=\preto\tikz@auto@anchor{\pgf@x-\pgf@x\pgf@y-\pgf@y}}
\tikzset{
  point left/.append style={
    label/.expanded={[inside, very thick, inner sep=2\pgflinewidth]south:\pgfkeysvalueof{/pgf/and gate IEC symbol}},
    and gate IEC symbol=,
  }
}
\makeatother

\begin{document}

\begin{tikzpicture}[
  circuit logic IEC,
  every circuit symbol/.style={
    logic gate IEC symbol color=black,
    fill=blue!20,
    draw=blue,
    very thick
  }
]

  \node[and gate, point left] (and)[]{};
  \draw (and.output) -- ++ (-1,0);
  \draw (and.input 1) -- ++ (1,0);
  \draw (and.input 2) -- ++ (1,0);
\end{tikzpicture}
\end{document}

输出

在此处输入图片描述

相关内容