Circuit-Macrosで回路図を書いて
Thu 15 Dec 2016 by mskala Tags used: software, typography, 日本語, latex僕の新しい仕事がアナログシンセのデザインです。 LaTeXでユーザーマニュアルを作りたいです。 ドキュメントの中で回路図を書きたいです。 今日、Circuit-Macrosで回路図を書き方の勉強しましょう。 よろしくお願いします。
これはTeX & LaTeX Advent Calendar 2016に僕の寄贈です。昨日はmarimo-nekomimiさんの日です。 明日、Yasuhide Minodaさんの日です。
Circuit-MacrosはTeXLiveでありません。 CTANや著者のサイトから受けできます。 その上picインタプレターとm4が必要です。 Aplevichさんのサイトで、リンクがあります。 便利だから、GNU MakeとLatex-Makeも使いことがいいです。
Circuit-Macrosはm4のマクロのパーケージです。
ある言語で回路について話すあと、m4のインタプレターを走らせる。
m4マクロはpicマクロを作ります。
だからpicのインタプレターを走らせる。
picマクロはTeXマクロを作ります。
じつはTikZマクロです。
TeXドキュメントで\input
を使います。
だからドキュメントで回路図が入れられます。
この回路図を書きます。
予定のために、手製の回路図を書きます。 Circuit-Macrosの言語は時々難しいだから、ラフ稿がいいです。
新しいファイル「commone.m4」を作ります。 この回路は「common emitter amplifier」や「エミッタ共通回路」だからその名前です。 始めに、トランジスターだけを書きます。
% commone.m4
PS
cct_init
Q: bi_tr(up_ 0.667)
PE
.PS
とcct_init
はいつもCircuit-Macrosのプログラムの手始めです。
.PE
が結末です。
Q: bi_tr(up_ 0.667)
で、「Q」はトランジスターの名前です。
そのあと、このトランジスターに持ち出しています。
だから名前が必要です。
bi_tr
は「bipolar transistor」のマクロです。
Circuit-Macrosのマニュアルでマクロのリストあります。
このトランジスターはまっすぐです。さがさまありません。
高さ0.667インチです。
だからup_ 0.667
を書きます。
今m4のインタプレターを走らせる。 Circuit-Macrosのディレクトリを持ち出します。
m4 -I /usr/local/share/texmf/tex/latex/circuit_macros pgf.m4 commone.m4 > commone.pic
長いファイルを生じました。
.PS # cct_init Version 8.0: TikZ PGF m4 macro settings. # gen_init Version 8.0: TikZ PGF m4 macro settings. define rpoint__ { rp_wid = last line.end.x-last line.start.x rp_ht = last line.end.y-last line.start.y rp_len = sqrt(abs((rp_wid)^2+(rp_ht)^2)); move to last line.start rp_ang = atan2(rp_ht,rp_wid) } rp_ang = 0; right # とか… PE
次にpicのインタプレターを走らせる。
dpic -g commone.pic > commone.tex
じつは、それがタイピング過ぎます。 GNU Makeを使いましょう。
include LaTeX.mk %.pic: %.m4 m4 -I /usr/local/share/texmf/tex/latex/circuit_macros \ pgf.m4 $*.m4 > $*.pic %.tex: %.pic dpic -g $*.pic > $*.tex
make commone.tex
このファイルcommone.texがたくさんのTikZマクロを含みます。
\begin{tikzpicture}[scale=2.54] % dpic version 2014.Jan.01 option -g for TikZ and PGF 1.01 \ifx\dpiclw\undefined\newdimen\dpiclw\fi \global\def\dpicdraw{\draw[line width=\dpiclw]} \global\def\dpicstop{;} \dpiclw=0.8bp \dpiclw=0.8bp \dpicdraw (0.325,-0.3335) --(0.325,-0.15) --(0.31393,-0.15)\dpicstop % とか…
LaTeXのドキュメントは\input
でこのファイルを使います。
% amplifier.tex \documentclass{article} \usepackage{tikz} \begin{document} Here's a typical transistor-based audio amplifier. \input{commone.tex} Since the transistor is intended to operate in its active region throughout the signal cycle, this is a Class~A amplifier. \end{document}
make amplifier.pdf
しかし他の電子部品が欲しいです。 コンデンサーを作りましょう。
.PS cct_init Q: bi_tr(up_ 0.667) move to Q.B line left_ 0.175; dot; capacitor(left_ 0.667); dot(,,1) PE
新しいコードで、move to Q.B
だからトランジスターのベースから始まります。
忘れなくてトランジスターの名前が「Q」です。
そのあとline left_ 0.175
と言います。
0.175インチのラインを書きます。
dot
とコンデンサを書きます。
コンデンサーは、英語の言葉が「capacitor」です。
トランジスターの同じに、コンデンサーは0.667インチです。
今入力のターミナルが欲しい。
もう一度dot
と言います。
でもこれがdot(,,1)
です。
だから空っぽな丸です。
make amplifier.pdf
ウォームアップしました。 今、あまりなコードを書きましょう。
.PS cct_init Q: bi_tr(up_ 0.667) move to Q.B line left_ 0.175; dot; capacitor(left_ 0.667); dot(,,1) move to Q.E dot; resistor(down_ 0.667); dot; ground move to Q.E line right_ 0.5 corner # ① capacitor(down_ 0.667,C) # ② corner; line left_ 1.0; corner; resistor(up_ 0.667); line up_ 0.667; resistor(up_ 0.667); corner; line right_ 0.5 move to Q.C dot; resistor(up_ 0.667); dot; ground(,,S,90) # ③ move to Q.C line right_ 0.5; dot(,,1) PE
①
二つのラインは角に結ばれるとき、清潔な角が欲しいです。
corner
とは、清潔な角を作ります。
② コンデンサーに「,C」を書くだから反るプレートのコンデンサシンボルを作ります。
③
ground(,,S,90)
は上りな矢のパワーシンボルを作ります。
make amplifier.pdf
時々Circuit-Macrosを使えばトライ&エラーが必要です。 しかし究極の回路図がすてきです。
この記事からのファイルはダウンロードが出来ます。
0 comments