A compiler from quantum circuits to graphical representations.
Free software: GNU GPLv3 license
Documentation: ⟨q|pic⟩ manual
Features
The ⟨q|pic⟩ language provides a concise, readable, ASCII format for describing quantum circuits. qpic converts ⟨q|pic⟩ files to the scientific paper standard of LaTeX using TikZ graphic commands.
Automatic placement of circuit components.
Human readable.
Input ⟨q|pic⟩ syntax can be produced by other scripts.
Can be included in LaTeX documents in TikZ or PDF form.
⟨q|pic⟩ produces high quality graphics quickly. The following graphic illustrating part of a ripple carry adder
is compiled from the ⟨q|pic⟩ code
a W a a\oplus{c}
b W b b\oplus{c}
c W c \mbox{MAJ}(a,b,c)
a b c G \rotatebox{90}{MAJ}
=
+b c
+a c
a b +c
Examples
Basic quantum teleportation circuit
This classic diagram derives from the following code:
a W |\psi\rangle
b c W |\beta_{00}\rangle<
c W |\psi\rangle
a +b
a H
a b M
c X b:owire
c Z a:owire
Decorated quantum teleportation circuit
⟨q|pic⟩ has additional features for commenting or highlighting parts of a circuit.
This diagram derives from the following:
PREAMBLE \providecommand{\K}[1]{\left|#1\right\rangle} # Define ket command
a W \K{\phi} [x]
x1 W type=o # Empty wire used for positioning
x0 W style=dashed # Dividing line
x2 W type=o # Empty wire used for positioning
b0 W \K{0} [y]
b1 W \K{0} \K{\phi}
VERTICAL 0
b1 H % $\K{\phi}\K{0}(\K{0}{+}\K{1})$
+b0 b1 % $(\alpha\K{0}{+}\beta\K{1})(\K{00}{+}\K{11})$
b0 x1 PERMUTE
+b0 a %$\scriptstyle\alpha\K{0}(\K{00}{+}\K{11}){+}\beta\K{1}(\K{10}{+}\K{01})$
a H % $\sum_{x,y}\K{xy}(\alpha\K{y}{+}(-1)^x\beta\K{\bar{y}})$
a b0 M % $[xy](\alpha\K{y}{+}(-1)^x\beta\K{\bar{y}})$
x1 x2 a b0 PERMUTE
+b1 b0 % $[xy](\alpha\K{0}{+}(-1)^x\beta\K{1})$
b1 a % $[xy](\alpha\K{0}{+}\beta\K{1})$
# Colored boxes
b0 b1 x1 x2 @ 0 2 fill=green style=rounded_corners %% $[qq]$ Quantum entanglement
a b0 x2 x1 @ 6 6 fill=blue style=rounded_corners %% \hspace{.5cm}$2[c\rightarrow c]$ Classical channel
For an explanation of qpic commands and more examples, see the official documentation.
Installation
Recommended installation method is pip. Current versions of Python 2 and 3 include pip. For older versions, use pip installation instructions.
pip install qpic
If you do not have permission to install or wish to install qpic as a single user, add $HOME/.local/bin to your $PATH and install using
pip install --user qpic
Uninstall
To uninstall qpic simply type
pip uninstall qpic
Stand alone script
To try out the basic script without installation:
Download the file qpic.py. (located in the qpic directory)
Run python qpic.py your_file.qpic > your_file.tex.
Running ⟨q|pic⟩
qpic generates TikZ code by default. qpic can also generate pdf files using pdflatex and png files using convert (from ImageMagic).
Create TikZ file diagram.tikz
qpic -f tikz diagram.qpic
Create PDF file diagram.pdf
qpic -f pdf diagram.qpic
Create PNG file diagram.png
qpic -f png diagram.qpic
Using ⟨q|pic⟩ with LaTeX
Including graphics in LaTeX documents
There are two main methods for including ⟨q|pic⟩ in LaTeX documents. Each has its advantage in certain areas. They are:
Include TikZ code directly
Include as a PDF graphic
To write ⟨q|pic⟩ code directly inside a .tex file, see the inline LaTeX guide.
TikZ
qpic my_graphic.qpic produces a TikZ file named my_graphic.tikz, which can be directly included into a normal LaTeX document. You will need to add
\usepackage{tikz}
\usetikzlibrary{decorations.pathreplacing,decorations.pathmorphing}
to the preamble of your paper. Graphics can then be included with the command:
\input{filename.tikz}
In some cases, additional TeX commands may be required in the preamble. (These will be in the .tikz file preceded by %!.) See the full ⟨q|pic⟩ documentation for when additional packages are required.
qpic -f pdf my_graphic.qpic will produce a PDF file named my_graphic.pdf. This graphic can be viewed directly with a PDF viewer. To insert the graphic into a LaTeX document, add the following line to the preamble:
\usepackage{graphicx}
and include the file using the command:
\includegraphics{my_graphic.pdf}
This method requires the document to be processed with pdfLaTeX. For further information see the full ⟨q|pic⟩ documentation.
History
1.1.1 (2026-09-11)
Inline LaTeX qpic environment guide and qpic-latex.sty.
Ignore .venv/ directories.
1.1.0 (2023-11-13)
Update for Python 3.11+
1.0.3 (2022-11-16)
Handle deprecation of collections.Mapping in Python 3.10+
1.0.2 (2016-04-20)
Fix Python3 unicode bug.
1.0.1 (2016-03-18)
Convert README to ReStructuredText for PyPi.
1.0.0 (2016-03-09)
First release on PyPI.
Metadata
Release files for qpic 1.1.1
For a detailed explanation of source distributions (sdists) and built distributions (wheels), please see the package formats documentation.
Source distribution (sdist)
| File | Size | Uploaded | |
|---|---|---|---|
| qpic-1.1.1.tar.gz | 186.9 kB | Details |
Built distribution (wheel)
| File | Interpreter | ABI | Platform | Reset |
|---|---|---|---|---|
| qpic-1.1.1-py2.py3-none-any.whl | Python 2, Python 3 | none | any | Details |
Total release size: 262.1 kB
Release files / qpic-1.1.1.tar.gz
| Download URL | qpic-1.1.1.tar.gz |
|---|---|
| Size | 186.9 kB |
| Tags | Source |
|
SHA-256 checksum How to use checksums |
e81dc0cdf745a696b602473fae9ecbe75d22213b3d92d7e9602b04070e3480c2
|
|
BLAKE2b-256 checksum How to use checksums |
cceee700c09466ef44c83030c66c0cde55e02a93c88e8ee1b8aa33363d937a3b
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
No |
| Uploaded via |
twine/7.0.0 CPython/3.12.3
|
Release files / qpic-1.1.1-py2.py3-none-any.whl
| Download URL | qpic-1.1.1-py2.py3-none-any.whl |
|---|---|
| Size | 75.2 kB |
| Tags | Python 2 Python 3 |
|
SHA-256 checksum How to use checksums |
5a86da082ae490e9e90b5263b9ce3df01173e304d6e455f3c4db575c993b35af
|
|
BLAKE2b-256 checksum How to use checksums |
f125edaff9493f6005757f7789918c530256ca32b05b33e72e71e0118cfdbe1c
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
No |
| Uploaded via |
twine/7.0.0 CPython/3.12.3
|