summaryrefslogtreecommitdiff
path: root/Master/texmf-dist/doc/latex/circuit-macros/examples/dpv/examplesDPVs.htmx
diff options
context:
space:
mode:
Diffstat (limited to 'Master/texmf-dist/doc/latex/circuit-macros/examples/dpv/examplesDPVs.htmx')
-rw-r--r--Master/texmf-dist/doc/latex/circuit-macros/examples/dpv/examplesDPVs.htmx741
1 files changed, 741 insertions, 0 deletions
diff --git a/Master/texmf-dist/doc/latex/circuit-macros/examples/dpv/examplesDPVs.htmx b/Master/texmf-dist/doc/latex/circuit-macros/examples/dpv/examplesDPVs.htmx
new file mode 100644
index 00000000000..7ad5f84e9f2
--- /dev/null
+++ b/Master/texmf-dist/doc/latex/circuit-macros/examples/dpv/examplesDPVs.htmx
@@ -0,0 +1,741 @@
+<!doctype html public "-//w3c//dtd html 4.0 transitional//en">
+<HTML>
+<HEAD>
+<meta http-equiv="Content-Type" content="text/html; charset=ISO-8859-1">
+<meta http-equiv="Content-Style-Type" content="text/css">
+<!--meta http-equiv="Content-Script-Type" content="text/javascript"-->
+<TITLE>SVG Examples: Circuit_macros Version XXX</TITLE>
+<meta name="keywords" content="HTML"
+content='Circuit elements, basic circuits, logic circuits and other diagrams,
+electric circuits, resistor, capacitor, inductor, diode, sources, amplifier,
+integrator, fuse, switch, antenna, opamp, transformer, relay, contact, jack,
+plug, FET, UJT, thyristor, bipolar transistor, nport, windings, timer,
+optical isolator, rectifier, bistable, oscillator, CMOS, MOSFET, power supply,
+NAND gate, controlled source, synchronous machine, digital circuit, signal-flow
+graph, latch, decoder, flipflop, full adder, logic diagram, crossbar switch,
+dimensioning, control system, graph, RGB colors, recursion, binary tree,
+flowcharts, picture overlay, ASME Y14.5' >
+
+<style type="text/css">
+</style>
+<link rel="shortcut icon" href="../Circuit_macros.ico" type="image/x-icon" />
+</HEAD>
+
+<!-- m4 macros: ------------------------------------------------------------
+define(`ifinstr',`ifelse(`$2',,`$1',index(`$1',`$2'),-1,
+ `ifinstr(shift(shift(shift($@))))',`$3')')
+define(`m4inx',`define(`m4x',ifdef(`m4x',`incr(m4x)',1))m4x')
+
+define(`m4tt',`<g style="font-family:monospace">')
+
+ dnl cfig( svg filename, [textfile], [y], [OBJECT] )
+define(`cfig',`
+<p>
+ dnl The object type is needed for the overlay
+ dnl example
+ifelse(`$4',OBJECT,
+`<object data="$1.svg" type="image/svg+xml" class="img"></object>',
+`<IMG SRC="$1.svg">')
+ dnl
+ifelse(`$2',,,`<br><br>
+Fig. m4inx (<a
+ href="$1.txt" TYPE="text/plain" TARGET="_blank" alt="$1">$1.m4</a>):
+`$2' changecom(,)&`#'8194;changecom(`#')')
+</p>
+ifinstr(`$3',y,,`<hr>')')
+
+--------------------------------------------------------------------- -->
+
+<BODY>
+<table cellpadding="0" cellspacing="0"
+ width="700px" border="0" align="center" ><tr><td>
+
+<H2>SVG Circuit_macros examples, Version XXX</H2>
+
+<A HREF="../../index.html">Home</A>
+&#62;
+<A HREF="examples.html">Examples</A>
+&#62;
+<A HREF="examplesDPVs.html">dpv</A>
+
+<hr>
+
+<p>
+ This file shows a few diagrams in .svg format produced without the use of
+ LaTeX or equivalent.
+The diagrams have been adapted from the Circuit_macros
+examples in order to test the svg output of dpic.
+To generate the equivalent for all the examples, go to the
+examples/dpv directory and type "make". Typing "make examplesDPVs.html"
+produces the selection shown here.
+</p>
+<p>
+Generating svg line
+art is straightforward but formatting text is not because TeX, LaTeX,
+and related word processors do not produce svg directly. Either
+less-sophisticated text formatting must be employed for svg or an
+ <A HREF="https://en.wikibooks.org/wiki/LaTeX/Export_To_Other_Formats">
+ intermediate format</A>
+such as pdf can be
+produced, followed by an additional processing step to convert to svg.
+Two possibilities for the latter are
+ <A HREF="https://www.ctan.org/pkg/dvisvgm">dvisvgm --pdf</A>
+and
+ <A HREF="https://github.com/dawbarton/pdf2svg">pdf2svg</A>.
+However, many circuit and similar diagrams intended for the web do not
+require sophisticated labels; the examples shown below might
+be representative. Compare them to those in
+ <A HREF="examples.html" TARGET="_blank">examples.html</A>
+</p>
+<p>
+ Click on the link to view the source of each diagram.
+</p>
+<hr>
+<p>
+There are other issues:
+<ul>
+ <li> The default font face is not specified in all of these diagrams but is
+ inherited from the enclosing document, so the appearance of labels can
+ differ depending on the browser. Some of these diagrams set the font at
+ the beginning of the diagram source.
+ <li> Diagrams such as these contain text labels
+ that have to be treated differently from the LaTeX-compatible versions;
+ for example,
+ apparently there is no direct way to know the bounding box of arbitrary svg
+ text.
+ <!-- text, as discussed
+ <a href="http://www.aditus.nu/jpgraph/jpg_svg.php" TARGET="_blank">here,</a>
+ for example. -->
+ Consequently, text placement is approximate and may require
+ manual adjustment.
+ <li> Rather than patch the original source files for svg production,
+ edited copies have been used. The configuration file svg.m4 read by
+ m4 prior to libcct.m4 contains the following macros defined for svg.
+ Others could be defined to exercise some of the media capabilties
+ of svg. They are subject to change:
+ <ul>
+ <li>
+ m4tt`'svg_font(</g>font-face,nominal size[:dptextratio],textoffset,
+ dpic commands`'m4tt)</g>:
+ Change font face, size, textratio and dpic textoffset parameters.
+ Change font face and dpic m4tt`'textht</g>, m4tt`'dptextratio</g>,
+ and m4tt`'textoffset</g> parameters.
+ If arg4 is blank, the font is changed and
+ requires m4tt`'command "&lt;/g&gt;"</g> to cancel the font change.
+ <br>
+ Note:
+ Nominal height = text height in drawing units; actual height =
+ nominal ht x m4tt`'dptextratio</g>.
+ <br>
+ Examples: <br>
+ m4tt`'svg_font(Times)</g><br>
+ m4tt`'svg_font(Times,14bp__)</g><br>
+ m4tt`'svg_font(sans-serif,14bp__:0.71)</g><br>
+ m4tt`'svg_font(Times,11bp__,1bp__,"text" at A)</g><br>
+ m4tt`'svg_font(font-family="Times")</g><br>
+ m4tt`'svg_font(font-family="Times" font-style="italic")</g><br>
+ m4tt`'svg_font(style="font-family:Times; font-style:italic")</g>
+ <li>m4tt svgfontratio(</g>font name`'m4tt)</g>;
+ Reasonable m4tt`'dptextratio</g> value for common fonts, used
+ by m4tt`'svg_font</g>.
+ <li>m4tt svg_tspan(</g>text attributes, text`'m4tt)</g>;
+ e.g. m4tt`'svg_tspan(font-style="italic" font-size="75%",XYZ)</g>
+ <li>m4tt svg_it(</g>text`'m4tt)</g>: for italics
+ <li>m4tt svg_tt(</g>text`'m4tt)</g>: for monospace (courier)
+ <li>m4tt svg_sf(</g>text`'m4tt)</g>: sans-serif (Helvetica)
+ <li>m4tt svg_norm(</g>text`'m4tt)</g>: for normal text
+ <li>m4tt svg_bf(</g>text`'m4tt)</g>: for bold face
+ <li>m4tt svg_small(</g>text, percent`'m4tt)</g>:
+ to set a smaller text size, default 66
+ <li>m4tt svg_fsize(</g>text, percent`'m4tt)</g>:
+ for setting larger or smaller text size, default 100
+ <li>m4tt svg_sub(</g>text, size percent, y displ, x displ`'m4tt)</g>:
+ subscript
+ <li>m4tt svg_ul(</g>text`'m4tt)</g>: underlined text
+ <li>m4tt svg_ol(</g>text`'m4tt)</g>: overlined text
+ <li>m4tt svg_sup(</g>text, size percent, y displ, x displ`'m4tt)</g>:
+ superscript
+ <li>m4tt svg_hat(</g>character`'m4tt)</g>: circumflex-accented character
+ <li>m4tt svg_frac(</g>numerator[:wid], denominator[:wid]`'m4tt)</g>:
+ basic fraction, wid in drawing units
+ <li>m4tt svg_rot(</g>degrees, "text" [at position]`'m4tt)</g>:
+ Rotate text degrees (default 90) ccw.
+ Requires m4tt`'svg_rot_init(</g>filename`'m4tt)</g> and the source
+ must be processed twice.
+ <li>m4tt svg_rot_init(</g>filename`'m4tt)</g>:
+ filename is the basename of the output of
+ m4tt`'dpic -v filename.pic > filename.svg`'m4tt
+ <li>m4tt svg_symbol(</g>text`'m4tt)</g>: allow quoted pound sign in text,
+ e.g., m4tt`'svg_symbol(10&&#96;&#35;&#39;176;)</g> produces 10&#176;
+ <li>m4tt svgLink(</g>URL, drawing object, m4tt[B])</g>:
+ link to external file using
+ &lt;a xlink:href=...&gt;...&lt;/a&gt; (default is
+ m4tt`'target="_blank"</g> unless
+ arg 3 = B)
+ <li>m4tt svgLinkString</g> as above but for strings attached to objects
+ <li> Greek and other symbols:
+
+<!--
+ Reference:
+ https://en.wikipedia.org/wiki/List_of_XML_and_HTML_character_entity_references
+ and
+ https://www.toptal.com/designers/htmlarrows/math/
+ -->
+<table cellpadding="2" cellspacing="0" width="75%" >
+<tr>
+<td width="10%"> m4tt svg_alpha</g> <td align="left"> changecom(,)&`#'945;changecom(`#')
+<td width="10%"> m4tt svg_beta</g> <td align="left"> changecom(,)&`#'946;changecom(`#')
+<td width="10%"> m4tt svg_Gamma</g> <td align="left"> changecom(,)&`#'915;changecom(`#')
+<td width="10%"> m4tt svg_gamma</g> <td align="left"> changecom(,)&`#'947;changecom(`#')
+<td width="10%"> m4tt svg_Delta</g> <td align="left"> changecom(,)&`#'916;changecom(`#')
+<td width="10%"> m4tt svg_delta</g> <td align="left"> changecom(,)&`#'948;changecom(`#')
+<td width="10%"> m4tt svg_epsilon</g> <td align="left"> changecom(,)&`#'949;changecom(`#')
+<td width="10%"> m4tt svg_zeta</g> <td align="left"> changecom(,)&`#'950;changecom(`#')
+</tr>
+<tr>
+<td width="10%"> m4tt svg_eta</g> <td align="left"> changecom(,)&`#'951;changecom(`#')
+<td width="10%"> m4tt svg_Theta</g> <td align="left"> changecom(,)&`#'920;changecom(`#')
+<td width="10%"> m4tt svg_theta</g> <td align="left"> changecom(,)&`#'952;changecom(`#')
+<td width="10%"> m4tt svg_iota</g> <td align="left"> changecom(,)&`#'953;changecom(`#')
+<td width="10%"> m4tt svg_kappa</g> <td align="left"> changecom(,)&`#'954;changecom(`#')
+<td width="10%"> m4tt svg_Lambda</g> <td align="left"> changecom(,)&`#'923;changecom(`#')
+<td width="10%"> m4tt svg_lambda</g> <td align="left"> changecom(,)&`#'955;changecom(`#')
+<td width="10%"> m4tt svg_mu</g> <td align="left"> changecom(,)&`#'956;changecom(`#')
+</tr>
+<tr>
+<td width="10%"> m4tt svg_nu</g> <td align="left"> changecom(,)&`#'957;changecom(`#')
+<td width="10%"> m4tt svg_Xi</g> <td align="left"> changecom(,)&`#'926;changecom(`#')
+<td width="10%"> m4tt svg_xi</g> <td align="left"> changecom(,)&`#'958;changecom(`#')
+<td width="10%"> m4tt svg_Pi</g> <td align="left"> changecom(,)&`#'928;changecom(`#')
+<td width="10%"> m4tt svg_pi</g> <td align="left"> changecom(,)&`#'960;changecom(`#')
+<td width="10%"> m4tt svg_rho</g> <td align="left"> changecom(,)&`#'961;changecom(`#')
+<td width="10%"> m4tt svg_Sigma</g> <td align="left"> changecom(,)&`#'931;changecom(`#')
+<td width="10%"> m4tt svg_sigma</g> <td align="left"> changecom(,)&`#'963;changecom(`#')
+</tr>
+<tr>
+<td width="10%"> m4tt svg_tau</g> <td align="left"> changecom(,)&`#'964;changecom(`#')
+<td width="10%"> m4tt svg_upsilon</g> <td align="left"> changecom(,)&`#'965;changecom(`#')
+<td width="10%"> m4tt svg_Phi</g> <td align="left"> changecom(,)&`#'934;changecom(`#')
+<td width="10%"> m4tt svg_phi</g> <td align="left"> changecom(,)&`#'966;changecom(`#')
+<td width="10%"> m4tt svg_chi</g> <td align="left"> changecom(,)&`#'967;changecom(`#')
+<td width="10%"> m4tt svg_Psi</g> <td align="left"> changecom(,)&`#'936;changecom(`#')
+<td width="10%"> m4tt svg_psi</g> <td align="left"> changecom(,)&`#'968;changecom(`#')
+<td width="10%"> m4tt svg_Omega</g> <td align="left"> changecom(,)&`#'937;changecom(`#')
+</tr>
+<tr>
+<td width="10%"> m4tt svg_omega</g> <td align="left"> changecom(,)&`#'969;changecom(`#')
+<td width="10%"> m4tt svg_micro</g> <td align="left"> changecom(,)&`#'956;changecom(`#')
+<td width="10%"> m4tt svg_ohm</g> <td align="left"> changecom(,)&`#'937;changecom(`#')
+<td width="10%"> m4tt svg_lt</g> <td align="left"> changecom(,)&`#'60;changecom(`#')
+<td width="10%"> m4tt svg_gt</g> <td align="left"> changecom(,)&`#'62;changecom(`#')
+<td width="10%"> m4tt svg_leq</g> <td align="left"> changecom(,)&`#'8804;changecom(`#')
+<td width="10%"> m4tt svg_geq</g> <td align="left"> changecom(,)&`#'8805;changecom(`#')
+<td width="10%"> m4tt svg_prime</g> <td align="left"> changecom(,)&`#'8242;changecom(`#')
+</tr>
+<tr>
+<td width="10%"> m4tt svg_backsl</g> <td align="left"> changecom(,)&`#'92;changecom(`#')
+<td width="10%"> m4tt svg_pound</g> <td align="left"> changecom(,)&`#'35;changecom(`#')
+<td width="10%"> m4tt svg_comma</g> <td align="left"> changecom(,)&`#'44;changecom(`#')
+<td width="10%"> m4tt svg_lparen</g> <td align="left"> changecom(,)&`#'40;changecom(`#')
+<td width="10%"> m4tt svg_rparen</g> <td align="left"> changecom(,)&`#'41;changecom(`#')
+<td width="10%"> m4tt svg_circ</g> <td align="left"> changecom(,)&`#'710;changecom(`#')
+<td width="10%"> m4tt svg_deg</g> <td align="left"> changecom(,)&`#'176;changecom(`#')
+<td width="10%"> m4tt svg_grave</g> <td align="left"> changecom(,)&`#'96;changecom(`#')
+</tr>
+</table>
+<table cellpadding="2" cellspacing="0" width="75%" >
+<tr>
+<td width="8%"> m4tt svg_emsp</g> <td width="50px" align="left"> |changecom(,)&`#'8195;changecom(`#')|
+<td width="8%"> m4tt svg_ensp</g> <td width="50px" align="left"> |changecom(,)&`#'8194;changecom(`#')|
+<td width="8%"> m4tt svg_thinsp</g> <td width="50px" align="left"> |changecom(,)&`#'8201;changecom(`#')|
+</tr>
+</table>
+
+ </ul>
+ <li> Inkscape: It may be efficient to define elements by macro and to
+ place them using a wysiwyg graphics editor. A draft page intended
+ for Inkscape is included. A reasonable variety of elements is defined
+ but many more could be added and they should be customized for
+ particular applications. Adjustments may also have to be made to
+ obtain the proper snap-to actions.
+ <li> Link experiments: Click on the resistor or source of quickDPV
+ to go to external
+ files in new windows. Click on "n-port" in NportDPV to replace the diagram
+ and then "back" to return.
+ <li> Some of the assumptions used to create this draft may be
+ na&`#'239;ve.
+ Comments are welcome.
+</ul>
+
+<!--
+<embed pluginspage="http://www.adobe.com/svg/viewer/install/" />
+-->
+
+<hr>
+
+<table>
+<tr>
+<td width="50%">
+<p>
+<IMG SRC="quickDPV.svg">
+<br><br>
+Fig. m4inx (<a href="quickDPV.txt" TYPE="text/plain" TARGET="_blank"
+ alt="quickDPV">quickDPV.m4</a>):
+SVG produced by dpic changecom(,)&`#'8194;changecom(`#')
+</p>
+</td>
+<td>
+<p>
+<IMG SRC="quick.svg">
+<br><br>
+(<a href="quick.txt" TYPE="text/plain" TARGET="_blank"
+ alt="quick">quick.m4</a>):
+SVG produced from quick.pdf by dvisvgm changecom(,)&`#'8194;changecom(`#')
+</p>
+</td>
+</table>
+
+<hr>
+
+ifelse(0,1,`
+cfig(ResistorsDPV,
+ Resistors`,' showing some variations and the ebox)
+
+cfig(CapacitorsDPV,
+ Capacitors)
+
+cfig(InductorsDPV,
+ Inductors)
+
+cfig(DiodesDPV,
+ Diodes: appending a m4tt`'K</g> to the second argument draws an open
+ arrowhead)
+
+cfig(EmarrowsDPV,
+ Radiation arrows)
+
+cfig(VariableDPV,
+ Arrows and marks for showing variability)
+
+cfig(SourcesDPV,
+ Sources and source-like elements)
+
+cfig(AmpTableDPV,
+ Macros m4tt`'amp`,' delay</g>`,' and m4tt`'integrator</g>)
+
+cfig(FusesDPV,
+ Macros m4tt`'fuse</g> and m4tt`'cbreaker</g>)
+
+cfig(MoreTableDPV,
+ Additional two-terminal elements)
+
+cfig(GroundsDPV,
+ Ground symbols)
+
+cfig(SwitchesDPV,
+ The switch macros; m4tt`'switch(`,'`,'`,'L|B|D,attribs)</g>
+ is a wrapper for m4tt`'lswitch</g>`,' m4tt`'bswitch</g>`,'
+ and m4tt`'dswitch</g>)
+
+cfig(AntennasDPV,
+ Antenna symbols)
+
+cfig(OpampDPV,
+ The opamp)
+
+cfig(AudioDPV,
+ Audio elements)
+
+cfig(XformDPV,
+ Some variations of the transformer element`,' drawing direction down)
+
+cfig(NPDTDPV,
+ Double throw with the m4tt`'NPDT</g> macro)
+
+cfig(ContactDPV,
+ A non-exhaustive sampling of m4tt`'contact</g> macro variations)
+
+cfig(ContactsDPV,
+ The m4tt`'contacts</g> macro)
+
+cfig(relaycoilDPV,
+ The m4tt`'relaycoil</g> macro)
+
+cfig(RelayDPV,
+ Some variants of m4tt`'relay</g>)
+
+cfig(JackDPV,
+ The m4tt`'jack</g> and m4tt`'plug</g> macros)
+
+cfig(ConnDPV,
+ The m4tt`'tstrip`,' ccoax`,' tconn</g>`,' and m4tt`'tbox</g> macros)
+
+cfig(PconnDPV,
+ The m4tt`'pconnex</g> macro)
+
+cfig(EVplugsDPV,
+ Electric vehicle charging plug patterns make extensive
+ use of key=value pairs to set options)
+
+cfig(HeadersDPV,
+ The m4tt`'Header</g> macro)
+
+')
+cfig(ConnectorsDPV,
+ Some integrated circuits and connectors with simple geometry
+ and lists of labels)
+
+ifelse(0,1,`
+cfig(ChipsDPV,
+ IC outlines)
+
+cfig(fetDPV,
+ FETs`,' showing programmable components and example customizations)
+
+cfig(ujtDPV,
+ UJT examples)
+
+cfig(thyristorDPV,
+ Thyristor examples. The thyristor is a 3- or 4-terminal
+ composite element)
+
+cfig(BipDPV,
+ Bipolar transistors (drawing direction: up))
+
+cfig(TgateDPV,
+ The m4tt`'tgate</g> and m4tt`'ptrans</g> elements)
+
+')
+cfig(NportDPV,
+ The m4tt`'nport</g> and m4tt`'nterm</g> macros)
+
+ifelse(0,1,`
+cfig(NLGDPV,
+ Some customizations of m4tt`'nport</g>)
+
+cfig(WindingsDPV,
+ The macro
+ m4tt`'winding(L|R`,'diam`,'pitch`,'turns`,'core wid`,'core color)</g>)
+
+')
+cfig(ex01DPV,
+ Two simple labeled circuits)
+
+ifelse(0,1,`
+cfig(ex02DPV,
+ Elements at obtuse angles)
+
+cfig(OptoisoDPV,
+ Optical isolator: a circuit with right or left orientation)
+
+cfig(MixerDPV,
+ A balanced mixer`,' using m4tt`'mosfet</g> and a custom transformer)
+
+cfig(PushPullDPV,
+ A push-pull mixer`,' showing FETs with multiple gates)
+
+cfig(QuantumDPV,
+ A quantum circuit)
+
+cfig(SQUIDDPV,
+ Superconducting quantum interface device (drawing direction down))
+
+cfig(SixpoleDPV,
+ A six-pole filter)
+
+cfig(ex18DPV,
+ Precision half-wave rectifier and a tunnel diode circuit
+ (illustrating m4tt`'opamp`,' diode`,' resistor`,' ground`,'</g>
+ and labels))
+
+cfig(ex10DPV,
+ Non-planar graph and bistable circuit
+ (illustrating the m4tt`'crossover</g> macro and colored elements))
+
+cfig(ThreeDPV,
+ Three-phase oscillator)
+
+cfig(MCDPV,
+ A three-phase switched AC-AC converter and a DC-DC converter)
+
+cfig(ex17DPV,
+ A repetitive network created by Pic looping and
+ a skewed circuit used to test the macro m4tt`'parallel_</g>)
+
+cfig(ex12DPV,
+ A CMOS NAND gate`,' a test circuit`,' and an XMOSFET example)
+
+cfig(pwrsupplyDPV,
+ An elementary power supply circuit with colored elements`,'
+ and a multiple-winding transformer with 3-phase rectifier)
+
+cfig(TTLnandDPV,
+ TTL NAND gate illustrating a transistor with multiple emitters)
+
+cfig(I2LDPV,
+ Gate circuit and equivalent embedded components
+ illustrating multiple collectors)
+
+cfig(SchottkyDPV,
+ A 4-input NAND circuit illustrating the m4tt`'S</g> (Schottky)
+ option of m4tt`'bi_trans</g>)
+
+cfig(ex11DPV,
+ Transistor radio audio chain)
+
+cfig(ex04DPV,
+ Labels on non-manhattan elements)
+
+')
+cfig(CsourceDPV,
+ Realization of a controlled source
+ (illustrating stacked element labels))
+
+ifelse(0,1,`
+cfig(DriveDPV,
+ Synchronous machine driven by variable-speed drive and rectifier)
+
+cfig(ex16DPV,
+ A rate 1/2 binary convolutional coder and its state diagram)
+
+cfig(ex03DPV,
+ Digital filter)
+
+cfig(MotorControlDPV,
+ Motor control connections)
+
+cfig(RectifiersDPV,
+ Rectifier circuits and waveforms)
+
+')
+cfig(HeathkitDPV,
+ The power supply of a Heathkit AR-15 (Now`,' <i>that</i>
+ was a receiver!) with custom transformer and other elements`,'
+ drawn on a grid (partially shown) to aid in placement)
+
+ifelse(0,1,`
+cfig(lcctDPV,
+ A digital circuit of moderate size`,'
+ redrawn from M. P. Maclenan and G. M. Burns`,'
+ "An Approach to Drawing Circuit Diagrams for Text Books`,'"
+ Tugboat (12)1`,' March 1991`,' pp. 66-69)
+
+cfig(TubediagsDPV,
+ Electron-tube diagrams: a few bottom-view base diagrams`,'
+ a generic triode test circuit`,' and a 25-watt audio amplifier adapted
+ from F. Langford-Smith`,' <i>Radiotron Designers Handbook</i>`,' fourth
+ edition`,' Harrison`,' NJ: Radio Corporation of America`,' 1952)
+
+cfig(UNODPV,
+ An Arduino UNO circuit adapted and redrawn)
+
+cfig(sfgDPV,
+ Signal-flow graphs)
+
+cfig(LogicDPV,
+ Basic logic gates)
+
+cfig(ex08DPV,
+ General-purpose latch: a small logic circuit)
+
+cfig(DecoderDPV,
+ Decoder logic`,' constructed using the m4tt`'for_</g> macro)
+
+cfig(ex21DPV,
+ Some flip-flops)
+
+cfig(MultiplexerDPV,
+ Multiplexer)
+
+cfig(DemultiplexerDPV,
+ Demultiplexer)
+
+cfig(ShiftRDPV,
+ A 5-bit shift register drawn using a custom flip-flop)
+
+cfig(AdderDPV,
+ A full adder and a cascade of n-bit adders)
+
+cfig(CanLogicDPV,
+ A way of automatically drawing two-layer logic diagrams)
+
+cfig(AlogixDPV,
+ The m4tt`'Autologix(`'<i>Boolean expression</i>;
+ <i>Boolean expression</i>... `,' <i>options</i>)</g>
+ macro automatically draws Boolean expressions in function notation.
+ The function tree is drawn`,' then a row or column of inputs`,' then
+ the connections. The default result is on the left`,'
+ a custom element at the top`,' and a tree of gates only is shown
+ on the right.)
+
+cfig(ABlogixDPV,
+ The m4tt`'Autologix</g> macro can draw inputs on the left but
+ the added drawing complexity may require hand tuning with
+ second-argument options: m4tt`'L</g> puts the inputs on the left`,'
+ m4tt`'R reverses their order`,' m4tt`'V</g> scans the input arguments
+ in reverse order`,' and m4tt`'offset=</g>`'<i>value</i> displaces
+ the array of inputs)
+
+cfig(XORDPV,
+ Realizations of the XOR function using m4tt`'Autologix</g>)
+
+cfig(ex00DPV,
+ Line diagrams)
+
+')
+cfig(EEPDPV,
+ Part of a single-line diagram of a power distribution system
+ using draft elements)
+
+ifelse(0,1,`
+cfig(ex05DPV,
+ Use of m4tt`'darrow</g> and m4tt`'Darc</g>)
+
+cfig(GrayCodeDPV,
+ Gray code 10-bit encoder disk pattern`,'
+ and a crossbar switch)
+
+')
+cfig(controlDPV,
+ Control-system block diagrams)
+
+cfig(ByteDPV,
+ Elementary splines)
+
+ifelse(0,1,`
+cfig(RotboxDPV,
+ The macro
+ m4tt`'rotbox(<i>wid,ht,type,</i>[r|t=<i>val</i>])</g>
+ draws a box in the current direction)
+
+cfig(ex06DPV,
+ Crosshatching)
+
+cfig(GeometryDPV,
+ Plane geometry examples)
+
+cfig(LoglogDPV,
+ Graphs drawn using the pic language)
+
+cfig(SmithchartDPV,
+ A Smith chart)
+
+cfig(ex09DPV,
+ Illustrating the macro
+ m4tt`'dimension_(<i>linespec`,' offset`,' label`,' </i>
+ H|W|D|<i>blank width</i>`,' <i>tic offset</i>`,' <-|->)</g>.
+ A negative second argument implies an offset to the right of the
+ <i>linespec</i> direction. A <i>label</i> starting with
+ m4tt`'"</g> or
+ m4tt`'sprintf</g> is copied literally. If <i>label</i> is an
+ m4tt`'s_box(...)</g> then setting argument 4 to m4tt`'H</g>`,'
+ m4tt`'W</g>`,'
+ or m4tt`'D</g> tailors the blank width to the m4tt`'s_box</g> height`,'
+ width`,' or diagonal respectively; i.e.`,' m4tt`'W</g> is equivalent to
+ m4tt`'s_wd+textoffset*2</g>.
+ The macro m4tt`'arcdimension_</g> is similar but the first argument
+ specifies the arc to be dimensioned and the second argument is
+ the outward radial offset of the dimension arrow arc.)
+
+cfig(PlateDPV,
+ Dimensioning with tolerances according to ASME Y14.5)
+ Use of m4tt`'darrow</g> and m4tt`'Darc</g>)
+
+cfig(randomDPV,
+ Testing random number generation
+ using dpic macro
+ m4tt`'randn(</g><g
+ style="font-family:italic">array name`,' mean`,' std dev</g>m4tt`')</g>
+ which calls dpic built-in m4tt`'rand()</g>)
+
+cfig(expDPV,
+ Test of m4tt`'project</g> and other m4tt`'lib3D</g>
+ macros`,' showing the projection of a solid onto
+ the <i>y1`,'z1</i> plane by sighting along the x1 axis.)
+
+cfig(graysurfDPV,
+ Plotting surfaces using gray scales)
+
+cfig(shapesDPV,
+ Basic shapes)
+
+cfig(cscDPV,
+ Conestoga Sailing Club (illustrating the filling of arbitrary shapes)`,'
+ and an antique clock face with shading and rotated text)
+
+cfig(roseDPV,
+ A window redrawn from a detail of the set design for the musical
+ <i>Dracula</i>`,' used for testing m4tt`'dpic</g>`,'
+ and an experimental halftone. This diagram
+ consumes much LaTeX main memory but can be produced
+ directly as pdf using m4tt`'dpic -d</g>`,'
+ as svg using m4tt`'dpic -v</g>`,'
+ or as postscript using m4tt`'dpic -r</g>
+ since no text formatting is required)
+
+cfig(diamondDPV,
+ Variations on M. Goossens`,' S. Rahtz`,' and F. Mittelbach`,'
+ <i>The LaTeX Graphics Companion</i>`,' Addison-Wesley 1997`,' pp. 57-58)
+
+cfig(wormDPV,
+ An exercise in calculating RGB colours)
+
+cfig(ButtonsDPV,
+ Shading in color)
+
+cfig(keyboardDPV,
+ More objects drawn in relief)
+
+cfig(DiniDPV,
+ Dini surface and an icosahedron)
+
+cfig(SierpinskiDPV,
+ The Sierpinski triangle and a Cayley graph:
+ tests of pic macro recursion)
+
+cfig(EscherDPV,
+ Penrose stairs and an Escher-like object)
+
+cfig(recycleDPV,
+ Modest repetition and partial fill)
+
+cfig(ex15DPV,
+ Simple diagrams that are easily drawn by looping)
+
+<!--
+#fig(CountingDPV,
+# An example of enumeration)
+-->
+
+cfig(CrowDPV,
+ Illustrating m4tt`'shadebox</g> and a custom crowfoot line
+ termination)
+
+')
+cfig(FlowDPV,
+ A flowchart sampler)
+ <!-- <p>
+ More flow-chart examples? Try
+ <a href="https://buraphakit.sourceforge.io/EFI/EFI_2019_S2_W13.shtml"
+ TARGET="_blank">here.</a>
+ </p> -->
+
+ifelse(0,1,`
+cfig(BtreeDPV,
+ Trees)
+
+cfig(InclepsDPV,
+ Overlaying a figure with line graphics,,OBJECT)
+')
+
+cfig(paletteDPV,
+ A draft palette of a few elements for Inkscape using
+ a 1 mm grid)
+
+cfig(FontsDPV)
+
+</td>
+</tr>
+</table>
+</BODY>
+</HTML>