apt-log: 找回误删的软件包

本文在署名-非商业性使用-相同方式共享 3.0版权协议下发布, 转载请注明出自aifreedom.com

今天想在 Linux 里装上 PPLive 看 WDC 的比赛, 装了几个依赖的 lib 还是不能用. 嫌麻烦不折腾了, 就顺手把刚装的几个 lib 包删掉. 正删着发现不对劲了, 怎么把 gnome-do, workrave, emacs, AUCTeX 都删了?! 想也没想, 就把终端关了. 这时候才想起来关了终端也没用, apt-get 是 root 的进程. 找到 pid, 果断 kill.

但删除已经进行到一半被退出, 也不知道到底删了多少去了. 用 sudo dpkg --configure -a 恢复更新的进程. 果然满目疮痍, 连 nautilus 都没了.. 只有找 apt 的日志来恢复了.

LaTeX 宏包小记 (1): 用 prosper 制作幻灯片

本文及所附代码, 文件在署名-非商业性使用-相同方式共享 3.0版权协议下发布, 转载请注明出自aifreedom.com

在这个 Blog 里, 我已经写过几篇配置 LaTeX 的文章了, 包括 CJK 宏包字体的配置texlive 2008 的配置. 现在计划开始写一个新的系列, 介绍 LaTeX 里林林总总的宏包(Macro Packages)们.

这个系列的文章不是为对 LaTeX 一无所知的新手写的, 因为我不擅长写入门教程. 但如果你确实需要一本 LaTeX 入门教程, 我极力推荐 “The Not So Short Introduction to LaTeX 2ε”. 在 ctex.org 可以找到它的中文版, “一本不太简短的 LaTeX 2ε 介绍”.

虽说这个系列不是为新手写的, 但它们也不是为那些已经能闭着眼睛就可以用 LaTeX 排出想要的任何效果的高手写的. 这些文章可以看作是我的学习笔记, 而我希望能在 Blog 里同更多和我一样正在努力成为 LaTeX 高手的朋友们分享. 在这些日志里, 我记录下了使用过的一些有趣和/或有用的宏包. 但实话实说, 这些文章都相当没有技术含量. 在我自己看来, 都如白开水一般平淡无味.

在开始正文前, 先废话几句. TeX 和 LaTeX 这两个词究竟该怎么读? Knuth 说 “TeX” 来自希腊单词 “texnologia”(technology) 的第一个音节, 发音为 “Tech”, 就是英文单词 “technology” 的第一个音节. 而 “LaTeX” 的发音是 “Lay-tech” 或 “Lah-tech”. TeX 的伟大不仅仅体现在 Knuth 大神那近乎完美的编码, 更体现在 Knuth 大神为它留下的强大的可扩展能力. LaTeX 就是基于 TeX 开发的一个宏包, 它的出现让 TeX 更平易近人, 使普通人也能轻松地完成高质量的排版.

LaTeX 最常见的用途是用来为学术论文进行排版, 因为它可以清晰地体现文章的逻辑结构, 也可以让作者方便地排版数学公式, 更可以很容易地生成像脚注, 交叉引用, 目录和引用文献这样的复杂结构. 但今天要介绍的宏包 prosper 却是用来生成幻灯片的. 使用 LaTeX 生成幻灯片的优势在于它有 METAFONT, tikz 等这样强大的绘图工具的支持, 在演示逻辑性很强的过程时(比如, 演示最短路的算法时)会相当方便. 但缺点是因为生成的文件是 pdf, 很难有丰富的动画效果.

但我这次使用它却只是”闲得蛋疼”. 这学期的英文写作课上, 我要代表小组做一个 presentation. 在写幻灯片时, 我放弃了 WPS, 转而尝试了一下完全不熟悉的 prosper.

首先, 文档类型要声明为 prosper, 即 \documentclass{prosper}. 在这里可以声明一些参数, 比如是否生成黑白的幻灯片, 使用何种主题等等. 在导言部分可以用 \title, \subtitle, \author, \institution 等命令定义幻灯片的标题, 作者等信息. 然后就可以 \begin{document}, \maketitle 了. 日志的最后有我这次 presentation 的幻灯片和源文件, 不知道我这段话说了什么没关系, 可以参照那个源文件的结构.

每一页幻灯片都是一个 slide 环境, 就是被 \begin{slide}{title} 和 \end{slide} 包围着的一段文字. 在幻灯片里, 可以随意书写文字, 但为了体现演讲的逻辑性, 应该多使用 itemize 和 enumerate 环境.

为了使幻灯片里的条目可以随着演讲者的要求, 一条一条地出现在屏幕上, 在 PowerPoint 里可以使用动画. 但在这里只能让第一张幻灯片上写着第一条, 第二张第二条, 如此产生它们是一条一条出现的伪动画效果了. 当然, 不需要你自己人肉完成这项工作, 但你得告诉 LaTeX 到哪里是第一条, 到那里是第二条.

需要这样效果的部分要用 \overlay{n}{…} 包围起来, 参数 n 是希望分成的页数. 在内容里, 用 \FromSlide{m} 告诉 LaTeX, 我后面的内容从第 m 张幻灯片才开始显示. 比如在下面的这张幻灯片里, 我想让第一级 itemize 每一个 item 依次出现. 于是我在第一个 item 之前加上了 \FromSlide{1}, 在第二个 item 之前加上了 \FromSlide{2}. 效果就是生成的 pdf 里会出现两张幻灯片, 第一张只有第一条, 而第二张上有两条. 类似的标签还有 \UntilSlide{m} 和 \OnlySlide{m}, 它们表达的含义也很明显.

\overlays{2}{
  \begin{slide}{Demerit in First Draft}
    \begin{itemize}
      \FromSlide{1}
    \item Third Supporting Paragraph
      \begin{itemize}
      \item Mere abstract statements
      \item No example supporting the statement of reliability
      \item The only example is for exception
      \end{itemize}
      \FromSlide{2}
    \item Conclusive Paragraph
      \begin{itemize}
      \item Metaphor
      \item But draw it out more
      \item How is the car like comfortable old clothes?
      \end{itemize}
    \end{itemize}
  \end{slide}}

prosper 自带了一些幻灯片的样式, 但它们大多数都让用惯了 PowerPoint 的人不敢恭维. 我用的这个 fyma 算是里面比较清新的一种了. 样式文件可以在 prosper 的安装文件夹里找到, 那些叫做 “PPRxxxx.sty” 的文件都是样式文件了. 想使用哪种样式需要在 documentclass 的选项里声明. 想自定义样式的可以去查一下 prosper 的手册. texlive 2008 里, prosper 的安装路径是 /usr/local/texlive/2008/texmf-dist/tex/latex/prosper

最后, prosper 不支持 pdfLaTeX, 当然也就不支持 xeLaTeX. 所以想要用它生成 pdf 的幻灯片需要使用 “latex slide.tex && dvipdf slide.dvi” 命令. 而且这带来的问题就是如果要生成带中文的幻灯片需要配置 CJK 宏包. 关于 CJK 宏包的设置和中文字体的按照, 可以参见这里.

下面是源文件和编译好的 pdf.

[2010]雪中华中科技大学

本文在署名-非商业性使用-相同方式共享 3.0版权协议下发布, 转载请注明出自aifreedom.com

2010年的第一场雪后, 用5800在校园里随手照了一些照片. 好像很多人不知道华中科技大学(HUST)是何方神圣, 这帖也算是给我的学校做做 SEO 吧.

眼镜湖, 得名于有两个湖紧紧挨在一起, 像眼镜一样. 这是湖上的醉晚亭, 每年秋天都会在这里举行民族音乐会. “醉晚亭”也是校学生会网站的名字. “有时间, 醉晚一下”. 可惜这一年半来我也只醉晚过一次..

眼镜湖边的垂柳

世界名人文化园

湖边的长椅上堆着棉垫一般的积雪

青年园中的一种类似银柳的树, 还请各位老师告诉我这个植物叫什么

南三门边的雪人一家

西操泥马神兽, “坐落在西操的神兽,虽未亲临现场,就在网络上膜拜下吧”

二零零九注记

本文在署名-非商业性使用-相同方式共享 3.0版权协议下发布, 转载请注明出自aifreedom.com

久未更新, 但Blog的订阅量却一直在增长. 从 FeedSky 统计的 RSS 订阅数据来看, Blog 的订阅人数在过去的一年中几乎是以恒定均匀的速度增长. 但我写下的日志却只有那屈指可数的几篇, 看着不断增长的订阅量, 总觉得有些恐慌. 这么多人在订阅我的 Blog, 明年的更新频率一定要提高很多了.

The increasing subscriber of this year

这么久没有更新, 并不是我没有内容可与大家分享了. 而是越来越不知道我的读者都希望看到什么样的内容了. 是愿意看到OI/ACM的算法介绍和解题报告? 还是愿意看到 Linux 下的软件配置, 使用还是开发? 是时间管理, GTD? 还是面向对象, 软件开发? 或者是函数式编程语言? 还是数学趣题, 逻辑悖论? 乃至计算机史, 数学史, 甚至是科学史?

当然, 上面列出的这些内容, 我也只是略知皮毛. 在每一个领域, 都有更多的大牛, 在撰写着更吸引人的日志. 这段暂停更新 Blog 的日子里, 我思考了写 Blog 的目的. 除了记录自己的生活, 思想, 认识新朋友, 输出价值观(还只是一个理想), 还能让我时刻保持对探索的热情, 也让我更有探索的动力. 所以我希望读者们能留下你们的声音, 帮我选择一下明年这个 Blog 的主题和方向.

二零零九, 对我来说是一个有着非凡意义的年份. 第一次参加 ACM/ICPC, 而且不出意料地失败了. 两块尴尬的铜牌, 仿佛是在嘲笑我在训练时的不努力, 讥讽我在赛场上的冲动. 如果说在上海的比赛结束时, 我还在惋惜与金牌的失之交臂, 那在武大的比赛结束时, 我确实感到了如释重负的轻松. 刚刚收拾完书架, 看着一本本 OI/ACM 的书本, 一种酸楚不知从何处翻涌了出来, 仿佛要和最熟悉的老朋友分别一般. 这个比喻是那么生涩, 就像那个感觉一样让人难受. 暑假集训的画面仍不时浮现, 但 ACM 基地却常常紧锁着大门. 而我也不知道, 明年这道大门会不会再向我敞开.

时钟的短臂就要指向十二了, 思维也迟钝了, 这篇有些跑题的日志就到这了. 感谢所有关注过我的 Blog 的朋友, 感谢所有留言支持或批评过我的 Blog 的朋友.

新年快乐!

TeX Live 2008 安装 & 配置中文支持 (下)

本文在署名-非商业性使用-相同方式共享 3.0版权协议下发布, 转载请注明出自aifreedom.com

居然拖了两个多月都没把这篇文章写完, 但十月份之前总算交出了它的下半篇.

上次说到把 XeLaTeX 安装好了. 但默认的设置对中英文混排支持还不够好, 不能对中文和英文分别设置字体, 也不能很好地处理中文和英文之间的空白距离. 我们可以安装孙文昌老师开发的 xeCJK 宏包来解决这个问题.

xeCJK 的宏包可以在这里下载到. 这个不是最新版的 xeCJK, 因为最新版的 xeCJK 需要 xetex 0.9995.0 之后的版本(TeX Live 2009 或 MiKTeX 2.8). 而且新版的 xeCJK 已经被收入 ctex-kit 项目, 将随 TeX Live 2009 一起分发. 就是说, 等到 TeX Live 2009 Release 的时候, 它对中文的支持会比现在好很多.

把刚刚下载到的压缩包解压到 ~/.texlive2008/texmf/tex/xelatex/, 然后用mktexlsr 更新. (这里我不是很了解, 只是照葫芦画瓢, 没自己看过文档, 有什么问题还请诸位老师指正)

unzip xecjk-2_2_15.zip -d ~/.texlive2008/texmf/tex/xelatex/
cd ~/.texlive2008/texmf
mktexlsr .

在刚才下载的压缩包里的 doc 文件夹里有 xeCJK 的完整文档, 我这里给出一个我使用的 preamble 模板.

%# -*- coding: utf-8 -*-
\documentclass[a4paper]{article}

\usepackage[slantfont, boldfont, CJKtextspaces,
CJKmathspaces]{xeCJK} % 允许斜体和粗体
\setCJKmainfont[BoldFont={Adobe Heiti Std}, ItalicFont={Adobe Kaiti
  Std}]{Adobe Song Std} % 设置缺省中文字体
\setCJKmonofont{Adobe Fangsong Std} % 设置等宽字体

\setmainfont[Mapping=tex-text]{Liberation
  Serif} % 英文衬线字体
\setsansfont{Liberation Sans} % 英文无衬线字体
\setmonofont{Bitstream Vera Sans Mono} % 英文等宽字体
\punctstyle{kaiming} % 开明式标点格式
  
\usepackage{indentfirst} % 首段缩进
\begin{document}
  
{默认字体}   {\bfseries 粗体效果}   {\itshape 斜体效果}

这是Ai.Freedom的Blog的第101篇日志。

居然拖了两个多月都没把这篇文章写完,但十月份之前总算交出了它的下半篇。

上次说到把 XeLaTeX 安装好了。但默认的设置对中英文混排支持还不够好,不能
对中文和英文分别设置字体,也不能很好地处理中文和英文之间的空白距离。我
们可以安装孙文昌老师开发的 xeCJK 宏包来解决这个问题。

\end{document}

但这里给出的代码你很可能还无法编译, 因为你没有安装 Adobe 的字体. 这里用到的四个字体可以在这里下载到. 其中 Adobe Song Std 和 Adobe Heiti Std 是随 Adobe Reader 一起分发的, 根据 Lisence 可以免费使用, 关于另外两个字体的版权我还不是很清楚.

把它们下载回来了之后解压到 ~/.fonts 目录中. 然后执行

sudo fc-cache -fv

更新字体缓存. 好了, 把刚才的代码保存到 test.tex 后用

xelatex test.tex

编译就可以得到 test.pdf 了.

在下载的 xeCJK 的压缩包里, source 目录下有一个脚本用来为特定的字体生成标点符号. 按照 README 里的提示, 将 xecjksetpunct-main.tex 里用于 Windows 平台的部分注释掉, 把 Linux 里用到的语句的注释去掉, 然后把下面的字体设置成自己用的字体, 保存. 我们这里用的是 TeX Live, 所以执行

xelatex --shell-escape xecjksetpunct-main

然后把生成的 xeCJKpunct.spa 文件移动到 .texlive2008/texmf-var/tex/xelatex/xecjk/tex/xelatex/xecjk 目录下, 覆盖默认的 xeCJKpunct.spa 文件. 最后执行

texhash .

好了, 我们的配置总算是告一段落了. 关于 xeCJK 的更多详细的设置选项, 请查询它的文档. 学习 LaTeX 文档的排版, 有这样一本 “The not so Short Introduction to LaTeX“, 这个链接是中文版的, 还有 CTeX 论坛的版主 milksea 推荐的这个列表. 学习 LaTeX 的资料真的很多, 只要你愿意动手.

认识这些塑料瓶上的标志么?

本文在署名-非商业性使用-相同方式共享 3.0版权协议下发布, 图片由 WikiMedia 在署名-相同方式共享 3.0版权协议下提供, 转载请注明出自aifreedom.com

PET

你有没有注意过平时使用的饮料瓶上都有一个这样的标志, 它表示什么?

所有人都知道那个”箭头围成的三角形”表示它可以被回收再利用. 但圈里那个数字和下面的字母是什么呢?

这个顺时针旋转的箭头形成的三角形和它里面的数字一起, 叫做塑胶分类标志 (Resin identification code).

很多人误以为有这个标志就意味着这个塑料制品是可以回收的, 而这个数字表示这个材料被回收的难度或者频率. 其实这个数字只是一个编号, 是美国塑胶工业协会制订的分类编码方式, 不同的编号表示不同种类的塑料材料. 而且虽然绝大多数塑料都可以回收, 但需要根据它们是不同的聚合物种类来分类. 而且由于挑选, 分类, 清洁和再加工等工序的成本, 目前经济上只能应付回收聚对苯二甲酸乙二酯(PET)与高密度聚乙烯(HDPE). 看这个 “PET” 是不是很眼熟? 上面那个标志就是 “PET” 塑料的标志. 我们平时用的大多数矿泉水, 碳酸饮料的瓶子就是用它做的.

不同种类的塑料制品的物理化学性质是有区别的. 例如除了PP塑料之外的大部分塑料都不耐热, 而不耐热的塑料制品遇热就容易释放出有毒的, 致癌的物质.

下面的塑料性质介绍来自网络. 部分内容我在 Wikipedia 上找到了相关资料, 但我没有查证以下所有描述, 不保证它们完全准确. 如果有任何错误请留言指出.

PET

1. PET 聚对苯二甲酸乙二醇脂

常见矿泉水瓶, 碳酸饮料瓶等. 耐热至70℃, 易变形, 有对人体有害的物质融出. PET塑料品用了10个月后, 可能释放出致癌物DEHP. 不能放在汽车内晒太阳; 不要装酒, 油等物质.

HDPE

2. HDPE 高密度聚乙烯

常见白色药瓶, 清洁用品, 沐浴产品的塑料瓶. 不要再用来做为水杯或者用来做储物容器装其他物品. 不要循环使用.

PVC

3. PVC 聚氯乙烯

常见雨衣, 建材, 塑料膜, 塑料盒等. 可塑性优良, 价钱便宜, 故使用很普遍, 只能耐热81℃. 高温时容易释放有毒物质, 很少被用于食品包装. 不要循环使用. 若装饮品不要购买.

PE

4. PE 聚乙烯

常见保鲜膜, 塑料膜等都是用PE材料制作. 根据高中化学知识, PE本身是没有毒的. 但塑料制品在制作时会添加小分子的助剂, 它们通常是有毒的. 在高温下有毒的助剂容易迁移到塑料制品的表面. 如果用它来装高温的食物, 有毒物质随食物进入人体后, 可能引起乳腺癌, 新生儿先天缺陷等疾病. 所以别把保鲜膜放进微波炉.

PP

5. PP 聚丙烯

常见豆浆瓶, 优酪乳瓶, 果汁饮料瓶, 微波炉餐盒. 熔点高达167℃, 是唯一可以放进微波炉的塑料盒, 可在小心清洁后重复使用. 需要注意, 有些微波炉餐盒, 盒体以5号PP塑料制造, 但盒盖却以1号PE塑料制造. 由于PE不能抵受高温, 故不能与盒体一并放进微波炉.

PS

6. PS 聚苯乙烯

常见碗装泡面盒, 快餐盒. 不能放进微波炉中, 以免因温度过高而释出化学物. 装酸(如柳橙汁), 碱性物质后, 会分解出致癌物质. 别用微波炉煮碗装方便面, 或者干脆和我一样戒掉方便面.

PC

7. OTHER 其它类 (包括ABS树脂聚甲基丙烯酸甲酯聚碳酸酯聚乳酸尼龙玻璃纤维强化塑胶)

常见水壶, 太空杯, 奶瓶, CD 光盘, 桶装水瓶都是用这一类里的 PC 塑料制作, 容易释放出双酚A. 关于双酚A对人类的影响, 说法不一. 但加拿大政府已宣布双酚A是一种危险的化学品, 并正式将双酚A列入有毒化学品名单, 禁止在制造婴儿奶瓶的过程中添加双酚A.[1] 使用时不要加热, 不要在阳光下直晒.

Linux Tricks (1)

本文在署名-非商业性使用-相同方式共享 3.0版权协议下发布, 转载请注明出自aifreedom.com

之前写过一段时间的 Linux 日记, 后来没有继续更新了. 但我发现把在使用 Linux 的过程中解决某些问题的过程用文字记录下来是很有用的! 比如前些天我的同学问我 Mplayer 的 RMVB 解码器是哪个包, 我却记不起来了. 但我记得我写过一篇日志记录了我解决这个问题的过程, 于是他的问题也顺利解决了.

我一直认为学习的过程就是”不断遇到问题, 并寻求解决问题的方法”的过程. 把这个过程记录下来, 就为自己再次重温这个过程留下了线索. 这也就是笔记的重要性. 我在上课时很少做笔记, 但阅读有价值的书是一定要做笔记的. 计划等我有一大段空闲时间了就去整理我的笔记, 把他们都整理成 TeX 文件或者 Muse 文件.

现在这个 “Linux Tricks” 系列, 每一篇都不会太长, 内容比较杂乱, 但涉及的方面会很多. 很多的 Trick 都是从论坛或者 Blog 上看来的, 把它们集中在一起, 既方便了我日后查看, 又传播了 Linux 的文化.

今天的两个Tricks分别从徐宥TualatriX 处学到, 感谢他们的分享.

1. 史上最强 PS1

这里说的 PS1 不是 Sony 的 Play Station I, 是 Bash Shell 的提示字符串(Prompt String). 就是下图中 “$” 字符前的那些信息.

Snapshot of the shell with the PS1 above

if [ -n "$force_color_prompt" ]; then
    if [ -x /usr/bin/tput ] && tput setaf 1 >&/dev/null; then
	# We have color support; assume it's compliant with Ecma-48
	# (ISO/IEC-6429). (Lack of such support is extremely rare, and such
	# a case would tend to support setf rather than setaf.)
	color_prompt=yes
    else
	color_prompt=
    fi
fi

if [ $color_prompt=yes ]; then
    PS1='`a=$?;if [ $a -ne 0 ]; then echo -n -e "\[\e[01;32;41m\]{$a}"; fi`\[\033[01;32m\]\u@\h\[\033[00m\] \[\033[01;34m\]\W`[[ -d .git ]] && echo -n -e "\[\e[33;40m\](branch:$(git branch | sed -e "/^ /d" -e "s/* \(.*\)/\1/"))\[\033[01;32m\]\[\e[00m\]"`\[\033[01;34m\] $ \[\e[00m\]'
    # PS1='${debian_chroot:+($debian_chroot)}\[\033[01;32m\]\u@\h\[\033[00m\]:\[\033[01;34m\]\w\[\033[00m\]\$ '
else
    PS1='`a=$?;if [ $a -ne 0 ]; then echo -n -e "{$a}"; fi`\u@\h \W`[[ -d .git ]] && echo -n -e "(branch:$(git branch | sed -e "/^ /d" -e "s/* \(.*\)/\1/"))"` $ '
    # PS1='${debian_chroot:+($debian_chroot)}\u@\h:\w\$ '
fi
unset color_prompt force_color_prompt

这个 PS1 有两个功能: 一是高亮显示所有非0返回值, 如图所示; 二是在 Git 管理的目录下显示当前的 Git branch. 最近因为在做C语言课程设计, 用了 Git 来管理我的代码. 所以这个显示分支功能我太喜欢了. (虽然这个项目没有分支的必要..)

将上面的代码加入你的 ~/.bashrc 文件.

如果你使用 Emacs 的 Shell-mode, 那么你需要把 ANSI 彩色字符支持打开.

将下面的代码加入你的.emacs文件.

(ansi-color-for-comint-mode-on)

2. 一行语句的HTTP文件服务器

python -m SimpleHTTPServer

可以将当前目录设为一个在8000端口开放的http服务器的根目录. 在互联网中临时共享文件的时候是多么地方便阿!

徐宥说很多哥们还不知道 “wget -c” 能断点续传, 是这样么?

[AiLab]Tee – 欧拉公式

本文在署名非商业性使用相同方式共享 3.0版权协议下发布, 图片保留所有权利, 转载请注明出自aifreedom.com

做 Geek 喜欢的 Tee! 这次的主题是有”欧拉的宝石”之称的欧拉公式.

欧拉公式中有数学里最重要的几个常数, Pi=3.1415926…, e=2.7182818…, i=$$\sqrt{-1}$$, 1, 0; 有最基本却最重要的两种运算法则, “+” 和 “=”. 但你可曾想过, 它们的关系竟然是如此简单, 形式如此优美.

《数学信使》杂志将它评为最美的数学定理. 2004年《物理世界》杂志, 将它和麦克思韦方程组一起列为最伟大的等式.

《欧拉神话般的公式》的作者, 在书中称它为”数学美的典范”.

康斯坦斯·里德称她为”最卓越的数学公式”, 而理查德·费曼把她唤作”欧拉的宝石”.

伟大的高斯更是语出惊人, “如果被告知这个公式的学生不能立即领略她的风采, 这个学生将永远不会成为一流的数学家.”

Euler's Identity

Euler's Identity Logo

上次的 “PacMan 吃掉GFW” 有大约10人有兴趣购买, 不知道这次的欧拉公式又有多少人有兴趣. 恳请有兴趣购买的朋友都来留言支持一下, 以坚定我把这个 Geek Tee 计划做下去的信心! 多一些人来留言的话, 衣服也会更早出炉, 开始销售!

Tee 的定价在50以内, 印刷会选择丝网印刷, 衣服的面料是纯棉的, 质量有保证(保证不是一次性的, 透光的”广告衫”).

向同行学习, 之后也会有 “写日志, 免运费” 等等营销活动!

敬请期待!

TeX Live 2008 安装 & 配置中文支持 (上)

本文在署名-非商业性使用-相同方式共享 3.0版权协议下发布, 转载请注明出自aifreedom.com

Knuth 爷爷的 TeX 系统堪称完美! 但他在发明它的时候没有考虑到对英文之外的语言的支持, 因此用 LaTeX 给中文排版一直有些麻烦.

一年前, 我写过一篇日志介绍 TeX Live 2007 的中文支持配置. 但那个还是用 CJK 实现对中文的支持, 字体的配置比较麻烦. 而现在我要推荐的是 XeTeX, 它对中文的支持比 LaTeX + CJK 包要好很多. 这个解决方案是基于 XeLaTeX + xeCJK 实现对中文的支持. 其实 XeLaTeX 支持中文排版, 但它对中英文混排的支持不是很好. 它不能为中文英文分别设置字体, 也不能很好地控制中英文混排时的间距. 这些都是靠 xeCJK 这个宏包完成的. 去年的时候 LeafDuo 就跟我说 XeTeX 的中文支持很好, 但当时因为懒惰, 一直没有配置起来. 直到不久前写C语言实验报告, 才有了动力把 XeTeX 配置起来.

这篇日志主要记录的是我在 Ubuntu 中安装 TeX Live 2008 及配置中文支持的过程, 在 Windows 中安装与配置的过程与本文有些区别.

这一篇讲的是下载安装 TeX Live 2008, 下一篇讲的是将是 Linux 字体安装和 xeCJK 的配置.

Ubuntu 的源里就有 XeTeX 了, 而这里不使用源里的那个 XeTeX 是因为它的版本比较旧, 之后安装中文排版支持宏包会遇到一些麻烦.

TeX Live 可以直接在线安装, 也可以把光盘镜像下载回本地安装. 考虑到网速等问题, 我是下载镜像到本地之后安装的.

TeX Live 的镜像可以在 TeX Live 的主页下载到. 在中国, 使用 CTeX 的镜像下载会比较快.

1. 如果要使用图形界面安装, 需要先安装 perl-tk; 解压 lzma 格式的压缩包需要安装 lzma.

在 Ubuntu 的源里有这两个包, 可以使用 apt-get 安装.

sudo apt-get install perl-tk p7zip

2. 进入存下载的镜像的目录, 将压缩包解开.

注意, 这一步需要有 4-5G 的空余磁盘空间. 解压后的光盘镜像似乎有 2-3G.

lzma -d texlive2008.iso.lzma

3. 挂载刚刚解压出的 iso 镜像.

sudo mount -o loop texlive2008-20080822.iso /mnt

4. 执行安装程序

sudo /mnt/install-tl --gui

这时会弹出安装程序的窗口.

将最后一项 “Create symlinks in system directories” 勾上, 让它自动创建符号链接.

我几乎把所有的包都装上了, 如果你的硬盘空间足够, 也就不需要做什么改动了. 但可以在第四项 “Language Collections” 中去掉不需要的语言包, 节省几百兆的空间.

配置完后点击 “Install TeX Live“, 等上几分钟就装好了.

现在 XeLaTeX 就已经可以处理中文了, 不信你试试编译这个 tex 文档.

\documentclass{article}
\usepackage{fontspec}
\setmainfont{Adobe Song Std}
\begin{document}
  Ai.Freedom的Blog\\
  aifreedom.com
\end{document}

这里用的 “Adobe Song Std” 字体需要你从 Adobe 下载后安装. 在 Linux 中安装字体的方法会在下一篇中介绍.

编译的命令用 xelatex. 这个文档是可以正常编译的, 但用宋体显示英文字体太丑了, 所以就需要 xeCJK 告诉 XeLaTeX 哪些字符该用哪些字体. xeCJK 的配置和简单的使用也会在下一篇中介绍.

[AiLab] PacMan 预览版

本文在署名非商业性使用相同方式共享 3.0版权协议下发布, 图片保留所有权利, 转载请注明出自aifreedom.com

考试月终于过完了, 有时间来更新一下 Blog 了.

上个月发生了不少事. 首先是Twitter, Flickr, Bing 一起疯掉之后的迎来了首个”中国互联网维护日” (CNMD – China Network Maintain Day). 好不容易到了月底, Google 却疯了. 而就在这两天, Twitter, Facebook 又一次疯了.

给出几个简单的穿墙访问 Twitter 的网站: iTweet.net, twittergadget.com. 用手机浏览器的可以去 cafebeta.com.

不久前看到一件 HelloTee 设计的 Tee 让我也有灵感和动力设计自己的 Tee. 而且我的计划里不只有 Tee 而已, 以后可能还会有书签, 模型等等. 小店的名称就叫做 AiLab, 向 MIT AI Lab 致敬.

001-PacMan

这是 001-PacMan 的效果图预览版, “001” 是设计编号, 每个不同的设计都会有一个编号. 虽然这个构思是我想到的, 但多亏有我的 MM 用 PhotoShop 将它画了下来. 不少人小时候都玩过 FC 上的吃豆人吧, 让我们向小小的 PacMan 学习, 在怪物们的围追堵截下, 不畏艰辛, 一口一口地吃掉 GaiFaiW!

TEE 的价格目前还没有确定, 我正在联系印刷 TEE 的厂家. 价钱不会很贵, 如果你有兴趣订购一件, 请在下面留言说明. 如果对这个设计有什么不满意的地方也可以说说. Email 里请填写一个常用的邮箱地址, 勾上并在最近留意邮箱里的信件. 我会在确定了价格之后与你联系. 当然, 关注我的 Blog 的更新是最好的办法. 当它正式发布的时候, 我会写再一篇日志的.

下一款可能会是 $$F(X) = \int_{0}^{x}{f(t)\,dt}$$, 也可能是 $$\LaTeX$$, 或者 $$E=mc^2$$. 如果你对这之中的某个东西情有独钟, 或者你很想让你日思夜想的某个公式出现在你的 TEE 上, 也可以在下面留言. 想想穿着一件印着 $$e^x = \lim_{n \to \infty}{\sum_{i=0}^{n}{\frac{x^i}{i!}}$$ 的衣服走在街上是多么拉风的事!

我会在淘宝上开一个店, 到时可以在那里购买这件衣服. 如果你暑假期间在华中科技大学(主校区), 可以享受免费送货上门服务.