write18使用一例:基于同一模板一次分开编译多个章节

试想如下使用场景, 我们需要对一门课程做备课讲义。假设这门课程分为8章。一个简单的办法是首先写一个公共的模板, 然后将每章独立的插入到该公共模板。但是这样一来得到的是所有章节合到一起的一个PDF.

我的问题是, 能不能够基于公共模板编译出来独立章节的各个PDF。

下面的代码利用write18可以实现上述功能。

Continue Reading

TeX中递归调用命令二例

例子1. 定义广义乘法.

分析中, Hamilton发明了所谓的Sharp算子, 即用来表示乘积, 其系数是有界的。 例如$A# B$表示$A$与$B$和某个有界函数的乘积. 那么问题是, 如何在TeX中定义一个命令使得很方便写这种乘积呢?

这就是本文的重点:递归调用命令。

用法如下

Continue Reading

LaTeX字体属性及其在中文Beamer中的使用

认真研究下LaTeX字体的基本属性, 主要参考wiki。

首先, 字体有三大属性:family/shape/series, 外加基本属性:size. 下面我们逐一来看。

字体的Family属性

有成千上万种字体, 但是基本可以分为三个家族(family), 即

family TeX等价
有衬线字体(serif) \rmfamily
无衬线字体(sans-serif) \sffamily
等宽字体(monospaced) \ttfamily

所谓的衬线就是字体顶部或者底部的短横线。中文的话衬线字体就是宋体/明体(台)。而无衬线字体就是通常所谓的黑体。通常无衬线字体用于标题, 而衬线字体用于正文。英文字体请参考这里的字体分类网页

Continue Reading

使用bundledoc打包LaTeX宏包依赖

我遇到过由于宏包不够新导致的latex编译失败。那么有没有办法将我们编译当前文档需要的宏包打包呢?

办法就是使用bundledoc. 我用的texlive2017(脚本位置:E:\texlive\2016\texmf-dist\scripts\bundledoc\bundledoc), 看起来这个宏包有点旧了, 需要修复下。

脚本的修复

P.S. 最新版的bundledoc(2018/05/23, Version 3.3)一下两个问题都已经修复。请直接更新。

首先它是一个perl脚本, 其中有个新建临时目录的函数tmpnam已经弃用了, 这个好像不是非常影响。
Continue Reading

保持面积的三角形在锥上的移动