%20bei%20Verwendung%20in%20einer%20Klasse.png)
Ich bin ein Anfänger bei Tikz und habe versucht, ein gut aussehendes Master-Slave-D-Flipflop zu erstellen, das ich in meiner Abschlussarbeit verwenden möchte. Das gute Ergebnis sieht so aus:
Der zum Generieren des obigen Bildes verwendete Code lautet wie folgt:
\documentclass{article}
\usepackage{tikz}
\usepackage{verbatim}
\usepackage[active,tightpage]{preview}
\usetikzlibrary{positioning, arrows, calc, circuits.logic.US}
\PreviewEnvironment{tikzpicture}
\setlength\PreviewBorder{10pt}%
\renewcommand*{\familydefault}{\sfdefault}
\begin{document}
\tikzstyle{tg} = [rectangle, draw, text centered, text width=0.75em, minimum height=1em, thick, inner sep=0pt]
\tikzstyle{latch} = [rectangle, draw, text centered, text width=7.75em, minimum height=13em, thick, dashed, rounded corners, fill=gray!8]
\begin{tikzpicture}[scale=1, every node/.style={transform shape}, circuit logic US, huge circuit symbols]
\node [not gate, fill=gray!20, thick] (notd) {};
\node [latch] at (3.725,-1.5) (master) {};
\node [latch] at (7.825,-1.5) (slave) {};
\node [not gate,right=7em of notd.output, fill=gray!20, thick] (master1) {};
\node [not gate,below=8em of master1.center, rotate=180, fill=gray!20, thick] (master2) {};
\node [not gate,right=8em of master1.output, fill=gray!20, thick] (slave1) {};
\node [not gate,below=8em of slave1.center, rotate=180, fill=gray!20, thick] (slave2) {};
\node [not gate,right=3em of slave1.output, fill=gray!20, thick] (notq) {};
\node [tg, right=2em of notd] (tg1) {};
\node [above=0.05 of tg1.north west, inner sep=0pt] (tg1nw) {};
\node [above=0.05 of tg1.north east, inner sep=0pt] (tg1ne) {};
\node [below=0.05 of tg1.south west, inner sep=0pt] (tg1sw) {};
\node [below=0.05 of tg1.south east, inner sep=0pt] (tg1se) {};
\node [circle, above=0.18em of tg1.north, draw=black,thick,circle,inner sep=0pt, minimum size=0.25em] (tg1input) {};
\draw [thick] (tg1nw.center) -- (tg1ne.center);
\draw [thick] (tg1sw.center) -- (tg1se.center);
\node [tg, right=2.9em of master1.output] (tg2) {};
\node [above=0.05 of tg2.north west, inner sep=0pt] (tg2nw) {};
\node [above=0.05 of tg2.north east, inner sep=0pt] (tg2ne) {};
\node [below=0.05 of tg2.south west, inner sep=0pt] (tg2sw) {};
\node [below=0.05 of tg2.south east, inner sep=0pt] (tg2se) {};
\node [circle, below=0.18em of tg2.south, draw=black,thick,circle,inner sep=0pt, minimum size=0.25em] (tg2input) {};
\draw [thick] (tg2nw.center) -- (tg2ne.center);
\draw [thick] (tg2sw.center) -- (tg2se.center);
\node [left=1em of notd.input] (d) {D};
\draw [thick] (d) -- (notd.input);
\node [right=1em of notq.output] (q) {Q};
\draw [thick] (q) -- (notq.output);
\draw [thick] (notd.output) -- (tg1.west);
\draw [thick] (tg1.east) -- (master1.input);
\draw [thick] (master1.output) -- (tg2.west);
\draw [thick] (tg2.east) -- (slave1.input);
\draw [thick] (slave1.output) -- (notq.input);
\draw [thick] (master1.output) -- ++(0.5,0) |- (master2.input);
\draw [thick] (master2.output) -- ++(-0.5,0) |- (master1.input);
\draw [thick] (slave1.output) -- ++(0.5,0) |- (slave2.input);
\draw [thick] (slave2.output) -- ++(-0.5,0) |- (slave1.input);
\node [above=1em of tg1.north] (tg1in) {CLK};
\node [below=1em of tg1.south] (tg1inb) {$\overline{\mbox{CLK}}$};
\node [above=1em of tg2.north] (tg2in) {CLK};
\node [below=1em of tg2.south] (tg2inb) {$\overline{\mbox{CLK}}$};
\draw [thick] (tg1in) -- (tg1input.north);
\draw [thick] (tg1inb) -- ($(tg1se)!0.5!(tg1sw)$);
\draw [thick] (tg2in) -- ($(tg2ne)!0.5!(tg2nw)$);
\draw [thick] (tg2inb) -- (tg2input.south);
\node [circle, below=2em of master2.south, draw=black,thick,circle,inner sep=0pt, minimum size=0.5em] (mastercircle) {};
\node [circle, above=2em of slave2.north, draw=black,thick,circle,inner sep=0pt, minimum size=0.5em] (slavecircle) {};
\node [above=3em of master2.north] (clkm1) {CLK};
\node [below=3em of master2.south] (clkm2) {$\overline{\mbox{CLK}}$};
\draw [thick] (clkm1) -- (master2.south);
\draw [thick] (clkm2) -- (mastercircle.south);
\node [above=3em of slave2.north] (clks1) {CLK};
\node [below=3em of slave2.south] (clks2) {$\overline{\mbox{CLK}}$};
\draw [thick] (clks1) -- (slavecircle.north);
\draw [thick] (clks2) -- (slave2.north);
\node [above=0.1em of master.north] {Master};
\node [above=0.1em of slave.north] {Slave};
\end{tikzpicture}
\end{document}
Wenn ich jedoch versuche, den Tikz-Code in mein Abschlussarbeitsdokument einzufügen, scheinen die Koordinaten für die „Master/Slave“-Boxen irgendwie versetzt zu sein. Dies ist die auffälligste Änderung, aber es gibt auch andere kleine Änderungen, wie z. B. dass die Inverterringe in den Latches sowie an den Übertragungsgattern leicht versetzt sind. So sieht die Ausgabe in meiner Abschlussarbeit aus:
Was könnte der Grund dafür sein? Ich nehme beim Einfügen in meine Abschlussarbeit keine Skalierung vor und es sollte dasselbe sein. Die Abschlussarbeit verwendet eine benutzerdefinierte Dokumentklasse, was meiner Meinung nach zu Problemen führen könnte. Wie kann dies in diesem Fall vermieden werden?
Antwort1
Wie Gonzalo Medina in den obigen Kommentaren feststellt, bestand der Fehler darin, dass ichemum die Blöcke zu positionieren. Ich wusste nicht, dass dies eine Größenoption war, die relativ zur aktuellen Schriftart ist, und da die Dokumente unterschiedliche Schriftarten hatten, wurden die Abbildungen auf jeder Seite anders dargestellt.
Ändern Sie die Werte in einen absoluten Parameter wiemmProblem gelöst.