0%

今天有人问到下列代码报错:

1
2
3
4
5
6
7
8
\documentclass{article}
%\listfiles
\usepackage[unicode,psdextra]{hyperref}
\usepackage{unicode-math}
\setmathfont{Asana Math}
\begin{document}
\section{$\mu$}
\end{document}

提示:

1
Improper alphabetic constant

看了一下,是 hyperref 宏包的 bug。

阅读全文 »

在很多场合,我们都需要生成一系列固定长度的字符串,分发给用户,作为邀请码或者兑换码。

关于邀请码,最容易想到的特征有二:一是足够长,二是不具有规律性。这两个特征主要是为了防止用户伪造邀请码,简单来说,就是让用户「猜对」正确邀请码的可能性足够小。不过,作为邀请码来说,仅有这两个特征还不够。

邀请码并不是发放给用户就结束了,还涉及到验证的过程。用户在收到邀请码之后,将邀请码提交给系统。系统在收到提交之后,要在数据库里查询是否有匹配的记录。所以生成邀请码时除了要防止用户伪造,还要方便后期的校验。这就要求我们能够从邀请码中,经过简单的变换,提取出「主键」。

这篇文章我们讨论一下如何用 Python 生成随机的邀请码。

阅读全文 »

首先说明,这是邪道,除非你知道自己在干什么,请不要使用这篇文章提到的方法。这篇文章纯粹是一个技巧的记录,在某些时候可能会有用。

有时候我们会需要将公式字体修改为正文的 \rmfamily\upright\normalsize 的样式。虽然看起来很复杂,其实却很简单。我们只需要在导言区末尾添加以下两行代码:

1
2
\everymath\expandafter{\the\everymath\mathgroup0}
\everydisplay\expandafter{\the\everydisplay\mathgroup0}
阅读全文 »

这是系列文章的第二篇,参见系列中的相关内容。

上一篇文章 介绍了 PIL 的基本情况,以及 Image 模块的基本用法。这篇文章,我们讨论一下 ImageDrawImageFont 两个模块的基本用法,说说如何用 PIL 在现有的图片上涂涂改改。

阅读全文 »

这个系列的 上一篇文章 已经快一年了。我真是懒啊……

中文的谓语动词不在时间、状态、语态上作区分。在中文中,这些功能由其它副词提供。在英文中,动词的形态需要根据时间、状态、语态发生改变。对于中国人来说,这样的变化确实有些不自然;选错时态也是中国人讲英文时经常犯的错误。

在这里,语态和说话人的态度相关,比较容易感受。同时,语态反应在动词形态上的变化也相对简单,只需要加上合适的 be 动词,配上动词的过去分词即可。时态和动作发生的时间相关,也相对直观。因此,如果我们能对状态做一些简化,从状态出发去讨论时态,则问题会简单得多。

阅读全文 »