10月 13

LaTeX文档的自动编译与实时预览

管理LaTeX源代码文档,最开始的时候,我是在终端中手动输入编译命令,每次都需要输入好几次命令才能得到最终的文档。之后,为了简化操作,自习了Makefile,使用make来编译、预览LaTeX文档,效率大大提高,但每次都要适当修改Makefile,仍有一定的繁琐。今天,偶然发现一个编译、预览LaTeX文档的利器——latexmk,强烈推荐给使用LaTeX制作文档的朋友们。此处对于使用make和latexmk编译预览LaTeX文档分别做一个简要的介绍。……【阅读全文】

9月 17

博客喜乔迁 旧颜添新妆

经过数天的准备、一天的忙碌、短暂的完善之后,博客终于摆脱寄人篱下的尴尬,完全独立自由了!即日起,搭建于72松博客停止更新,独立博客域名不变,仍为 http://yixf.name,将持续更新。此处简记一下独立博客的搭建过程及新家的独特之处。……【阅读全文】

2月 13

情人节特献之“我心永恒”

  • 极坐标中的心形[R]

预览:
heart1
代码:

1
2
3
4
library(plotrix)
t《-seq(-pi,pi,0.1)
r《-1-cos(t/2)
radial.plot(r,t,rp.type="p",lwd=3,line.col=2)
  • 2D的中国心[R]

预览:
heart2
代码:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
#heart
n=30000
p=sort(runif(n,min=0,max=pi))
p=sin(p)+rnorm(n)
plot(sort(rnorm(n)),-p,col="red",pch="·",axes = F, ylab="",xlab=paste("By 微微    ",Sys.Date()),main="Happy Birthday")
#stars
p《-c()
q《-c()
rr《-c(0.68,rep(0.32,4))
#locator()定的下面坐标,精确但不准确。
m《-c(-1.2511927,-0.7707085,-0.5538095,-0.6129638,-0.8293381)
n《-c(-0.079779159,0.42312375,0.05632304,-0.45719796,-0.8440031)
for (k in c(1:5))
{
r=rr[k]
for (i in 1:5)
{
p[2*i-1]=sin(pi*18/90)/sin(pi*54/90)*r*sin(pi*(i*72+36)/90)
q[2*i-1]=sin(pi*18/90)/sin(pi*54/90)*r*cos(pi*(i*72+36)/90)
p[2*i]=sin(pi*18/90)/sin(pi*54/90)*0.38*r*sin(pi*(i*72+18)/90)
q[2*i]=sin(pi*18/90)/sin(pi*54/90)*0.38*r*cos(pi*(i*72+18)/90)
}
x=c(p[1],p[2],p[5],p[6],p[9],p[10],p[3],p[4],p[7],p[8],p[1])
y=c(q[1],q[2],q[5],q[6],q[9],q[10],q[3],q[4],q[7],q[8],q[1])
x=x+m[k]
y=y+n[k]
polygon(x, y, col="yellow",border = "yellow")
}
  • 3D的中国心[R]

预览:
snapshot01
代码(下载):mychina

  • 浪漫的表白

参看:浪漫的表白与猥琐的相思——几个有趣的R代码
Continue reading

11月 29

在Perl程序中显示进度条之多姿多彩的自写代码

  • 方法一

1
2
3
4
5
6
7
8
#!/usr/bin/perl
 
my $max = 10;
for ( 1 .. $max ) {
   my $percent = $_ / $max * 100;
   print "$_ - $percent % OK!n";
   sleep(1);
}
  • 方法二

  • 从“…..”的长度来判断进度。

    1
    2
    3
    4
    5
    6
    7
    8
    9
    
    #!/usr/bin/perl -w
     
    $| = 1;
    my $max = 10;
    for ( 1 .. $max ) {
       print ".";
       print " Complete!n" if ( $_ == $max );
       sleep(1);
    }
    • 方法三

    用滚轮在原地显示进度,当然也可以加入百分比。

    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    
    #!/usr/bin/perl -w
     
    local $| = 1;
    my @progress_symbol = ( '-', '', '|', '/' );
    my $n = 0;
    for ( my $i = 1 ; $i <= 100 ; $i++ ) {
       print "r $progress_symbol[$n] $i";
       $n = ( $n= 3 ) ? 0 : $n + 1;
       select( undef, undef, undef, 0.1 );
    }
    print "n";
    local $| = 0;

    Continue reading

    11月 28

    程序代码中的缩进与大括号风格

    • K&R style

    Named after Kernighan & Ritchie, because the examples in K&R are formatted this way. Also called `kernel style’ because the Unix kernel is written in it, and the `One True Brace Style’ (abbrev. 1TBS) by its partisans. In C code, the body is typically indented by eight spaces (or one tab) per level, as shown here. Four spaces are occasionally seen in C, but in C++ and Java four tends to be the rule
    rather than the exception.……【阅读全文】