# Examples Makefile # # Type "make" to generate examples.pdf containing many examples. # Type "make clean; make examples.ps" to invoke latex intead of pdflatex. # Type "make .ps" to make a postscript file from .m4 # It may be necessary to type "make clean" before this or any of the following: # Type "make .eps" to make an .eps file from .m4 # Type "make .svg" to make an .svg file from .m4 using pdf2svg # The following require ImageMagick convert: # Type "make .png" to make a .png file from .m4 # Type "make .tif" to make a .tif file from .m4 # # See also: dpv subdirectory for creating svg with dpic -v without LaTeX # # To test the file test.m4, type "make tst" if boxdims is used, otherwise # type "make tst1". In either case the file tst.ps is created. # # There are more examples in the extras directory. Go to that # directory and process them one at a time, or type "make". # # To debug a single diagram in a directory other than this examples # directory, copy this makefile and tst.tex to where you want to work, # redefine LIBDIR (below) appropriately, and type "make .xxx" # where xxx is one of ps, eps, png, or pdf ######################################################################### # Circuit_macro directory, change this if necessary: # LIBDIR = $$HOME/lib LIBDIR = .. # The dpic processor: PIC = dpic #PIC = $$HOME/dpic/bisondev/dpic #PIC = $$HOME/dpic/bison/dpic #PIC = $$HOME/dpic/pascaldev/test/dpic #PIC = $$HOME/dpic/pascal/test/dpic #MODE = -p MODE = -g #CONF = pstricks.m4 CONF = pgf.m4 # Uncomment for gpic. Use gpic or pic as applicable on your machine: # PIC = gpic # PIC = pic # MODE = -t # CONF = gpic.m4 # Convert options EPSOPTS = PNGOPTS = -quiet -density 400 -scale 25% -alpha Remove # M4 = m4 -I $(LIBDIR) # If environment variable M4PATH has been set to the installation directory: M4 = m4 DOC = examples TEXPICS = \ ABlogix.tex Adder.tex Alogix.tex AmpTable.tex Antennas.tex Arresters.tex \ Audio.tex Bip.tex Btree.tex Buttons.tex Byte.tex \ Capacitors.tex CanLogic.tex Chips.tex Conn.tex Connectors.tex \ Contacts.tex Contact.tex control.tex Crow.tex \ csc.tex Csource.tex Decoder.tex \ Demultiplexer.tex diamond.tex Dini.tex Diodes.tex Drive.tex \ EEP.tex Emarrows.tex Escher.tex EVplugs.tex \ ex00.tex ex01.tex ex02.tex ex03.tex ex04.tex ex05.tex ex06.tex ex08.tex \ ex09.tex ex10.tex ex11.tex ex12.tex ex15.tex ex16.tex ex17.tex ex18.tex \ ex21.tex exp.tex fet.tex Flow.tex Fuses.tex \ Geometry.tex GrayCode.tex graysurf.tex Grounds.tex \ Headers.tex Heathkit.tex \ I2L.tex Incleps.tex Inductors.tex Jack.tex \ lcct.tex Logic.tex Loglog.tex MC.tex Mixer.tex MoreTable.tex \ MotorControl.tex Multiplexer.tex \ NLG.tex NPDT.tex Nport.tex Opamp.tex Optoiso.tex \ Pconn.tex Plate.tex PushPull.tex pwrsupply.tex \ Quantum.tex quick.tex \ random.tex Rectifiers.tex recycle.tex relaycoil.tex Relay.tex \ Resistors.tex Rotbox.tex \ Schottky.tex sfg.tex shadowed.tex shapes.tex ShiftR.tex Sierpinski.tex \ Sixpole.tex \ Smithchart.tex Sources.tex SQUID.tex Switches.tex \ Tgate.tex Three.tex thyristor.tex TTLnand.tex Tubediags.tex \ UNO.tex ujt.tex Variable.tex Windings.tex worm.tex Xform.tex XOR.tex # Files that have to be processed twice: BOXDIMS = Btree.tex ex09.tex Crow.tex Incleps.tex Loglog.tex Opamp.tex \ random.tex Windings.tex ######################################################################### DVIPSOPTS = -G0 -t letter DIMFILE = $(DOC).dim BS = tr '|' '\134' # Might be needed (change latex commands to $(LTX) ) # LTX = latex --shell-escape LTX = pdflatex --shell-escape PDFLTXSRC=printf "|documentclass[11pt]{standalone}\n\ |usepackage[dvipsnames]{xcolor}\n\ |usepackage{times,boxdims,siunitx,amssymb,tikz,geometry}\n\ |geometry{paperwidth=15in,paperheight=14in,margin=1in}\n\ |pagestyle{empty}|thispagestyle{empty}\n\ |begin{document}|noindent|input{"$*".tex}|end{document}\n" | $(BS) # [dvipsnames]{xcolor} defines the colors near the end of: # https://steeven9.github.io/USI-LaTeX/html/packages_hyperref_babel_xcolor3.html # Better: use adjusted colors from http://latexcolor.com/ LTXFILE=printf "|documentclass[11pt]{article}\n\ |usepackage[dvipsnames]{xcolor}\n\ |usepackage{times,boxdims,graphicx,pstricks}\n\ |usepackage{siunitx}\n\ |setlength{|textwidth}{28cm}|setlength{|textheight}{28cm}\n\ |setlength{|oddsidemargin}{0pt}|setlength{|evensidemargin}{0pt}\n\ |setlength{|hoffset}{-1cm}\n\ |pagestyle{empty}|thispagestyle{empty}\n\ |newbox|graph\n\ |begin{document}\n\ |noindent|input{"$*".tex}|box|graph\n\ |end{document}\n" | $(BS) .SUFFIXES: .ps .dvi .tex .m4 .pic .eps .png .pdf .svg .tif .gif .m4.pic: @touch $(DIMFILE) F_$*.dim $(M4) $(CONF) $(DIMFILE) F_$*.dim $*.m4 > $*.pic .m4.tex: @touch $(DIMFILE) F_$*.dim $(M4) $(CONF) $(DIMFILE) F_$*.dim $*.m4 | $(PIC) $(MODE) > $*.tex # $(M4) $(CONF) $(DIMFILE) F_$*.dim $*.m4 > $*.pic # $(PIC) $(MODE) $*.pic > $*.tex .m4.dvi: @touch $(DIMFILE) F_$*.dim $(M4) pstricks.m4 $(DIMFILE) F_$*.dim $*.m4 | $(PIC) -p > $*.tex @$(LTXFILE) > F_$*.tex latex --quiet F_$* touch F_$*.dim $(DIMFILE) $(M4) pstricks.m4 $(DIMFILE) F_$*.dim $*.m4 | $(PIC) -p > $*.tex latex --quiet F_$* mv F_$*.dvi $*.dvi rm -f F_* .dvi.ps: dvips $(DVIPSOPTS) $* -o $*.ps chmod 644 $*.ps .m4.ps: @touch $(DIMFILE) F_$*.dim $(M4) pstricks.m4 $(DIMFILE) F_$*.dim $*.m4 | $(PIC) -p > $*.tex @$(LTXFILE) > F_$*.tex latex --quiet F_$* dvips $(DVIPSOPTS) F_$* -o $*.ps chmod 644 $*.ps rm -f F_* .m4.eps: @touch $(DIMFILE) F_$*.dim $(M4) pstricks.m4 $(DIMFILE) F_$*.dim $*.m4 | $(PIC) -p > $*.tex @$(LTXFILE) > F_$*.tex latex --quiet F_$* $(M4) pstricks.m4 $(DIMFILE) F_$*.dim $*.m4 | $(PIC) -p > $*.tex latex --quiet F_$* dvips F_$* -T128cm,28cm -o $*.ps # Recent changes to PSTricks(?) have clashed with the use of TeXtoEPS # so use ps2epsi ps2epsi $*.ps $*.epsi sed -e '/%%Pages:/d' -e '/BeginPreview/,$$d' $*.epsi \ | tr '\015' '\012' > $*.eps sed -e '1,/EndPreview/d' $*.epsi >> $*.eps rm -f F_* .m4.pdf: @touch $(DIMFILE) F_$*.dim $(M4) pgf.m4 $(DIMFILE) F_$*.dim $*.m4 | $(PIC) -g > $*.tex @$(PDFLTXSRC) > F_$*.tex pdflatex --quiet F_$* $(M4) pgf.m4 $(DIMFILE) F_$*.dim $*.m4 | $(PIC) -g > $*.tex pdflatex --quiet F_$* mv F_$*.pdf $*.pdf rm -f F_* .m4.png: make $*.pdf convert $(PNGOPTS) $*.pdf $*.png @if test -f $*.png.0 ; then mv $*.png.0 $*.png ; fi # rm $*.pdf .m4.gif: make $*.pdf convert $(GIFOPTS) $*.pdf $*.gif # rm $*.pdf .m4.tif: make $*.pdf convert $(EPSOPTS) $*.pdf $*.tif @if test -f $*.tif.0 ; then mv $*.tif.0 $*.tif ; fi # rm $*.pdf .m4.svg: make $*.pdf dvisvgm --pdf $*.pdf $*.svg chmod 644 $*.svg # rm $*.pdf ######################################################################### $(DOC).pdf: clean pdfmode $(DOC).tex files.tex header.tex touch $(DOC).dim make CONF=pgf.m4 MODE=-g DIMFILE=$(DOC).dim pics cp $(LIBDIR)/doc/Version.tex . pdflatex $(DOC) rm -f $(BOXDIMS) ${BOXDIMS:%.tex=%.pic} $(DOC).pdf make CONF=pgf.m4 MODE=-g DIMFILE=$(DOC).dim $(BOXDIMS) pdflatex $(DOC) @printf "\n\n optpdf trims the pdf file\n" optpdf $(DOC).pdf rose.pdf: rose.m4 m4 pdf.m4 rose.m4 | dpic -d > rose.pdf keyboard.svg: keyboard.m4 m4 svg.m4 keyboard.m4 | dpic -v > keyboard.svg keyboard.pdf: keyboard.svg -conv=`which convert` ; if test "`basename $$conv`" = "convert" ; then \ convert keyboard.svg keyboard.pdf ; \ else printf '.PS\n "keyboard.pdf requires imagemagick convert"\n.PE\n' \ | dpic -d > keyboard.pdf ; fi pics: rose.pdf keyboard.pdf $(TEXPICS) touch pics $(DOC).ps: psmode $(DOC).dvi psmode: printf "|usepackage{pstricks,pst-grad}\n" | $(BS) > mode.tex pdfmode: printf "|usepackage{tikz}\n" | $(BS) > mode.tex $(DOC).dvi: $(DOC).tex files.tex header.tex psmode touch $(DOC).dim make CONF=pstricks.m4 MODE=-p DIMFILE=$(DOC).dim pics cp $(LIBDIR)/doc/Version.tex . latex $(DOC) rm -f $(BOXDIMS) ${BOXDIMS:%.tex=%.pic} $(DOC).dvi make CONF=pstricks.m4 MODE=-p DIMFILE=$(DOC).dim $(BOXDIMS) latex $(DOC) tst: @$(LTXFILE) | sed -e 's/{\.tex}/{test.tex}/' > tst.tex make CONF=pstricks.m4 PIC=dpic MODE=-p test.tex; latex --quiet tst rm -f test.tex test.pic make CONF=pstricks.m4 PIC=dpic MODE=-p test.tex; latex --quiet tst dvips $(DVIPSOPTS) tst -o tst.ps tst1: @$(LTXFILE) | sed -e 's/{\.tex}/{test.tex}/' > tst.tex make CONF=pstricks.m4 PIC=dpic MODE=-p test.tex; latex --quiet tst dvips $(DVIPSOPTS) tst -o tst.ps tikz: @$(LTXFILE) | sed -e 's/{\.tex}/{test.tex}/' -e 's/pstricks/tikz/' > tst.tex make CONF=pgf.m4 PIC=dpic MODE=-g test.tex; latex --quiet tst dvips $(DVIPSOPTS) tst -o tst.ps gpic: @$(LTXFILE) | sed -e 's/{\.tex}/{test.tex}/' > tst.tex rm -f test.tex test.pic make CONF=gpic.m4 PIC=pic MODE=-t test.tex; latex --quiet tst dvips $(DVIPSOPTS) tst -o tst.ps echopics: @echo $(TEXPICS) testall: (cd mf; make) (cd mpost; make) (cd psfrag; make) (cd dpv; make) (cd xfig; make) clobber: clean rm -f *.ps -@for dir in mf mpost pdflatex xfig psfrag svg dev test; \ do (if test -d $$dir ; then cd $$dir; make clobber; fi) ; done rm -f ../doc/Circuit_macros.pdf ../Circuit_macros.pdf rm -f *.warn rm -f examples.pdf rm -rf index.html html basenames *.png* dist zips htmlfiles svgfiles rm -rf $(TMP)/Cir* $(ECETMP)/Cir* $(ECEDIR) if test -f Incl.pdf ; then \ mv Incl.pdf Incl.pdx; rm -f *.pdf; mv Incl.pdx Incl.pdf ; fi for file in `ls *.tex` ; do \ nm=`echo $$file | sed -e "s/\(.*\)\.tex/\1/"` ; \ if test -s $$nm.m4 ; then rm -f $$nm.pic $$nm.tex ; fi ; done (cd dpv; make clobber) # @if test -f distmakefile ; then make -f distmakefile clobber ; fi clean: @printf "\n\n examples clean:\n\n" rm -f core boxdims.tar.gz pics rm -f *.dvi *.aux *.log *.toc *.blg *.eps *.tif *.epsi eps *-mfpic* *.svg rm -f fig*.tex $(TEXPICS) *.roff *.int *.pic gpic.m4 test.tex xxx* *.fig rm -f rose.pdf keyboard.pdf rm -f *.dim *.bak rotate.ps tst.ps *.bbl *-pics.ps rm -f *.tfm *[0-9]pk *.png *.svg *.1 *.gif rm -f F_* Version.tex *stackdump *.ico ./.[A-Za-z]* rm -rf distfile distfile.tar.gz mode.tex @printf "\n" # @if test -f distmakefile ; then make -f distmakefile clean ; fi