ARRAY: 16 16
TIME: 24
TIMECONSTRAINT: 20
NUMSUBPROBLEMS: 11
BEGIN SUBPROBLEM 1
NUMBLOCKS: 0
NUMNETS: 3
NET S1_R1_M1
NUMPINS: 3
PIN R1
...
大概思想是,逐行读入后根据信息打印对应的tikz代码。
其中几个重要的point是:
1. \def \xxxx {} 定义一个常量
2. \providecommand可以在不存在这个命令时定义一个命令,否则忽略代码。
这样就可以wrap tikz的代码,使得对于数据的描述更精确了。(如blockage本来只是一个rectangle,我定义成\blockage)
3. 使用fp这个宏包可以在tex文件里进行数学运算
4. 使用tikz的node library可以方便地定义node以及node之间的edge
5. tikz里面的foreach可以提供简单的循环
6. tikz里面可以定义style,形式如下:
\begin{tikzpicture}[scale=\scale,即在开始画图时的option里定义,以上例子定义了pins,arrow,block几种style
%inner sep=1cm*\scale*\half,
inner sep=0,
minimum size=1cm*\scale,
>=latex,
pins/.style={rectangle,draw,fill=brown,font=\scriptsize},
arrow/.style={->,very thick},
block/.style={gray}]
最后的一个大问题是,如何格式化生成的tex文件,感谢newsmth的maplelove,可以利用vim的非交互式功能格式化。
代码如下:
vim -c "normal gg=G" -c wq test.tex
但是发觉郁闷的是,vim对tex文件的格式化并不好。
效果图如下:
No comments:
Post a Comment