2

如何使用tikz. 如果可用的话,我可以通过使用多个输入来解决这个问题。但是,当只有两个输入可能时,我不能使用这种方法。这会导致标签重叠的问题。

\documentclass{article}
\usepackage{tikz}
\usetikzlibrary{circuits.logic.US}
\tikzstyle{branch}=[fill,shape=circle,minimum size=3pt,inner sep=0pt]

\begin{document}

\begin{tikzpicture}[circuit logic US]
  \node[xnor gate] at (0,0) (xnor) {};
  \node[label={left:$A$}] at ([xshift=-1cm]xnor.input 1) (A) {};
  \node[label={left:$B$}] at ([xshift=-1cm]xnor.input 2) (B) {};
  \draw (A) -- (xnor.input 1);
  \draw (B) -- (xnor.input 2);
  \node[label={right:$Y$}] at ([xshift=1cm]xnor.output) (Y) {};
  \draw (xnor.output) -- (Y);
\end{tikzpicture}
\end{document}

circuitikz由于某些原因,我无法使用包。在下图中,我不希望 A 和 B 相互重叠。我知道我可以上下移动级别,然后它们就不会相互重叠。

4

1 回答 1

1

在帮助自己阅读了PGF 手册的第 240 和 586 页后,我建议尝试

\node[label={[above] left:$A$}] at ([xshift=-1cm]xnor.input 1) (A) {};
\node[label={[below] left:$B$}] at ([xshift=-1cm]xnor.input 2) (B) {};

或者

\node[label={[above left] $A$}] at ([xshift=-1cm]xnor.input 1) (A) {};
\node[label={[below left] $B$}] at ([xshift=-1cm]xnor.input 2) (B) {};

另一种变化:

\node[label={[yshift=1mm] left:$A$}] at ([xshift=-1cm]xnor.input 1) (A) {};
\node[label={[yshift=-1mm] left:$B$}] at ([xshift=-1cm]xnor.input 2) (B) {};

这会产生以下输出(类似于前两个):

输出pdf截图

于 2015-10-14T17:21:05.460 回答