0%

在实际工作中,我需要取得一个整数二进制表示的最后一个「1」在哪里。

最朴素的办法,是用短除法,逐次取余数。高明一点的办法,可以是将目标整数向右逐次右移 1 位,然后与常数 1 按位取与,结合计数器判断「1」的位置。

这里,我们介绍一个更加「聪明」的办法。

阅读全文 »

许多期刊在投稿的时候要求作者将图表等大块内容与正文分开、放在文章末尾。通常来说,我们只能将本来放在正文中的插图、插表代码挪到文章末尾;然后再用交叉引用,说明图表的作用。

这样固然可以实现需要的效果,但是改变了行文的习惯,也不符合 LaTeX「内容与格式分离」的哲学。

McCauley 等人的 endfloat 宏包改变了 LaTeX 处理浮动体的流程,能够比较简单地将图表这些浮动体延迟到文章末尾输出——只需要简单的配置,不需要改变行文习惯。

阅读全文 »

工作中需要用到 SecureCRT,但是 SecureCRT 默认的配色方案实在是丑得不能用,写代码看久了还伤眼。「刚需」驱动下,自己仿照 Solarized 方案做了一个配色,顺眼多了。

阅读全文 »

之前的文章中,我们介绍了如何复写定理。这里我们讨论如何实现定理的重述。

所谓定理的重述,是这样的情况:在文章的某处,我们陈述了一个定理;接下来,我们在文章的其他地方,陈述了一个与之等价但叙述方式不同的定理。此时,如果第一个定理的编号是 Theorem 7,那么第二个的编号就应该是 Theorem 7'

阅读全文 »

MathJax 是一个 JavaScript 引擎,能够将 LaTeX 语法书写的公式在网页上显示出来,而且效果杠杠的。Markdown 是一种轻量级的标记语言。用 Markdown 书写的文章,可以用 Markdown 解释器处理成标准的 HTML 文档。因此 Markdown 很适合用来写网络日志。

作为数学系毕业的学生,写博客时不可避免地会涉及到一些数学公式。可惜不巧,用 Markdown 写博客的我,在使用 MathJax 的时候遇到了一点麻烦。

在 Markdown 中,下划线 _ 被保留,用作标记符号。比如 _Slant_ 会生成倾斜的 _Slant_。在 LaTeX 中,下划线 _ 被用作下标记号。比如 x_i 会生成 $x_i$

由于 Markdown 在 MathJax 之前起作用,有时下标记号会被 Markdown 吃掉,变成 HTML 标记 <i> 而失去 LaTeX 的下标效果,造成数学公式显示不正常。比如 This is an example: $f_i = f_{i + 1}$ 里的两个下划线会被 Markdown 理解成倾斜的标记,这就不对了。

阅读全文 »