The hardware and bandwidth for this mirror is donated by METANET, the Webhosting and Full Service-Cloud Provider.
If you wish to report a bug, or if you are interested in having us mirror your free-software or open-source project, please feel free to contact us at mirror[@]metanet.ch.

Circuit diagrams

rpic ships a native library of 79 circuit elements — a from-scratch re-imagining of J. D. Aplevich’s celebrated circuit_macros, written in pure pic (no m4). Load it with circuits = TRUE, or from inside the source with copy "circuits"; both are equivalent:

library(rpic)

rpic_svg('A:(0,0); B:(2,0)
resistor(A,B)', circuits = TRUE)

rpic_svg('copy "circuits"
A:(0,0); B:(2,0)
resistor(A,B)')

All figures below were pre-rendered with the code shown.

Two-terminal elements

resistor, capacitor, inductor, battery, diode, led, fuse, sources, meters… — each draws between two named points, connecting wire included. A classic RLC loop:

rpic_svg('
SW:(0,0); NW:(0,1.2); NE:(2.4,1.2); SE:(2.4,0)
battery(SW,NW); resistor(NW,NE); capacitor(NE,SE); inductor(SE,SW)
dot at NW; dot at NE; dot at SE; dot at SW
', circuits = TRUE)
a rectangular circuit loop: battery on the left, resistor on top, capacitor on the right, inductor on the bottom, with junction dots
a rectangular circuit loop: battery on the left, resistor on top, capacitor on the right, inductor on the bottom, with junction dots

Labels — with TeX math

Circuit figures traditionally carry math labels; combine the library with texlabels:

rpic_svg('
A:(0,0); B:(1.4,0); C:(2.8,0)
resistor(A,B); "$R_1$" at 0.5 between A and B + (0, 0.35)
diode(B,C);   "$D_1$" at 0.5 between B and C + (0, 0.35)
', circuits = TRUE, texlabels = TRUE)
a resistor labelled R1 and a diode labelled D1 in series
a resistor labelled R1 and a diode labelled D1 in series

Logic gates

Gates take a center point and export their terminals as variables (gA_x/gA_y, gB_…, gY_…):

rpic_svg('
P:(0.5,0); and_gate(P)
Q:(1.9,0); nand_gate(Q)
R:(3.3,0); xor_gate(R)
"AND" at (0.5,-0.55); "NAND" at (1.9,-0.55); "XOR" at (3.3,-0.55)
', circuits = TRUE)
AND, NAND and XOR gate symbols side by side
AND, NAND and XOR gate symbols side by side

Multi-terminal devices

Transistors and op-amps also export their terminals as variables (gBase_*, gColl_*, gEmit_*), so wiring attaches precisely:

rpic_svg('
npn((0,0))
line left 0.3 from (gBase_x, gBase_y); "B" rjust at last line.end - (0.04, 0)
line up 0.25 from (gColl_x, gColl_y); "C" above at last line.end
line down 0.25 from (gEmit_x, gEmit_y); "E" below at last line.end
', circuits = TRUE)
an NPN transistor symbol with wires and labels on the base, collector and emitter
an NPN transistor symbol with wires and labels on the base, collector and emitter

In R Markdown / Quarto

Register the knitr engine once and write pic directly in chunks, with circuits (and texlabels, scale) as chunk options:

```{r, eval = FALSE}
rpic::rpic_register_knitr()
```

```{rpic, circuits=TRUE, scale=2}
A:(0,0); B:(2,0)
resistor(A,B)
```

The full element list lives in the library source; a gallery of 48 circuit_macros figures rendered by the same engine is in the engine repository.

These binaries (installable software) and packages are in development.
They may not be fully stable and should be used with caution. We make no claims about them.