更好的排版
自写日记开始,自己就越来越注重文字排版。
我是希望自己编写出来的东西是被精心设计过的,被别人看到时别人会感到舒适的,所以会去了解、学习一些相关知识。
故在此摘录并补充如下来源的一些规则:
使用居中的省略号
其呈现上占两个汉字空间、包含六个省略点且在水平和垂直方向均位于字面正中,通常使用两个连续的
U+2026 HORIZONTAL ELLIPSIS […]来实现。在 Unicode 标准第 14 版的 6.2 章中,也推荐使用
U+22EF MIDLINE HORIZONTAL ELLIPSIS [⋯]作为省略号。此符号配合适当的转向与取代机制,在显示上无论直横排,省略点皆居中,更符合排版需求。
但据 此评论 指出,后者是隶属于数学符号的 —— 应该就是 LaTeX 里 \cdots 对应的字符 —— 加之 此评论 指出 默认映射为前者,我个人还是会使用前者的。
本网站为实现居中省略号,特地使用了字形为居中样式的字体。
注意
暂未实装
使用标准的专有名词
例如 GitHub,官方使用该词时都是 GitHub,从来不会使用什么 github、gitHub。
Xcode 也是,c 是小写的,而 VSCode,C 是大写的。
当然,编程里有 camelCase 这样的命名规范,那么这时 GitHub 对应什么?是 github 还是 gitHub 呢?
有兴趣的读者可参见 camelCase 英文维基百科 中的 Programming and coding 一节。
我是这样想的,人家既然这样设计了,必然保留人家的特征是最好的。
在此列表列出个人会最终采用的命名:
| 类别 | 命名法 | 例 |
|---|---|---|
| 专有名词 | - | GitHub、SurviRed、API、JSON |
| 变量、函数名 | camelCase | gitHub、surviRed、api、json |
| 类名 | PascalCase | GitHubAPI、SurviRedJSON、APIJSON |
| 常量名 | CONSTANT_CASE | SURVIRED_API |
| 文件名、URL | kebab-case | github-json |
不再过分使用括号
括号一层一层嵌套会使得意思极其“扭曲”,理解起来需要绕弯子,同时存在一堆右括号连在一起的情况,这很不美观。特别是如果存在括号内多重括号完后接下句,其所指的前文是很难很快找到的。
例文:
我是知道但没心思听(我一向屏蔽东西还算厉害(不过上次周测理综(语文(?))考试时外面在办丧事,丧乐把我人搞没了)的),旁边的同学倒是听得津津有味。
更好的做法当然是尽可能不使用括号,将想要表达的内容尽可能展开(flatten)来,出现跳跃性的句子可以使用破折号。
修改:
我是知道但没心思听 —— 我一向屏蔽东西还算厉害的,不过上次周测理综(语文?)考试时外面在办丧事,丧乐把我人搞没了 —— 旁边的同学倒是听得津津有味。
中英文混排时添加空格
在绝大多数情况下,在半角字符和全角字符直接加入空格就能给人一种文章没那么挤的感受。
比如接下来的这句话:
我喜欢吃apple,不喜欢吃peach和orange。加入空格:
我喜欢吃 apple ,不喜欢吃 peach 和 orange 。这里在每个单词左右两边都加了空格。
但这里实际上 apple 和 orange 后面接续的是一个全角的标点符号,且这个标点符号视觉上可以看作一个半角符号和一个空格,所以我们可以把后面的空格删去。
我喜欢吃 apple,不喜欢吃 peach 和 orange。但像“——”“……”这种会占满整个宽度的标点符号,现在看来它们确实有点挤,建议加上空格。
这也带来了一个好处,让我说明白一些:
我们在编辑一段文本的时候,经常使用 或 来跳转光标,但是这过于的不方便。
而我们可以使用 或 进行快速跳转,对于像 Microsoft Word 这样的编辑器,其会智能的将中文词汇分段,所以在跳转时会跳到词的开头或结尾,而不是整个句子的开头或结尾。
而对于未实现中文分词的编辑器,加上的空格就作为了一个“跳板”,更加方便跳转。
计量单位
1 kg,1 m,1 s。在数字和单位之间需要空格 —— 这实际上就是英文排版要求 —— 而类似 100%,百(千)分号不需要。
类似 4G(第四代移动通信技术)这样的词,它本身是一个专业名词,所以之间不需要空格,但 4 G 确实可以表示类似“四倍重力”“四个金币”的意思,所以这就得看上下文了。
同时说说苹果在这方面的细节,他们会如上细微调整半角和全角字符之间的间隔(kerning),看上去和加了空格差不多,反而因为自己加了空格可能会显得间隔过大。
但考虑到不是所有的设备都有这样的特性,自己加上空格还是更普适的。
斜杠
在英文排版中,表示“或”的斜杠两边不需要空格,相当于将其认为 26 个英文字母中的一个(大雾)。
但在代码中,斜杠一般表示除法,两边需要空格,以提供更好的可读性。
引号
大家好 ,我们是 “ ” ‘ ’ " ' 「 」 『 』,今天来点大家想看的东西啊。
「或」
「A 或 B」是二选一?还是二者其一即可?
如果在数学、程序或逻辑学,那么「或(OR)」默认是后者,严谨来说叫「逻辑或」,而要表示前者,则会使用「异或(XOR)」来表示。
自然语言里,更加倾向于异或,但是具体还是得看上下文,比如上文的「在数学、程序或逻辑学」这句话,就表达的是逻辑或。
那么 A/B 呢?这实际上不强调二选一还是二者其一即可,甚至可能表达两者都必须要出现,表达的是 A ∧ B,比如 I/O。
总之,使用 OR 和 XOR 就能避免这种问题。