Who am I

我的照片
Hefei, Anhui, China
Research Fields: Satellite Geodesy

2012年10月25日星期四

latex输入矩阵

这里讲述两种方法输入矩阵。

1. amsmath宏包提供的矩阵输入环境
  • matrix环境:没有括号的矩阵
  • pmatrix环境:用小括号括起来的矩阵
  • bmatrix环境:用中括号括起来的矩阵
  • Bmatrix环境:用大括号括起来的矩阵
  • vmatrix环境:用单竖线括起来的矩阵
  • Vmatrix环境:用双竖线括起来的矩阵
举例:
\begin{bmatrix} x_1\\ x_2\\ \vdots \\ x_n  \end{bmatrix}  =
\begin{bmatrix}
1 & t_1 & t_1^2 & \cdots & t_1^{n-1}\\ 
1 & t_2 & t_2^2 & \cdots & t_2^{n-1}\\ 
\vdots & \vdots  & \vdots & \ddots & \vdots\\ 
1 & t_n & t_n^2 & \cdots & t_n^{n-1}
\end{bmatrix}
\begin{bmatrix} a_0\\ a_1\\ \vdots \\ a_{n-1}\end{bmatrix}

结果如下:







2. latex自身提供的array环境
举例:
\left [ \begin{array}{lcr}
1 & 2 & 3 \\ 2 & 3 & 4 
\end{array}  \right ]
需要其它类型的括号可以更改红色标注的,如{},[],||,().
注:对于那些标注较多的矩阵(或者复杂矩阵),建议用该方法。


2012年10月24日星期三

vim拼写检查

在利用vim撰写文档时,如何也能享用类似word的自动拼写检查功能呢?以下将介绍两种实现vim拼写检查。

1. vim自带的拼写检查
vim编辑器自带拼写检查功能,可用如下命令控制:
:set spell   %开启拼写检查
:set spell spelllang=en_us   %开启拼写检查功能并指定语言为en_us,如果想检查德语,可用
:set spell spelllang=de
:set nospell   % 关闭拼写检查功能
几个相关的命令:
]s      :将光标移到下一个拼写错误处
[s      :将光标移到上一个拼写错误处
zg     :告诉拼写检查器该单词是正确的
zug   :取消zg
zw    :告诉拼写检查器该单词时错误的
zuw  :取消zw
z=     :显示一个有关的拼写建议列表
1z=   :总是取第一个建议的词

2. 利用插件Engspchk
下载:http://www.vim.org/scripts/script.php?script_id=195
安装:将对应文件放到.vim对应文件夹下
\ec    :检查拼写
\ee   :结束拼写检查
\ea   :选择拼写替换(依赖于agrep)

在我的vim中,mapleader "\" 被","替换了.


2012年10月23日星期二

latex 图形与标题的间距

latex插入的图形或表格,其中标题是由\caption命令生成,如:
\begin{figure}
\includegraphics[]{}
\caption{}  %caption在图形的下面
\end{figure}
又如:
\begin{table}
\caption{}  %caption在表格的上面
\begin{tabular}{cccc}
...
\end{tabular}
\end{table}
注:标题出现的位置由\caption命令决定。

标题上下方的间距由长度\abovecaptionskip和\belowcaptionskip默认分别为10pt和0,因为latex假定图形的标题位于图形的下方,故而在标题上方保留了更多的空白)。

可以通过\setlength命令来修改这两个长度,如:

\begin{figure}
\setlength{\abovecaptionskip}{0pt}
\setlength{\belowcaptionskip}{10pt}
\caption{}  %caption在图形的下面
\includegraphics[]{}
\end{figure}

通常情况下,将表格的标题放在上面,而图形的标题放在下面。想要达到这样的效果,可以在导言区定义如下命令:
\newcommand{\topcaption}{%
  \setlength{\abovecaptionskip}{0pt}%
  \setlength{\belowcaptionskip}{10pt}%
  \caption}
在希望得到上方标题的时候可用\topcaption{}来代替\caption{}即可。


2012年10月22日星期一

matlab库函数

将自己编写的函数库添加到matlab search path中,这些函数即可被其他函数调用,具体步骤如下:
file--set path--Add Folder--save

当然也可以使用addpath命令:
addpath D:/works/MyMatlabFunctions -end 
该语句将D:/works/MyMatlabFunctions文件夹加到matlab默认搜索路径的最后。


ghostscript和gsview

GhostScript是一整套的软件,这些软件提供了:
  • PostScript语言的解释器,这个解释器可以将PostScript语言的文件转换为光栅格式,在显示器上显示,并且可以在没有内建的PostScript语言能力的打印机上打印。
  • PDF文件的解释器,和上面的解释器拥有相同的能力。
  • 文件格式转化,将ps文件转化为pdf文件和将pdf文件转化为ps文件。

GhostScript起初是在Linux系统下开发的,继承了Linux的命令行操作方式。 现在已经从Linux版本移植到其他操作系统。
由于命令解释方式使用不太方便,GhostScript还提供了前端产品:

  • ghostview, gv,在Unix/X11下运行。
  • gsview,在Windows下运行(gsview不能单独运行,必须先安装了Ghostscript)。

gsview的注册码
32411-26380
18963-21159
16417-30959
来源于 http://bbs.ctex.org/forum.php?mod=viewthread&tid=27220


图片空白边缘处理

用latex撰写文档时,插入图片常用的格式为pdf, png和ps格式。在插入图片时,经常遇到的一个问题是:图片的空白边缘,会让生成的latex文档图片周围有大量空白,从而导致页面布局难看。最好的处理方式就是对图片进行编辑,去除图片的空白边缘。以下介绍几种去除图片边缘的方法。 

1. 用matlab绘制图形,保存图形时去除白边
用matlab绘图,如果将图片保存成pdf格式,会导致pdf图片空白边缘非常大。matlab file exchange里面提供了一些函数用来定制图形输出,其中一个很重要的功能就是裁剪白边。
函数文件的地址:http://www.mathworks.com/matlabcentral/fileexchange/23629-exportfig
在使用这些函数时,如果将图片保存成pdf或eps文件时,需要安装gphostscript,具体安装参见该博客另一篇帖子。
举例:export gcf -pdf -r720 'test'   %生成test.pdf文件,图片分辨率为720,默认裁剪。

2. 用GMT绘制的图形(ps),在转换成pdf或png的过程中可以去除白边
ps2raster test.ps -A -E720 -Tg(去除白边)  <====>  ps2raster test.ps -E720 -Tg(不去白边)   png
ps2raster test.ps -A -E720 -Tf (去除白边)  <====>  ps2raster test.ps -E720 -Tf (不去白边)  pdf

3. pdfcrop裁剪pdf
pdfcrop是texlive的一部分,可以用其很方便的裁剪pdf图片的空白边缘。
例:pdfcrop old.pdf new.pdf (生成的new.pdf边缘大小为0,默认)
pdfcrop --margins "5 10 5 10" old.pdf new.pdf (new.pdf边缘<left top right bottom>为5,10,5,10)
pdfcrop --margins 2 old.pdf new.pdf (new.pdf边缘<left top right bottom>都为2)
pdfcrop --margins "2 5" old.pdf new.pdf (new.pdf边缘<left top right bottom>为2,5,2,5)
margins的size单位为bp(bigpoint)

4. pdfedit裁剪
打开pdf文件,选择page--Edit Page Metrics--输入裁剪点的坐标--change。

5.  illustrator, adobe acrobat, inkscape
用这种大型的软件处理和编辑pdf文件,当然也包括裁剪。
注:inkscape是一个矢量图软件。

2012年10月20日星期六

matlab 正态分布密度曲线

本文主要包含两个内容:如何绘制正态分布曲线;如何将直方图与概率密度图联系起来。

绘制正态分布曲线:
norx=normpdf(x,mu,sigma)
其中:x为数据分布区间,如-1:0.1:1; mu为均值; sigma为标准差; norx为对应x区间的密度。
如果直接用normpdf(x),默认是标准正态分布(即mu=0,sigma=1)
norx=norx.*100  %转化成百分比
plot(x,norx,'r-') %绘制密度曲线
注:如果mu和sigma不知道,需要先求出;此外,还有一些normfit函数可以估计一组正态分布数据的均值和标准差。

直方图与概率密度图:
直方图的纵坐标:频率/组距,这样直方图每个bar的面积表示的就是概率。所以在将直方图和概率密度图联系起来时,一定要注意直方图纵坐标的意义(别忘了除以组距)。