要制作高质量的电路图和框图,我强烈推荐 JD Aplevich 的“电路宏”。它有据可查并积极维护。请参阅此封装电路宏示例生成的示例
有一些学习曲线,例如能够使用“dpic”图形语言来绘制自己的图表。但是该工具本身非常强大。
对我来说,还有两个问题:
- 没有实时更新
- svg 输出不足
我破解了一些Javascript
(watch m4 file change)->[m4->dpic->latex->pdf]->svg->(show in html)
这是它的要点
// watch .m4 file
var chokidar = require('chokidar');
var resolve = require('path').resolve;
const touch = require('touch')
const {exec} = require('child_process')
chokidar.watch("*.m4").on('change', fn=>{
let ff = resolve(fn)
console.log(ff, "changed")
exec("runtask.bat " + ff, {cwd:"../"}, (err,stdin,stdout)=>{
console.log(err,stdin, stdout)
touch("index.html") //svg updated
})
})
这是runtask.bat
适用于 Windows的
m4 pgf.m4 %1 | dpic -g > tmp.tex
C:\texlive\2017\bin\win32\pdflatex template.tex
tool\dist-64bits\pdf2svg template.pdf %~dpn1.svg
tool\dist-64bits\pdf2svg template.pdf %~dp1tmp.svg
这样,您可以通过编写 m4/dpic 代码“绘制”并在浏览器中实时查看结果;svg 是从 pdf 生成的,看起来好多了。