Xor in Tex -- noch nicht fertig

This commit is contained in:
2023-06-04 20:31:47 +02:00
parent 007f69982e
commit f8021331d2

123
TeX/Xor.tex Normal file
View File

@@ -0,0 +1,123 @@
%!tikz editor 1.0
\documentclass{article}
\usepackage{tikz}
\usepackage[graphics, active, tightpage]{preview}
\usepackage{circuitikz}
\PreviewEnvironment{tikzpicture}
%!tikz preamble begin
\usetikzlibrary{circuits.logic.IEC, positioning}
\usepackage[utf8]{inputenc}
\makeatletter
\def\grd@save@target#1{%
\def\grd@target{#1}}
\def\grd@save@start#1{%
\def\grd@start{#1}}
\tikzset{
grid with coordinates/.style={
to path={%
\pgfextra{%
\edef\grd@@target{(\tikztotarget)}%
\tikz@scan@one@point\grd@save@target\grd@@target\relax
\edef\grd@@start{(\tikztostart)}%
\tikz@scan@one@point\grd@save@start\grd@@start\relax
\draw[minor help lines] (\tikztostart) grid (\tikztotarget);
\draw[major help lines] (\tikztostart) grid (\tikztotarget);
\grd@start
\pgfmathsetmacro{\grd@xa}{\the\pgf@x/1cm}
\pgfmathsetmacro{\grd@ya}{\the\pgf@y/1cm}
\grd@target
\pgfmathsetmacro{\grd@xb}{\the\pgf@x/1cm}
\pgfmathsetmacro{\grd@yb}{\the\pgf@y/1cm}
\pgfmathsetmacro{\grd@xc}{\grd@xa + \pgfkeysvalueof{/tikz/grid with coordinates/major step}}
\pgfmathsetmacro{\grd@yc}{\grd@ya + \pgfkeysvalueof{/tikz/grid with coordinates/major step}}
\foreach \x in {\grd@xa,\grd@xc,...,\grd@xb}
\node[anchor=north] at (\x,\grd@ya) {\pgfmathprintnumber{\x}};
\foreach \y in {\grd@ya,\grd@yc,...,\grd@yb}
\node[anchor=east] at (\grd@xa,\y) {\pgfmathprintnumber{\y}};
}
}
},
minor help lines/.style={
help lines,
step=\pgfkeysvalueof{/tikz/grid with coordinates/minor step}
},
major help lines/.style={
help lines,
line width=\pgfkeysvalueof{/tikz/grid with coordinates/major line width},
step=\pgfkeysvalueof{/tikz/grid with coordinates/major step}
},
grid with coordinates/.cd,
minor step/.initial=.2,
major step/.initial=1,
major line width/.initial=1pt,
}
\makeatother
%!tikz preamble end
\begin{document}
%!tikz source begin
\begin{tikzpicture}[scale=1.3, transform shape,circuit logic IEC]
\tikzstyle{branch}=[fill,shape=circle,minimum size=3pt,inner sep=0pt]
%\draw (0,0) to[grid with coordinates] (10,5);
% Koordinaten für Kreuzpunkte
\coordinate (A) at (0.95,2.75);
\fill (A) circle (1pt);
\coordinate (B) at (0.95,0.5);
\fill (B) circle (1pt);
\coordinate (C) at (0.55,2.75);
\fill (C) circle (1pt);
\coordinate (D) at (2.5,1.4);
\coordinate (E) at (0.75,0.5);
\fill (E) circle (1pt);
\coordinate (F) at (2.5,1.8);
% Eingangsvariablen
\node (x2) at (0.2,0.5) {b};
\node (x1) at (0.2,2.75) {a};
% Ausgangsvariable
\node (y) at (5,0.5) {out};
% Gatter
\node[nand gate] at (1.5,0.5) (n1) {};
\node[nand gate] at (1.5,2.75) (n2) {};
\node[nand gate] at (3.45,2.58) (n4) {};
\node[nand gate] at (3.45,0.666) (n3) {};
\node[nand gate] at (5,1.6) (n5) {};
% Verbindungen
\draw(x1) -- (A);
\draw(x2) -- (B);
\draw(A) |- (n2.input 1);
\draw(A) |- (n2.input 2);
\draw(B) |- (n1.input 1);
\draw(B) |- (n1.input 2);
\draw(n1.output) -- (n3.input 2);
\draw(n2.output) -- (n4.input 1);
\draw(C) |- (D);
\draw(D) |- (n3.input 1);
\draw(E) |- (F);
\draw(F) |- (n4.input 2);
\draw(n4.output) -- (n5.input 1);
% \draw(n1.output) -- (A);
% \draw(A) |- (n2.input 2);
% \draw(A) |- (n2.input 1);
% \draw(n2.output) -- (y);
% \draw(n1.output) to [short,l=\footnotesize{nandout}, -] (A);
\end{tikzpicture}
%!tikz source end
\end{document}