MATLAB函数之- bwmorph
MATLAB函数之- bwmorph
bwmorph
功能: 提取二进制图像的轮廓.
语法: BW2 = bwmorph(BW1,operation) ;
BW2 = bwmorph(BW1,operation,n) ; n为次数;
Operation的参数可以有多种选择,现归纳如下:
‘bother’:闭包运算,即先腐蚀,在膨胀,然后减去原图像;
‘bridge’:做连接运算;
‘clean’:去除孤立的亮点;
‘close’:进行二值闭运算;
‘diag’:采用对角线填充来去除8邻域的背景;
‘dilate’:采用结构元素ones(3)做膨胀运算;
‘erode’:采用结构元素ones(3)作腐蚀运算;
‘fill’:填充孤立的黑点; ‘hbreak’:断开H形连接;
‘Majority’:若像素的8邻域中有大于或等于5的元素为1,则像素为1,否则为0;
‘open’:执行二值开运算;
‘remove’:去掉内点,即若像素的4邻域都为1,则像素为0;
‘shrink’n=inf:做收缩运算,这样没有孔的物体收缩为一个点,而含孔的物体收缩为一个相连的环,环的位置在孔和物体外边缘的中间,收缩运算保持欧拉数不变,
‘skel’n=inf: 提取物体的骨架,即去除物体外边缘的点,但是保持物体不发生断裂,它也保持欧拉数不变。 ‘spur’:去除物体小的分支;
‘thicken’n=inf;对物体进行粗化,即对物体的外边缘增加像素,知道原来为连接的物体按照8邻域被连接起来。粗化保持欧拉数不变。
‘thin’n=inf:对物体进行细化,使得没有孔的物体收缩为最小连接棒,而含有孔的物体收缩为一个连接的环,同样细化保持欧拉数不变。
‘tophat’:用原图减去开运算后的图像;
More......
Wednesday, April 28, 2010 | Labels: bwmorph, matlab, 形态学, 运算 | 0 Comments
matlab 中序列求极值的方法
matlab 中序列求极值的方法

坛子里的几个经典方法:
利用数学里驻点和极值点定义来求。
--------------------------------------ilxy的方法 -------------------------------------------------------------------
>> aa=randperm(20)
aa =
16 13 17 7 19 18 14 8 11 2 20 3 6 4 15 1 12 10 5 9
>> bb=intersect(find(diff(aa)>0)+1,find(diff(aa)<0))
bb =
3 5 9 11 13 15 17
----------------------------------------------------------------------------------------------------------------------
----------------------------------hyperelastic 的方法----------------------------------------------------------
N = 100;
aa=randperm(N);
index = find(((aa(2:N-1)>aa(1:N-2))+(aa(2:N-1)>aa(3:N)))==2)+1;
bb = aa(index);
-------------------bainhome 的方法 -----------------------------------------------------------------------------
a=rand(1,100); find(diff(sign(diff(a)))>0)+1
------------------------------------------------------------------------------------------------------------------------
以上代码都是求极大值,略微变换后可以得到极小值。
------------------------------------eight版主给的方法 ------------------------------------------------------------
d=diff(x);
n=length(d);
d1=d(1:n-1);
d2=d(2:n);
indmin=find(d1.*d2<0 & d1<0)+1;
indmax=find(d1.*d2<0 & d1>0)+1;
------------------------------------------------------------------------------------------------------------------------
虽然基本原理一样,不过几位的方法都各有特色。都是前辈们智慧的结晶,在此深表感谢。
小代码体现大智慧的典范!
我在实验中所搜到的方法,可惜这次没搜索到:
假设待求的数列为data,则find(diff(sign(diff(data)))== - 2)+1 可求极大值。find(diff(sign(diff(data)))== 2)+1 可求极小值。
More......
Tuesday, April 27, 2010 | Labels: matlab, 极值 | 0 Comments
Uninstalling Visual Studio 2010
Uninstalling Visual Studio 2010
Uninstall Visual Studio 2010
Uninstall Visual Studio Office 2010
Uninstall other 2010 stuff...
Search on Framework
Uninstall .NET Framework 4.0 Extended
if there's errors,Rename the crashed program (always in the v4.0 frameworks directory in my case) to have a *.OLD extension
Uninstall the .NET Framework 4 Client Profile
Done!
More......
Tuesday, April 27, 2010 | Labels: 2010, uninstall, visual studio, vs | 0 Comments
Python Tips - 判断点是否在直线上
Python Tips - 判断点是否在直线上
#! /usr/bin/env python
import math
class Point:
def __init__(self, x, y):
self.x = x
self.y = y
def __repr__(self):
return str((self.x, self.y))
class Segment:
def __init__(self, p1, p2):
self.start = p1
self.end = p2
self.length = getDist(p1, p2)
def __repr__(self):
return str((self.start, self.end, self.length))
def isOn(self, p):
if getDist(p, self.start) + getDist(p, self.end) == self.length:
return True
else:
return False
def getDist(p1, p2):
return math.sqrt((p1.x-p2.x)**2 + (p1.y-p2.y)**2)
def main():
p1 = Point(-1, -1)
p2 = Point(1, 1)
p3 = Point(0, 0)
p4 = Point(0, 1)
line = Segment(p1, p2)
print 'Is ', p3, ' on line ', line, ':', line.isOn(p3)
print 'Is ', p4, ' on line ', line, ':', line.isOn(p4)
if __name__ == '__main__':
main()
More......
Monday, April 26, 2010 | Labels: python | 0 Comments
Python Tips - 正则表达式 (Regular Expression)
Python Tips - 正则表达式 (Regular Expression)
1 非贪婪flag
>>> re.findall(r"a(\d+?)", "a23b")
['2']
>>> re.findall(r"a(\d+)", "a23b")
['23']
注意比较这种情况:
>>> re.findall(r"a(\d+)b", "a23b")
['23']
>>> re.findall(r"a(\d+?)b", "a23b")
['23']
2 如果你要多行匹配,那么加上re.S和re.M标志
re.S:.将会匹配换行符,默认.不会匹配换行符
>>> re.findall(r"a(\d+)b.+a(\d+)b", "a23b\na34b")
[]
>>> re.findall(r"a(\d+)b.+a(\d+)b", "a23b\na34b", re.S)
[('23', '34')]
>>>
re.M:^$标志将会匹配每一行,默认^和$只会匹配第一行
>>> re.findall(r"^a(\d+)b", "a23b\na34b")
['23']
>>> re.findall(r"^a(\d+)b", "a23b\na34b", re.M)
['23', '34']
但是,如果没有^标志,
>>> re.findall(r"a(\d+)b", "a23b\na23b")
['23', '23']
可见,是无需re.M
来自 http://www.juyimeng.com/python-multi-line-non-greedy-regular-expression-sample.html
More......
Saturday, April 24, 2010 | Labels: python, re, regular expression, 正则 | 0 Comments
MATLAB自动生成exe文件
MATLAB自动生成exe文件

方法一:
1.设置编译器:
在确定安装好Matlab Compiler后,还需要对Compiler进行适当的配置,方法是在Matlab命令窗口输入:Mbuild –setup, 按提示选择matlab自带编译器LCC。
2.将脚本编译为可执行文件:
如项目文件包含:gui.m, gui.gif, fun1.m。在项目文件路径下命令行输入:mcc –m gui.m,生成:mccExcludedFiles.log,ReadMe.txt,gui.ctf,gui.prj,gui_main.c,gui_mcc_component_data.c,gui.exe。其中:gui.ctf,gui.exe为脱离matlab环境运行必需的文件。
3.在未安装matlab的机器上运行可执行程序。
将MATLAB根目录下\toolbox\compiler\deploy\win32中的MCRinstaller.exe安装到该计算机上,将生成可执行程序脱离matlab运行所需的函数库。将2中生成的gui.ctf,gui.exe拷贝到该计算机同一路径。运行gui.exe将生成gui_mcr文件夹,包含程序运行所需的库。至此完成。
4.去除独立可执行程序运行时的“DOS黑窗口”。
以上生成的exe程序运行时首先弹出一个DOS界面窗口,如果不需要其输出数据和错误信息,可将其去除。
matlab命令行输入:
cd(prefdir)
edit compopts.bat
此时compopts.bat打开,在文件最后添加: set LINKFLAGS=%LINKFLAGS% -subsystem windows
如果程序比较复杂,易出现异常,则不建议去除这个dos窗口以便调试。
另外,这个办法是适用于你用的编译器为LCC,如果是其他的,那么所加语句有所不同
Microsoft Visual C/C++:
set LINKFLAGS=%LINKFLAGS% /SUBSYSTEM:WINDOWS /ENTRY:mainCRTStartup
Borland: set LINKFLAGS=%LINKFLAGS% -aa
5.遇到某些函数不能使用的问题。
我的程序中用到vpa函数,运行gui.exe出现:undefined method or function 'vpa' for input argument type of 'double'错误提示。而gui.m脚本在matlab环境可以运行。原因:百度搜到的信息为:matlab不支持符号工具箱的编译。只好避开使用此函数。
使用结果:
总体上很顺利,没遇到5所述的问题,但“DOS黑窗口”按4所述方法无法去除。在第2步中,输入mcc -m fillholegui.m或mcc -B sgl fillholegui.m均可。编译过程比较缓慢,需要耐心等候。
方法二:
matlab编程很方便,强大的矩阵运算功能,很多好用的工具箱,但是一般程序都要在matlab环境中运行,能否脱离这个环境打包发布呢,matlab也提供了这样的工具。
1. 转化为c/c++程序并编译为.exe
先验证mcc是否可用,用matlab中的example验证即可。建议不用matlab默认的lcc 编译器(可能有问题),可使用VC6编译器(按默认路径安装)由于带有界面,需要图像库支持,编译时应使用命令: mcc -B sglcpp pressure编译生成若干c/c++源码,以及.exe文件、bin目录中figure菜单条/工具条文件(.fig)等程序发布需要.exe、bin\、.fig
2. 在未装matlab的电脑上运行程序需要数学运行时库、图像运行时库以及用到的工具箱mex文件前两者已经在\matlab\extern\lib\win32mglinstaller.exe压缩包中,将其解压,并在环境变量path中添加解压到的路径另外若程序中还用到其他工具箱的东西,那么需要将此工具箱中需要的mex文件也一并放在解压到的路径,子文件夹位置与matlab中的位置相同
3. 在确保.exe程序可以运行的情况下 可以用setup factory打包发布
使用结果:
总体来说,方法失败,不过也可能是因为不是用VC的编译器。我选择的是c++Builder的编译器,输入命令mcc -B sglcpp fillholegui2.m出现错误;输入命令mcc -B sgl fillholegui2.m 出错;输入命令mcc –p -B sgl fillholegui2.m出错。
网上可能还有一些其它的方法,比如在LCC编译环境下,输入命令为mcc -B sgl fillholegui2.m;mcc –m -B sgl fillholegui2.m;mcc –p -B sglcpp fillholegui2.m等。稍微进行了实验,这几个命令都会报错。谨慎怀疑是将LCC编译器和C++编译器环境下的命令混淆了。
More......
Friday, April 23, 2010 | Labels: compile, exe, matlab, 生成exe | 0 Comments
matlab坐标轴标注和特殊字体
matlab坐标轴标注和特殊字体

set(gca,'XTick',[0:pi/3:2*pi]) 设置所要显示坐标轴刻度,
set(gca,'XTickLabel',[0:pi/3:2*pi]) 给这些数据加标签
gca是单词Get current axes handle的缩写,获得坐标轴句柄。(不知道matlab为什么不自动对应数据加标签,还需要多一条命令)出来的图形
坐标轴标注:
1. 控制坐标轴尺度长度:set(gca,'XLim',[-pi/2 pi])
2. 定制自己想标注的刻度:
(1)set(gca,'XTick',[-pi/2:pi/4:pi]) %%%坐标轴最小值,步长,最大值
(2)set(gca,'XTickLabel', {'-pi/2' '-pi/4:' '0' 'pi/4' 'pi/2' 'pi*3/4' 'pi'})
3. 反转坐标轴:set(gca,'XDir','reverse')
4. 上下标及latex公式
输下标:_{wb}
输上标:^{0.5}
输 latex公式:
text('Interpreter','latex',...
'String','$$\int_0^x\!\int_y dF(u,v)$$',...
'Position',[.5 .5],...
'FontSize',16)
在Matlab中输入上标、下标、特殊符号或字体:
bf,\it,\rm表示黑体,斜体,正体字符
上标用 ^(指数),下标用 _(下划线)
调用方式为: ^{任意字符}, _{任意字符}, 注意{}的使用!
希腊字母等特殊字符用 \加拼音如:
α \alpha β \beta γ \gamma θ \theta Θ \Theta
Г \Gamma δ \delta Δ \Delta ξ \xi Ξ \Xi Ω \Ommiga
η \elta ε \epsilong ζ \zeta μ \miu υ \nu τ \tau
λ \lamda Λ \Lamda π \pi Π \Pi σ \sigma Σ \Sigma
φ \phi Φ \Phi ψ \psi Ψ \Psi χ \chi ω \ommiga
< \leq > \geq 不等于 \neq << \ll >> \gg
正负 \pm 左箭头 \leftarrow 右箭头 \rightarrow 上箭头 \uparrow
体会以下两例:
figure, title('\zeta^{-t}sint');
figure, title('x~{\chi}_{\alpha}^{2}(3)');
More......
Thursday, April 22, 2010 | Labels: image, latex, matlab, 坐标轴 | 0 Comments
Python FAQ: charset detection
Python FAQ: charset detection
Q:
在处理一个url提交的数据
在PC上,大多数浏览器会以utf8编码提交数据
“北京西”看起来是这样“%E5%8C%97%E4%BA%AC%E8%A5%BF”
在手机上,Mobile IE会以GBK提交数据
“北京西”看起来是这样“%B1%B1%BE%A9%CE%F7”
我的程序需要不加区别的处理这两种输入,我应该如何判断这是哪种编码,然后
统一地将他们转换为unicode呢?
===================
A:
>>> import chardet, urllib
>>> chardet.detect(urllib.unquote_plus('%E5%8C%97%E4%BA%AC%E8%A5%BF'))
{'confidence': 0.87624999999999997, 'encoding': 'utf-8'}
>>> chardet.detect(urllib.unquote_plus('%B1%B1%BE%A9%CE%F7'))
{'confidence': 0.98999999999999999, 'encoding': 'GB2312'}
chardet
http://chardet.feedparser.org/
More......
Thursday, April 22, 2010 | Labels: charset, detection, 检测, 编码 | 0 Comments
图像处理:直方图均衡化
图像处理:直方图均衡化
我们来看一个灰度图像,表示灰度 i 出现的次数,这样图像中灰度为 i 的像素的出现概率是
L 是图像中所有的灰度数,n 是图像中所有的像素数, p 实际上是图像的直方图,归一化到 。
把 c 作为对应于p 的累计概率函数, 定义为:
c 是图像的累计归一化直方图。
我们创建一个形式为 的变化,对于原始图像中的每个值它就产生一个 y,这样 y 的累计概率函数就可以在所有值范围内进行线性化,转换公式定义为:
注意 T 将不同的等级映射到 域,为了将这些值映射回它们最初的域,需要在结果上应用下面的简单变换:
上面描述了灰度图像上使用直方图均衡化的方法,但是通过将这种方法分别用于图像颜色值的红色、绿色和蓝色分量,从而也可以对彩色图像进行处理。
中:本方法处理后的图像及其直方图
下:matlab自带的histeq处理图像及其直方图
对比直方图能看出,本方法均衡后图像对比度加强,同时也保持了直方图的轮廓形状,效果应该说优于matlab自带的函数histeq.
More......
Friday, April 16, 2010 | Labels: equalization, histogram, 均衡化, 直方图 | 0 Comments
Python中函数的参数定义和可变参数
Python中函数的参数定义和可变参数

刚学用Python的时候,特别是看一些库的源码时,经常会看到func(*args, **kwargs)这样的函数定义,这个*和**让人有点费解。其实只要把函数参数定义搞清楚了,就不难理解了。
先说说函数定义,我们都知道,下面的代码定义了一个函数funcA
def funcA():
pass
显然,函数funcA没有参数(同时啥也不干:D)。
下面这个函数funcB就有两个参数了,
def funcB(a, b):
print a
print b
调用的时候,我们需要使用函数名,加上圆括号扩起来的参数列表,比如 funcB(100, 99),执行结果是:
100
99
很明显,参数的顺序和个数要和函数定义中一致,如果执行funcB(100),Python会报错的:
TypeError: funcB() takes exactly 2 arguments (1 given)
我们可以在函数定义中使用参数默认值,比如
def funcC(a, b=0):
print a
print b
在函数funcC的定义中,参数b有默认值,是一个可选参数,如果我们调用funcC(100),b会自动赋值为0。
OK,目前为止,我们要定义一个函数的时候,必须要预先定义这个函数需要多少个参数(或者说可以接受多少个参数)。一般情况下这是没问题的,但是也有在定义函数的时候,不能知道参数个数的情况(想一想C语言里的printf函数),在Python里,带*的参数就是用来接受可变数量参数的。看一个例子
def funcD(a, b, *c):
print a
print b
print "length of c is: %d " % len(c)
print c
调用funcD(1, 2, 3, 4, 5, 6)结果是
1
2
length of c is: 4
(3, 4, 5, 6)
我们看到,前面两个参数被a、b接受了,剩下的4个参数,全部被c接受了,c在这里是一个tuple。我们在调用funcD的时候,至少要传递2个参数,2个以上的参数,都放到c里了,如果只有两个参数,那么c就是一个empty tuple。
好了,一颗星我们弄清楚了,下面轮到两颗星。
上面的例子里,调用函数的时候,传递的参数都是根据位置来跟函数定义里的参数表匹配的,比如funcB(100, 99)和funcB(99, 100)的执行结果是不一样的。在Python里,还支持一种用关键字参数(keyword argument)调用函数的办法,也就是在调用函数的时候,明确指定参数值付给那个形参。比如还是上面的funcB(a, b),我们通过这两种方式调用
funcB(a=100, b=99)
和
funcB(b=99, a=100)
结果跟 funcB(100, 99)都是一样的,因为我们在使用关键字参数调用的时候,指定了把100赋值给a,99赋值给b。也就是说,关键字参数可以让我们在调用函数的时候打乱参数传递的顺序!
另外,在函数调用中,可以混合使用基于位置匹配的参数和关键字参数,前题是先给出固定位置的参数,比如
def funcE(a, b, c):
print a
print b
print c
调用funcE(100, 99, 98)和调用funcE(100, c=98, b=99)的结果是一样的。
好了,经过以上铺垫,两颗星总算可以出场了:
如果一个函数定义中的最后一个形参有 ** (双星号)前缀,所有正常形参之外的其他的关键字参数都将被放置在一个字典中传递给函数,比如:
def funcF(a, **b):
print a
for x in b:
print x + ": " + str(b[x])
调用 funcF(100, c='你好', b=200),执行结果
100
c: 你好
b: 200
大家可以看到,b是一个 dict对象实例,它接受了关键字参数b和c。
常规参数,*参数及**参数可以同时使用,具体怎么用?看看Python Reference Manual吧,关于Function definitions的那些章节。
More......
Thursday, April 15, 2010 | Labels: python, 变长, 可变参数 | 0 Comments
gnumex for matlab
gnumex for matlab
gnumex 可以让 matlab mex 使用 gcc 进行编译,主要是 Windows 上。
需要安装
MingW
gnumex, 可装在 mingw 目录下,会自动识别 mingw
装好以后
matlab 中执行,gnumex, 出来一个设置的界面,生成 mex optional batch file
以后编译的时候,使用
gnumex -f _path_to_mexopts.bat file_to_be_compiled
More......
Tuesday, April 13, 2010 | Labels: gcc, matlab | 0 Comments
latex文字上加点
latex文字上加点
貌似 latex 不支持 utf-8
要输入 ä,则用\"a
More......
Tuesday, April 13, 2010 | Labels: latex, tex, 加点 | 0 Comments
LATEX+BIBTEX
LATEX+BIBTEX
![]()
1. 最简单的latex文件
\documentclass{article}
\begin{document}
blabla
\end{document}
blabla里边随便写一些乱七八糟的东东, 就能被编译然后看到了~.~
中文支持, 用CJK包
\documentclass{article}
\usepackage{CJK}
\begin{CJK}{GBK}{song}
\begin{document}
试汉字
\end{CJK}
\end{document}
2. 注释
'%'用来注释%后的语句, 编译时忽略
块注释:
\iffalse
...
\fi
3. 空格
\ ,~ 二者都可以表示空一格; \,表示空很小一点距离, \:大一点, \;再大一点; \!往回退一点点; \hspace{1cm/10pt/0.1\texwidth}横向空一定距离, \vspace{...}纵向空一定距离; \phantom{000}中间随便写些什么, 宽的字符就空得多一些, 窄的字符就空的少一些, 比\hspace{}强硬一些, 不过在公式对齐时最好还是用&, 用\phantom比较难调, 而且不方便修改.
4. 插图,表格
好象\label要放到\begin{figure}...\end{figure}环境的最后才能在引用时正确显示标号(还没有试清楚). 见下面:
例:
\begin{table}
\centering
\caption{The $t^{\alpha}$). The columns are the same as in Table \ref{tab-emission}.}
\begin{tabular}{c|c|c}
\hline
a1 & b1 & c1 \hline
a2 & b2 & c2 \hline
...
\label{kaka}
\end{tabular}
\end{table}
注意label的位置, 在{tabular}内而不是外边, 否则就出乱子了. figure的label也是. 实际上是\label命令必须紧接着\caption命令给出.
5. 生成索引
\usepackage{makeidx}
\makeindex
\begin{document}
body: \index{a!b} (可以是a, a!b, a!b!c等)
\printindex
\end{document}
见到\makeindex后latex foo.tex会自动生成foo.idx, 然后在命令行中还要makeindex foo.idx生成.ind文件, 然后才能再latex foo.tex.
6. 参考文献, 如何使用bibtex
首先要建立一个foo.bib文件用于存放文献信息, 内容见xampl.bib, 有各种格式的, 如
@ARTICLE{article-minimal,
author = {L[eslie] A. Aamport},
title = {The Gnats and Gnus Document Preparation System},
journal = {\mbox{G-Animal's} Journal},
year = 1986,
}
其中article-minimal是要被引用时用的;
然后主文件(foo.tex)中做以下的事:
\cite{article-minimal}
...
\bibliography{foo}
\bibliographystyle{plain} (别人有个各种样式的比较)
最后编译的时候分四步: 1. latex foo.tex (生成.aux文件) 2. bibtex foo.aux 3. latex foo.tex 4. latex foo.tex (重复); 当然, 在执行的时候是可以不写后缀的, 如5. xdvi foo即可看效果.
bibtex 会生成一个bbl文件, 以后就可以直接修改这个文件, 投稿的时候也只需带上这个文件, 或者把这个文件的内容拷到tex文件中.
参考: man bibtex, bibtex/, "关于参考文献.pdf", bibtex.chm 或LaTeX2e使用手册(即出版出来的
7. 用bibtex,如何实现每章后面加上参考文献
\usepackage{chapterbib}
然后看chapterbib.sty文件,里面的说明非常之详细
8. 在一个圆圈里放一个数字: \textcircled{\scriptsize1} 或者 $\bigcirc$\hspace{-7.5pt}1
如何在文中实现带圈的数字
答:1)使用\textcircled{}命令,后面的参数可以是一个字符或者汉字(配合CJK)
,甚至也可以是公式,但是它只会给第一个字符或者汉字加上 > 合适的圆圈,字体
放缩命令对它也有效,因此可以利用这点实现两个字符加圈的效果,但是需要仔细的
调整尺寸,参考如下命令: > \Large{\textcircled{\small{12}}}、\textcircled
{九}。
2)使用pifont宏包,那里面有很漂亮的带圈的各种数字符号(仅限于阿拉伯数字,如果想>
使用加圈的中文“一”至“九”就不行了)。在.tex > 文件中尝试下列命令:\ding{172}>~\ding{211}。
3)在GB和GBK字库中本来就有10个加圈数字形式,可以直接在 CJK中使用。如果不超过11的>
话应该够用了呵呵:①②③④⑤⑥⑦⑧⑨⑩,这些汉 > 字可以直接使用数字软键盘输入(>
以智能ABC输入法为例,其实大部分输入法都是一样的):打开软键盘,选择“数字序号”>
即可看到。
9. 记数器解决方案
\begin{enumerate}
\item
\item
\newcounter{temp} \setcounter{temp}{\value{enumi}}
\end{enumerate}
...
\begin{enumerate}
\setcounter{enumi}{\value{temp}}
\item dd
\end{enumerate}
10. 用Latex做幻灯片
目前欣赏beamer. 这里有一个非常齐全的用 latex做幻灯片的各种方案的比较. (原始网址是http://webpc.shtu.edu.cn/yctang/CteX_Talk/homepage/compare.htm)
11. 如何输出这个字符 ~
1. \textasciitilde 或者 2. \~{}
12. 插入其他格式的图片如jpg格式的
(1). 最简单的办法是用pdflatex进行编译, 于是只需在原文件中写上该图片的名字;
(2).用graphicx宏包, (不知1,2是否一起用)
13. 一个加超链接的例子
\href{http://www.toolscenter.org/products/texniccenter}{TeXnicCenter}
14. 关于特殊字符
有一个叫symbols-a4.pdf的文件, 里边记录了几千个特殊符号的表示方法, 例如
15. \sqrt的真正用法: \sqrt[a]{b}, 其中a是在根号前的那个数字, 如果是3, 就是开三次方.
16. 使用bibtex前面已有介绍, 如何修改bst文件? 还是不清楚, 不过成功修改了一个:
FUNCTION {article}
{ output.bibitem
format.authors "author" output.check
author format.key output
%%%%% name.or.dash
format.date "year" output.check
date.block
eprint missing$
{
crossref missing$
{ journal
"journal" output.check
format.vol.num.pages output
}
{ format.article.crossref output.nonnull
format.pages output
}
if$
format.journal.pages
}
{eprint output}
if$
format.note output
fin.entry
}
这个 function就是对bib文件的条目为article的进行整理的, 原来对于是预印本文献, 我的bib条目是
@ARTICLE{2006astro.ph..1063Z,
author = {{Zhang}, B. and {Gil}, J. and {Dyks}, J.},
title = "{Physical Interpretations of Rotating Radio Transients}",
journal = {ArXiv Astrophysics e-prints},
eprint = {arXiv:astro-ph/0601063},
year = 2006,
month = jan,
adsurl = {http://adsabs.harvard.edu/cgi-bin/nph-bib_query?bibcode=2006astro.ph..1063Z&db_key=PRE},
adsnote = {Provided by the Smithsonian/NASA Astrophysics Data System}
}
其中有eprint项, 但是在所用的aa.bst中没有, 结果显示为 Zhang ..., ArXiv Astrophysics e-prints, ..., 而没有arXiv:astro-ph/0601063, 结果参考文献的这个条目根本不能确定是哪一篇文献.
解决办法就是在aa.bst中最前面声明journal, year...的地方加上eprint, 然后如上加上红字部分, 意思是如果eprint项是空的, 那么按照正常的显示期刊, 卷号, 页码, 如果不空, 则不显示这些, 而只输出eprint中的内容.
相应的参考文献有btxhack(设计bst文件), btxdoc(针对bib文献, 是bibtex的用法). 在tex的发行中都包含了.
17. 要生成一个自己想要的bst样式文件, 最好的办法是用custom-bib, 找到这个tgz的包, 解压, 里边有详细的说明, 照着做就是了. 简单说就是latex 编译文件, 按提示选则, 最终生成bst文件.
原文地址 http://blog.ecoman.asia/user1/51/archives/2007/937.html
More......
Friday, April 09, 2010 | Labels: bibtex, latex, tex | 0 Comments
删除/卸载 windows search(Windows Desktop Search)
删除/卸载 windows search(Windows Desktop Search)

如果是4.0版,请按照如下的方法卸载:
1、Start by running up Add & Remove Programs from the control panel and look for Windows Desktop Search in the list. Unlike with version 3, Windows Search v4 should be there.
4.0版是可以在“添加和删除程序”里面找到卸载项的。
2、If not, open a cmd window (click on Start, then “Run..” and type cmd in the Run dialogue that then appears). Then copy and paste the following line into the cmd window:
但如果“添加和删除程序”找不到卸载项,请点击 开始--运行,输入cmd,然后自制如下的内容到cmd窗口内执行。
%systemroot%\$NtUninstallKB940157$\spuninst\spuninst.exe
3、If that also fails and you get a “The system cannot find the path specified.” error, then I have zipped up a copy that you can download from here. To work out where to extract it to, type:
如果还是失败,请下载此文件 ,然后解压到C:\WINDOWS\目录下(注意解压出来的目录名是 $NtUninstallKB940157$ ),然后再重复第2步。(或者找到目录C:\WINDOWS\$NtUninstallKB940157$\spuninst,双击运行文件 spuninst.exe)
echo %systemroot%
into your cmd window and note the location it points to (it is likely to be C:\Windows, but may not be if you upgraded to XP for Windows 2000 for example). Open the zip file, and extract the $NtUninstallKB940157$ to this location. Now repeat step 2.
More......
word中怎样在方框里打钩
word中怎样在方框里打钩

Word 2003,2007类似.
1.完美型
制作方法:
1、右击工具栏-勾选“控件工具栏”,将打开“控件工具栏”;
2、在控件工具栏中找到“复选框”控件;
3、单击这个按钮之后,会在当前光标位置自动插入一个“复选框”按钮和“CheckBox1”字符,此时“控件工具栏”左上角的“设计模式”按钮(就是那个有三角板、尺子和铅笔的按钮)为按下状态,表明此时处于“设计模式”;
4、在“CheckBox1”复选框上右击:“复选框 对象”-“编辑”,把 “CheckBox1”文字改成需要的文字(也可以右击这个复选框,在菜单中选择“属性”,然后在属性对话框中设置更多内容);
5、点击“控件工具栏”里左上角那个“设计模式”按钮,返回到正常的文字编辑状态,此时你可以在那个框中点击鼠标来打勾或者取消打勾。
(此方法参考pconline bbs ID:liuyuping)
2.简约型
选择菜单中"插入"——“符号”,在窗口的字体中选择“Wingdings”或“Wingdings2”(Wingdings字体是一种将字母与图形相关联的字体),然后拖动滚动条找到相应的符号(空白框以及带钩的框都有)。
(此方案参考pconline bbs ID:zkzkzkzkzk)
3.普通型
“插入”--“特殊符号”--“数学序号”--选择“√”,然后在“格式”菜单中,找到“中文版式”,选择“带圈字符”即可。
==================
文字打钩办法
首先直接按下“Ctrl+F9”快捷键,产生一个空域符号(一对大括号)。将鼠标定位于大括号内,然后输入如下代码“EQ \o(A,√)”,注意括号中的“,”是英文标点,不要双引号。用鼠标分别选中䄔和√对它们的大小、位置、字符间距等分别进行设置(和一般文字相同,比如选中√,格式-字体-字符间距-位置中提升),使这两个字符的相对大小、相对位置合适,完成后用鼠标全部选择,按下“Shift+F9”快捷键。注意不要双引号。
文字也是一样的,把A换成文字就可以了,这种方法是实现两个字符重叠。
More......
Monday, April 05, 2010 | Labels: office, tick, word, 打钩 | 0 Comments



