From 74ed21ccc565118f5376be321d07c019a5c14453 Mon Sep 17 00:00:00 2001 From: gledos Date: Tue, 26 Sep 2023 22:25:49 +0800 Subject: [PATCH] =?UTF-8?q?=E6=9B=B4=E6=96=B0=E5=88=B0=200.0.31-beta?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit 修复〈GWLM 16-4-3 源文件可维护性〉的错误内容 --- README.md | 126 ++++++++++++++++++++++++++++++++++++++++++------------ 1 file changed, 99 insertions(+), 27 deletions(-) diff --git a/README.md b/README.md index 7e9495f..7c61b7c 100644 --- a/README.md +++ b/README.md @@ -3,7 +3,7 @@ ```yaml 标题: 通用写作律法 创建时间: 2023-08-26 -版本: 0.0.30-beta +版本: 0.0.31-beta ``` 《通用写作律法(General Writing Laws)》是由 @@ -30,21 +30,6 @@ Full support for other writing system, and _General Writing Laws_ translations a 目前暂未完成各项模块的情况,一定会有编号变动,甚至重构的情况。 -## 待解决的问题 - -### 同一标点符号的表示方法 - -英文省略号有多写法,分别有: - -| 写法 | 来源 | 备注 | -| :---: | :--------------------------------: | ---------------------- | -| . . . | _The Chicago Manual of Style_ | 西式句点,之间含有空格 | -| ... | _AP Stylebook_ | 西式句点 | -| … | _Butterick’s Practical Typography_ | `U+2026` | - -这些写作规则,都有明确的盈利性,所以不方便移植成开放的兼容规则,也许需要从头编写英文的各种写作方法…… -这应该是一个更复杂的工程。 - ## 简介 《律法》是为了将各种书写规范模块化,而诞生的规则,借鉴了一些 [BEP 0000][](BitTorrent 增强建议索引)的设计。 @@ -60,6 +45,21 @@ Full support for other writing system, and _General Writing Laws_ translations a 目前《律法》本身的书写规范是:GWLM 2-1、GWLM 2-2、GWLM 2-3、GWLM 2-6、GWLM 2-8、GWLM 3-1、GWLM 18-1、 GWLM 18-2、GWLM 18-3。 +## 暂时搁置的问题 + +### 同一标点符号的表示方法 + +英文省略号有多写法,分别有: + +| 写法 | 来源 | 备注 | +| :---: | :--------------------------------: | ---------------------- | +| . . . | _The Chicago Manual of Style_ | 西式句点,之间含有空格 | +| ... | _AP Stylebook_ | 西式句点 | +| … | _Butterick’s Practical Typography_ | `U+2026` | + +这些写作规则,都有明确的盈利性,所以不方便移植成开放的兼容规则,也许需要从头编写英文的各种写作方法…… +这应该是一个更复杂的工程。 + ## GWLM 0 通用写作律法模块 ```yaml @@ -1350,31 +1350,81 @@ dolor in reprehenderit. 可以看到 \

元素跨越了多行,但还是能正常使用,并且 \

元素会忽略换行符号以及多余的空格,自动化的连接元素中的内容。 +(备注:大陆将横排称为行,台湾将竖排称为行,原因似乎与流行的书写方向有关,都是文字延伸的方向为行。) + 将段落拆分的原因应该是为了方便维护,曾经 HTML 网页几乎都是人力编写的全部或者部分,如果一个段落有数千个字符, 而编辑器没有自动换行功能,就会很痛苦了。而现代的编辑器基本都有自动换行功能,即使如此,还是有「缩减栏宽」等功能, 将文字以一定的宽度分段,防止 16:9 宽屏带来的阅读障碍。 -Visual Studio Code 等软件可以开启垂直标尺(vertical rulers)功能,比如 Python 的 [PEP 8][] 代码风格, -限制每行最多 79 个字符,这能增加代码的可读性。 +Visual Studio Code 等软件可以开启垂直标尺(vertical rulers)功能,可以用来确保各种编程语言或团队的代码风格: + +| 每行字符数 | 代码风格 | +| ---------- | ------------------ | +| 72 | Ada 官方 | +| 72 | Agda 官方 | +| 79 | Python 官方 | +| 80 | GNU 团队 | +| 80 | Google 团队 | +| 80 | Java 官方 | +| 80 | Object Pascal 官方 | +| 80 | Perl 官方 | +| 80 | PHP 官方 | +| 80 | Ruby 官方 | +| 80 | OCaml 官方 | +| 90 | CCM4 官方 | +| 100 | Android 官方 | + +这是因为早期电脑的文本显示模式,流行 80 × 25 左右的文本数量,比如 1980 年的 [Apple III][] 是 80 × 24, +之后 IBM 推出的 [VGA 文本模式][] 标准,也是以 80 作为常用行宽。 + +[Apple III]: https://en.wikipedia.org/wiki/Apple_III +[VGA 文本模式]: https://en.wikipedia.org/wiki/VGA_text_mode + +而这些显示标准可能源自更早之前的打孔卡,因为 IBM 的流行的打孔卡横排宽 80 个字符,就像是计算机的键盘延续了打字机的键盘。 + +到这里其实还可以追溯,那就是打字机的 [每行字符数][] 也是 80 左右,不过每行字符数就是排版方面的故事了。 + +[每行字符数]: https://en.wikipedia.org/wiki/Characters_per_line + +Python 的 [PEP 8][] 规范限制每行最多 79 个字符,跟许多使用 80 字符的语言有微妙的差别,所以有人向 PEP 8 的编写者, +也是 Python 的设计者 Guido van Rossum 发送邮件询问,[^h2eug] 得到的答案是「80 个字符宽的 Emacs 窗口,从 79 开始换行。」 [PEP 8]: https://peps.python.org/pep-0008/ -关于 79 个字符限制的考据:可能源自早期终端的 80 × 25 字符的显示空间,即行宽为 80 个字符。 -然后为了在 diff 等工具中正常使用,所以需要减 1 个字符,比如下面的 diff 演示: +[^h2eug]: nrogers64, [_PEP 8: Why is the character limit 79 and not 80?_](www.reddit.com/r/learnpython/comments/1h2eug/pep_8_why_is_the_character_limit_79_and_not_80/), r/learnpython, 2013-06-25. (参照 2023-09-26). + +具体的换行情况,大致如下:[^44637] + +[^44637]: Peter V. Mørch, [_Emacs wrapping lines that are exactly 80 characters long in a 80x24 terminal_](https://emacs.stackexchange.com/q/44637), Emacs Stack Exchange, 2018-09-10. (参照 2023-09-26). + +```perl +#!/usr/bin/perl -w +###############################################################################\ +# +# Copyleft (ɔ) +# All Rights Reversed +###############################################################################\ +# +``` + +第 80 个字符会被 `\` 换行符号挤压到下一行,[^00715] 原因尚未进一步研究。 + +[^00715]: Barry Margolin, [_Re: does emacs wrap lines that are exactly 80 characters long??_](https://lists.gnu.org/archive/html/help-gnu-emacs/2003-10/msg00715.html), 2003-10-29. 参照: 2023-09-26. [Online]. + +关于 79 个字符限制的其他猜测:为了在 diff 等工具中正常使用,所以需要减 1 个字符,比如下面的 diff 演示: ```diff -版本: 0.0.29-beta +版本: 0.0.30-beta ``` -(左侧的加减号表示增减) - -之后终端的宽度稍有增加,在 Windows 10 的 CMD 默认中,行宽是 120 个字符,其他常见的行宽还有 100, -所以有一些代码风格设定的是 99 或 119 个字符。 +左侧的加减号表示增减的行,不过这无法解释大多数编程语言都是用 80 个字符作为基准。 **用法:** -现在的 HTML 通常不需要考虑这件事,因为几乎不需要手动编辑 HTML 了,而是使用所见即所得编辑器,或者其他标记语言生成 HTML。 +之后终端的宽度稍有增加,在 Windows 10 的 CMD 默认中,行宽是 120 个字符,其他常见的行宽还有 100, +不过现在的 HTML 网站通常不需要考虑这件事,因为几乎不需要手动编辑 HTML,而是使用所见即所得编辑器, +或者其他标记语言生成 HTML。 **Markdown:** @@ -1396,11 +1446,33 @@ test

方便维护,然后太长的链接、表格和被 base64 编码的图片不需要拆分,接着将文本编辑器的自动换行关闭, 就能方便的编写 Markdown 文档。 +如果选择拆分,可以选择 100、120 左右的宽度。然后是换行风格,换行风格有两种,以 80 作为宽度的示例如下: + +```markdown +将段落拆分的原因应该是为了方便维护,曾经 HTML 网页几乎都是人 +力编写的全部或者部分,如果一个段落有数千个字符,而编辑器没有 +自动换行功能,就会很痛苦了。而现代的编辑器基本都有自动换行功 +能,即使如此,还是有「缩减栏宽」等功能,将文字以一定的宽度分 +段,防止 16:9 宽屏带来的阅读障碍。 +``` + +```markdown +将段落拆分的原因应该是为了方便维护, +曾经 HTML 网页几乎都是人力编写的全部或者部分, +如果一个段落有数千个字符,而编辑器没有自动换行功能, +就会很痛苦了。而现代的编辑器基本都有自动换行功能, +即使如此,还是有「缩减栏宽」等功能,将文字以一定的宽度分段, +防止 16:9 宽屏带来的阅读障碍。 +``` + +方法 1 看起来和谐,方法 2 易读易编辑。 + ### GWLM 16-5 超链接 #### GWLM 16-5-0 概述 -超链接的全称是超链接([hyperlink][]),有时也简称为超链,是富文本重要的功能之一,随后被万维网的 HTML \ 元素发扬光大。 +超链接的全称是超链接([hyperlink][]),有时也简称为超链,是富文本重要的功能之一, +随后被万维网的 HTML \ 元素发扬光大。 之后超链接的用法大致也遵循 HTML 的用法,比如 Word、PDF 都能创建文字超链接。不过 HTML 可以给各种内容创建超链接, 比如图片和按钮等。 @@ -2453,7 +2525,7 @@ GWLM 15834-4-12 是替代《GB/T 15834—2011 标点符号用法标准》4.12 (但着重号通常并非使用字符排版,就能在电脑上输入,而是依靠 CSS 等样式实现。) - 之所以使用着重号,是因为以前铅字印刷时,汉字太多,没法像字母语言一样,使用加粗表示着重, + 之所以使用着重号,是因为以前铅字印刷时,汉字太多,无法像字母语言一样,使用加粗表示着重, 所以使用额外的点来表示重点 + GWLM 15834-4-13-3 基本用法