58 lines
1.0 KiB
TeX
58 lines
1.0 KiB
TeX
\usetikzlibrary{arrows.meta}
|
|
\usetikzlibrary{shapes.geometric}
|
|
\usetikzlibrary{calc}
|
|
\usetikzlibrary{circuits.logic.US}
|
|
\usetikzlibrary{plotmarks}
|
|
|
|
|
|
\tikzset{
|
|
gate/.style = {
|
|
draw,
|
|
rectangle,
|
|
fill = white,
|
|
line width = 0.35mm
|
|
},
|
|
qubit/.style = {
|
|
fill = \ORMCbgcolor,
|
|
line width = 0.35mm
|
|
},
|
|
wire/.style = {
|
|
line width = 1
|
|
},
|
|
wirejoin/.style = {
|
|
fill = oblue,
|
|
draw = oblue,
|
|
line width = 1.5
|
|
},
|
|
wireijoin/.style = {
|
|
fill = white,
|
|
draw = oblue,
|
|
line width = 1.5
|
|
},
|
|
}
|
|
|
|
% Macros
|
|
|
|
|
|
% Do NOT put a semicolon after qubox,
|
|
% it gives a "character ; not found" error.
|
|
% LaTeX is odd.
|
|
\def\qubox#1#2#3#4#5{
|
|
% 1: point ne
|
|
% 2: point ne x offset
|
|
% 3: point sw
|
|
% 4: point sw x offset
|
|
% 5: label text
|
|
\draw[
|
|
line width = 1,
|
|
fill = white,
|
|
draw = black
|
|
]
|
|
([shift={(#2 + 0.1, 0.4)}] #1.center)
|
|
-- ([shift={(#2 + 0.1, -0.4)}] #1.center |- #3.center)
|
|
-- ([shift={(#4 - 0.1, -0.4)}] #3.center)
|
|
-- ([shift={(#4 - 0.1, 0.4)}] #1.center -| #3.center)
|
|
-- cycle
|
|
;
|
|
\node at ($([shift={(#2,0)}] #1)!0.5!([shift={(#4,0)}] #3)$) {#5};
|
|
} |