🌓

本站近况

感动

最近经常有人留言 我很感动

为啥呢?这个站在搜索引擎的排名就很低 在百度几乎是不会出现的 而且我在网上也没有什么人缘 所以访问量是很少的 再加上回复功能用的是面向国外用户的Disqus 使用中文的用户可能不喜欢 而网站的访客又都是中文用户……

阅读全文

某喜闻乐见的软件死了

R.I.P.

首先是传出作者被约(hē)谈(chá) 后面紧接着删除了github上的源码 虽然作者不再开发不代表项目的终结 但现在说R.I.P.不算早

这个项目的成功有其必然性 曰「接地气」 实现众多 部署方便 作者上心 甚至是亲自参与到有关软件的讨论

可惜的是 就是这种亲自参与的行为害了这个项目 导致了今天的结局

反而是比特币的作者中本聪 到现在也不知道是谁 功成身退

言止于此 作为用户 我感谢作者的工作 祝作者好人一生平安

阅读全文

方正新书宋和英文字体的搭配

写在前面的话

最近对「字体排印」(Typography)的学习比较多 陆陆续续写了一些有关的帖子 之前一直是和其他的文章混在一起的 今天想把它单独拿出来作为一个分类 或许能为网站带来一些流量罢😍

字体搭配的必要性

方正新书宋 是最近几年方正公司对老的「方正书宋」的升级产品 详细的介绍和评价可以看这里 我也是因为看了一些知乎的回答才花钱买的(支持GBK字符集的个人版在淘宝卖5块)

因为中文字体附带的英文字形一般都质量较差 而中文排版一个不可避免的需求是中英文混排 特别是对于宋体这种正文字体 所以 挑选一种合适的字体和新买的方正新书宋搭配很有必要

英文字体多如牛毛 这方面的资料也不多 我看到资料主要有下面的几个

  1. 知乎用户阿卡林, 哪种字体最适合快速阅读?.
  2. 知乎用户李阿玲等, 如何排出精美的中文论文?.
  3. 知乎用户李阿玲等, 工科论文有什么比较正式、清晰、美观、简洁、大方的衬线字体?.

基于上面的建议 结合我的兴趣 我选择了下面几种字体进行测试

  • Times New Roman
  • Computer Modern Roman
  • Minion Pro
  • Libre Baskerville
  • Baskervald ADF Std

效果是酱紫的

阅读全文

C语言的函数指针

有人说 自己已经「学完C语言」 我就顺手写了一个东西 问他什么意思 明显嘛 看不懂

东西是这个 比我当时写的又加了一个括号 注意这个是可以编译通过的

1
int (*a[1])(void (*a[2])(int (*a)[3]));

我来简单解释一下 顺便传授一下方法

首先 这个是C语言里面定义函数指针的语法 难点是 因为函数有参数 而参数的类型也必须写在里面 所以会非常长 道行浅的「学完C语言」的人基本上是看不出来的 其实很简单 首先抓住主要矛盾 这个是什么 从前往后 从外往里找最合法的部分 发现是这个

1
int (*a[1])(...)

去掉[1]就是函数指针 这里加上[1]是函数指针的数组 所以 变量a是有一个元素的函数指针的数组 每个元素都是一个函数指针 这个函数的返回值是int

再看里面 也是一个函数指针的数组 这个是作为参数的

1
void (*a[2])(int (*a)[3])

类似的 这是有两个元素的函数指针的数组 每个元素都是一个函数指针 函数指针指向的函数的返回值是void 接受一个参数 这个参数是一个指向了有3个元素的数组 数组的类型是int

阅读全文

DPI和页面缩放的关系

写在前面的话

这个问题我六年前就注意到了 但直到今天才完全搞明白 一个人一生中能有几个六年啊 如果你也不知道这个问题 我希望你不会像我一样花六年时间才搞明白 因为你看了我写的东西就明白了

用了六年才想明白的问题

屏幕的实际DPI和设定值不一致的情况下 显示内容的大小是不正确的 比如一张A4的纸 在屏幕上的大小和实际纸的大小不一样 如果要变成一样的需要对屏幕显示的内容进行缩放 缩放的比例是(实际DPI/设定DPI) × 100%

比如 我的屏幕的实际DPI128 而由于各种原因 我用的Windows的DPI是默认值96 所以 如果要在我的屏幕上正确显示和实际大小一样的东西 需要对其进行(128/96) × 100% = 133%的缩放

阅读全文

「我认Sóng」 这个Sóng字应该怎么打

一般都打怂恿的「怂」,其实是错误的(详细的考据请见《怂不读 sóng!》,作者考据功力颇深,李菊福)。

正确的是「㞞」(CJK IDEOGRAPH-379E),简化字的形式是「𪨊」(CJK IDEOGRAPH-2AA0A),可惜这个字很多字体里是没有的,因为它属于扩展区。

阅读全文

王子猷的故事

王子猷作桓车骑骑兵参军。桓问曰:「卿何署?」答曰:「不知何署,时见牵马来,似是马曹。」桓又问:「官有几马?」答曰:「不问马,何由知其数!」又问:「马比死多少?」答曰:「未知生,焉知死!」

《世说新语·简傲》

阅读全文

大于等于号和小于等于号的字型

前言

大于等于号和小于等于号对应的Unicode符号是(GREATER-THAN OR EQUAL TO)和(LESS-THAN OR EQUAL TO) 最近对这两个符号有一些困惑 先总结出来

SLANTED?

先科普一下:

在字体里面slanted表示倾斜 但它和italic不一样 前者只是倾斜 而后者不仅倾斜 风格也变了 一般来说 无衬线字体(好比是中文的黑体 具体看维基百科的相关词条)如果有斜体算是slanted 衬线字体(好比是中文的宋体楷体 维基词条)一般是italic 大多数情况下这种区分没有什么意义 只有数学相关的字体才会有slanted

我最近发现 原来大于等于号和小于等于号除了我熟悉的两个外 还有下面的两个

(GREATER-THAN OR SLANTED EQUAL TO)和(LESS-THAN OR SLANTED EQUAL TO)

它们的区别是什么呢?从字体角度讲 最明显的区别就是字型的不同

阅读全文

Emacs里用正则表达式匹配中文

这是个非常好用的功能 也是其他正则表达式里面不具备或不能优雅实现的(比如有些地方用[\u4e00-\u9fa5]来匹配中文 你觉得你能记住么)

但就这个方便的功能我也记不住 而且手册也看不大懂

正确写法:

Emacs里正则匹配中文的写法是\cc

手册里面是这么说的

‘\cC’
matches any character that belongs to the category C. For example,
‘\cc’ matches Chinese characters, ‘\cg’ matches Greek characters,
etc. For the description of the known categories, type ‘M-x
describe-categories RET’.

‘\CC’
matches any character that does not belong to category C.

15.7 Backslash in Regular Expressions

阅读全文

Emacs实现按一下按两下功能不同的写法

有人问 如何在Emacs里实现按一下按两下执行的功能不一样呢 当时我没电脑所以没有写 今天有时间 写一下

其实很简单 如果上一个命令和这一个命令是一样的 那么就是按两下了 不过还不够好 因为后面都认为是按两下 所以其实是「按一下」和「按多下」 例子是下面的样子

1
2
3
4
5
6
7
(defun my-repeat ()
"Repeat function demo."
(interactive (if (equal last-command this-command)
(insert "摁了两下\n")
(insert "摁了一下\n"))))

(local-set-key [f9] (quote my-repeat))

阅读全文