TikZ一例

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
\begin{tikzpicture}
\draw [help lines] (0, 0) grid (6, 5);
\draw [thick] (5, 0) -- (0, 4);
\draw [thick] (1.2, 4.5) to [out=-85, in=141.34] (2.5,2);
\draw [thick] (2.5, 2) to [out=-38.66, in=160] (5.2, 0.5);

\draw [thick] (2, 0) -- (0, 4);
\draw [thick] (0.3, 4.1) to [out=-85, in=141.34] (1.7,1.5);
\draw [thick] (1.7, 1.5) to [out=-38.66, in=160] (3.8, 0.3);

\node [left] (A) at (0, 4) {$A$};
\node [below] (B) at (5, 0) {$B$};
\node [below] (BB) at (2, 0) {$B^*$};

\draw [fill] (2.5, 2.0) circle [radius=0.05];
\node [above right] (C) at (2.5, 2.0) {$C$};
\draw [fill] (0.65, 2.74) circle [radius=0.05];
\node [right] (CC) at (0.65, 2.74) {$C^*$};

\draw [thick] (0, 3.26) -- (4.075, 0);
\node [left] (A2) at (0, 3.26) {$A'$};
\node [below] (B2) at (4.075, 0) {$B'$};

\draw [dashed, ultra thick] (0, 2.74) -- (0.65, 2.74) -- (0.65, 0) node [below] {$x_1^*$};
\end{tikzpicture
}

TikZ一例——万有引力示意图

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
\def\R{4}
\tikzstyle{blueball}=[circle, thick, minimum size=1.5cm, draw=blue!80,fill=blue!20]
\tikzstyle{greenball}=[circle, thick, minimum size=1.2cm, draw=green!80,fill=green!20]
\begin{tikzpicture}[>=latex]
\node (m_1) at (0, 0) [blueball]{$m_1$};
\node (m_2) at (\R, 0) [greenball]{$m_2$};

\draw[dashed] (0, -0.8) -- (0, -1.5);
\draw[dashed] (\R, -0.6) -- (\R, -1.5);
\draw[< -, dashed] (0, -1.5) -- (0.45*\R, -1.5);
\draw[->, dashed] (0.55*\R, -1.5) -- (\R, -1.5);
\node (l) at (0.5*\R, -1.5) {$r$};

\draw[->] (0.8, 0) -- (0.4*\R, 0);
\draw[<-] (0.6*\R+0.2, 0) -- (\R-0.6, 0);
\node (F1) at (1.1, 0.3) {$F_1$};
\node (F2) at (\R-1, 0.3) {$F_2$};

\node (G) at (0.5*\R, -2) {$F_1=F_2=G\displaystyle\frac{m_1\times m_2}{r^2}$};
\end{tikzpicture
}

Beamer中使用常用的数学公式字体

Beamer中数学公式所默认使用的字体与一般文章中的不同,看上去很不习惯。
如果希望使用常用的数学公式字体,在老版本的Beamer中可以这样:

1
\documentclass[mathserif]{beamer}

1
\documentclass[professionalfont]{beamer}

新版本的Beamer放弃了这一做法,改用:

1
\usefonttheme[onlymath]{serif}

1
\usefonttheme{professionalfonts}

啥时候改的我也不知道,今天编译的时候总是报Warning,就看了一下log文件。

KTikZ中文设置

KTikZ是一个编写TikZ脚本的辅助软件。主要功能有关键字提示、高亮、自动补全,作图结果实时预览等。初学TikZ的时候用一下,还是很方便的。

但是还有几个问题,都跟中文有关:
1. 不支持中文,输入、显示都没有问题,但是一旦保存退出再打开,就乱码了。不知道是什么编码,肯定用的不是utf8。如果图片中有中文,千万要小心。(更新:升级到svn版就没有这个问题了)
2. 默认用的是pdflatex进行编译,直接生成pdf后再预览,如果想用xelatex,可以在配置中直接设置。但是这样做并不能得到正确的结果,因为KTikZ默认的模板中,用到了preview这个包(这个包使得导出的图片没有多余空白),并且指定编译器是pdftex系列,所以会有问题。这个问题和下面的问题一起通过修改默认模板的方式解决。
3. 图片不支持中文标注。TikZ对中文的支持非常好,一般在文章中作图时,中文都没有问题,主要原因还是KTikZ用的模板没考虑中文。

KTikZ可以直接指定模板,默认的模板放在/usr/share/apps/ktikz/templates下(archlinux环境,其他发行版类似)。为了保险,复制一份到自己的home目录里再修改。
以template_example.pgs为例,改成下面这样,就支持中文标注和xelatex了,有变动的行加了注释。

1
2
3
4
5
6
7
8
9
10
11
12
13
14
\documentclass{article}
\usepackage[adobefonts]{ctex
} %支持中文就靠这一行了
%\usepackage{mathptmx} %这一行是指定公式所用的字体,我看着不习惯,就去掉了
\usepackage{tikz}
%\usepackage{color}
\usepackage[active,xetex,tightpage]{preview} %这一行有改动,将pdftex换成xetex
\PreviewEnvironment[]{tikzpicture}
\PreviewEnvironment[
]{pgfpicture}
\DeclareSymbolFont{symbolsb}{OMS}{cmsy}{m}{n}
\SetSymbolFont{symbolsb}{bold}{OMS}{cmsy}{b}{n}
\DeclareSymbolFontAlphabet{\mathcal}{symbolsb}
\begin{document}
<>
\end{document
}

顺便贴上今天下午作的图和源码:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
\usetikzlibrary{decorations.markings}
\begin{tikzpicture
}[x=4cm,y=4cm, decoration={
markings,%
mark=at position 0.5 with{\arrowreversed[black]{latex};}}] %stealth

\draw(0, 0) node[below left] {$O$};
\draw[-latex] (0,0) --node[below] {$\sqrt{-k/b}$} (1.125,0) node[right=3, below] {$x(t)$};
\draw[-latex] (0,0) --node[left] {$\sqrt{k/a}$} (0,1.125) node[left=-1] {$y(t)$};

\draw[postaction={decorate}, thick] (0, 0) -- (1, 1) node[above right] {$k=0$,平局};

\draw[postaction={decorate}, thick] (0, 0.3) parabola (0.4,0.5);
\draw[postaction={decorate}, thick] (0, 0.5) parabola (0.42,0.75);
\draw[postaction={decorate}, thick] (0, 0.7) parabola (0.41,0.95) node[above] {$k&gt;0$,乙方胜};
\draw[postaction={decorate}, thick, rotate=-90] (0, 0.25) parabola (-0.4,0.5);
\draw[postaction={decorate}, thick, rotate=-90] (0, 0.45) parabola (-0.42,0.75) node[above right] {$k \draw[postaction={decorate}, thick, rotate=-90] (0, 0.65) parabola (-0.41,0.95);
\end{tikzpicture
}

Zim的TeX公式中使用中文

找到_Equation.tex模板文件,改成这样。

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
\documentclass[12pt]{article}
\pagestyle{empty}
\usepackage{CJKutf8}

\usepackage{amssymb}
\usepackage{amsmath}
\usepackage[usenames]{color}

\begin{document}
\begin{CJK}{UTF8}{gbsn
}

% No empty lines allowed in math block !
\begin{align*}
[% equation -%]
\end{align*}

\end{CJK}
\end{document
}

插入时,用

1
2
3
\end{align*}
这里是中文
\begin{align*
}

来跳过align*环境。或者直接把模板文件中的align*环境去掉,但是这样在多数情况下不方便。

另外,如果要插入表格,也可以使用上面的方法跳过align*环境。

Homeland中谁是CIA内奸?

Homeland第一季已经播了10集,说是还有两集这季就完了。第二季啥时候放还不知道。

CIA内部肯定有叛徒。这家伙害死了Lynne Reed(线人,沙特王子女友),放跑了Raqim(那个副教授),炸死了外交官。

如果他不准备在这一季暴露的话,有可能是还没有出现的人物,也就没办法猜了。否则,应该是已经出场的人物,而已经出场的CIA官员并不是太多。

根据Aileen Morgan接到的提醒电话,可以排除所有的女性(当然也有可能不是内奸直接打的电话,但是从Aileen接电话的情况看,这人是第一次打电话过来,所以很可能是内奸本人迫不得已直接打的电话)。已经出场的男性CIA官员主要有David(头儿),Saul,Danny Galvez(分析员,给Carrie开过几次车,站在Raqim家屋顶瞭望的那位),以及安装监听设备的一老一少。

安装监听设备的一老一少好象不是正式工,级别太低,不可能接触核心秘密,可以排除。Saul和Danny也可以排除,主要原因是Danny在Raqim家屋顶搜查无果时,Saul指示Danny使用望远镜瞭望,从而发现疑点,线索转向狙击手。如果两人有一人是内奸,不太可能找到这个疑点。

剩下的只有David了。不管什么线索,只有Carrie和Saul知道的时候,啥事儿没有,时不时有些进展。只要让David知道了,就会出意外。另外,David还让Brody见了那个看守,把刀片给了他。

想来想去,内奸最有可能是David。

让Sage Notebook中的LaTeX环境支持中文

只需要修改$SAGE/devel/sage-main/build/sage/misc/latex.py,就可以让notebook中的latex环境支持中文。
测试环境:Archlinux + Sage 4.7 + TeXLive 2011

  1. COMMON_HEADER字符串的最后添加”\\usepackage{CJKutf8}\n“
  2. 文件中有三处包含”\\begin{document}\n“的字符串(注释块中的不算),在其后添加”\\begin{CJK}{UTF8}{gbsn}\n\n“
  3. 文件中有三处包含”\n\\end{document}”的字符串(注释块中的不算),在其前面添加”\n\n\\end{CJK}\n“

这样,就能在notebook的%latex环境中使用中文了。

KDE回收站没有空间的解决方法

症状:无法删除文件,删除文件时提示“回收站已到达其最大容量! 请手动清理回收站。”用Dolphin打开回收站,没有任何文件,并且回收站所在的分区有足够空间。

一种可能的原因是:~/.local/share/Trash/metadata文件中Size选项所对应的数值太大。

解决方法:将~/.local/share/Trash/metadata文件备份后删除。

一个新的支持latex的vim插件

Automatic (La)TeX Plugin for Vim (atp-vim)是一个新的支持LaTeX的插件。前些天刚发现时,bug还比较多,经常出错,现在的版本好多了。与latexsuite相比,有些新的功能很不错(毕竟06年以后latexsuite就没有更新过),推荐给喜欢LaTeX,VIM,Python的朋友。

完整的特性可以查阅官方的Feature List,或者手册。下面几条是我比较喜欢的。

  • 正向查找。由vim中光标处直接跳至pdf相应位置处。
  • 反向查找。由pdf跳转至vim相应源代码处。
  • 清理中间文件。这个功能实现起来不难,但是有了总是方便一点,特别是对有洁癖的人。
  • 补全命令也很丰富。

总的来说,值得一试。

ps. 目前最新的测试版是9.6.7。从SF的记录来看,最早的版本是今年3月份发布的,上来就是9.1。莫非现在流行大版本号?

7月11日补充:如果源文件所在目录的路径中包含中文,则会出现很多问题,而且很诡异。