空格在科技类文章的排版中对于阅读体验的影响

news2025/1/23 17:52:57

© 2018 sparanoid
© 2018-2023 Conmajia
第一部分援引自《中文文案排版指北》


研究显示,打字的时候不喜欢在中文和英文之间加空格的人,感情路都走得很辛苦,有七成的比例会在 34 岁的时候跟自己不爱的人结婚,而其余三成的人最后只能把遗产留给自己的猫。毕竟爱情跟书写都需要适时地留白。 ——V2EX

第一部分

中文和拉丁文(或其他文字及数字)之间要不要加空格,我猜很多人从来都没考虑过这个问题。他们一边信奉“细节决定成败”的鸡汤,一边“从来不在意这些细节”。

科技类文章通常在中文之间混杂较多的外文词汇或字母,例如“Unity 从入门到精通”、“关于 http 和 https 之间的区别”、“我有学过 українська мова,所以 русский язык 我可以稍微看得懂。”等等。在阅读网页文字的时候,由于汉字均为全角字符,而外文——尤其是英文——字母多为半角字符,因此容易造成视觉粘连. 对比下面两个例子:

演示 1
在LeanCloud上,数据存储是围绕AVObject进行的。每个AVObject都包含了与JSON兼容的key-value对应的数据。数据是schema-free的,你不需要在每个AVObject上提前指定存在哪些键,只要直接设定对应的key-value即可。

演示 2
在 LeanCloud 上,数据存储是围绕 AVObject 进行的。每个 AVObject 都包含了与 JSON 兼容的 key-value 对应的数据。数据是 schema-free 的,你不需要在每个 AVObject 上提前指定存在哪些键,只要直接设定对应的 key-value 即可。

你可以先花 1 分钟仔细阅读上面两个例子,然后再给出自己的判断。

中文和英文(及数字)之间的起到的是分词的作用,也有部分 kerning 的作用,所以对于专有名词,例如“歼20”、“豆瓣FM”这种混合词就不能分开,但是“歼20 战斗机”、“豆瓣FM 软件”是可以分开的。

正是因为间距直接影响了文字阅读的视觉效果,所以在网页上,中英文之间常常添加空格来进行调整。但这属于阅读呈现样式的问题,并没有强制性的规范,更多的只是建议。W3C 曾在 2015 年提出过一个《中英文混排建议规范》。据说汉字委员会也在对此进行讨论,未见下文。

然而手工添加空格,相当于在代码里硬编码文字说明,这是和“样式-内容分离”原则背道而驰的。但是,就目前的浏览器渲染方式来说,没有人会他妈关心你写的文章阅读起来体验是怎样的。所以手工添加空格更多的是作者本人为了提升阅读体验的折衷。

第二部分

目前,就网页或计算机软件而言,单一内容来源者倾向于添加空格以提升显示效果,例如大公司的网页或文档。而不添加空格的通常是论坛、博客或百科类网站,因为这些网站内容由多人提供,无法形成有效规范。

正面案例

微软

微软(Microsoft)一直是坚定的空格支持者。下面的图分别是 Windows 98 安装界面、MSDN 文档和 Microsoft Word 编辑界面。请注意观察中英文之间的间隔。在网页上,使用空格分隔;而 Word 中是由软件自动分隔的,不需要手动添加。


图 1 Windows 98 安装界面
图 2 MSDN .NET Core 网页版文档
图 3 Microsoft Word 2016 工作区

LaTeX \LaTeX LATEX 排版系统

这是科技文献排版系统的事实标准,它的 CJK 宏包支持完美的中英文分词。

苹果电脑公司

苹果一向以高水准的设计感著称,它的中文官方网站所有中英文字之间均添加了空格,参考图 4 和图 5.


图 4 Apple 中国官网 2018 年首页广告


图 5 Apple 中国官网文章

国际商用机器公司中国网站

IBM 的中国官方网站绝大多数网页内容中英文间也添加了空格,参考图 6.


图 6 IBM Hadoop 产品页面

电脑报

图 7 是电脑报 2014 年 5 月 5 日的一篇文章,可以看到中英文间添加了空格.


图 7 电脑报文章

反面案例

亚马逊

亚马逊中国的页面相当任性,空格添加与否完全视工程师的个人喜好,可能前端工程师很想草死老板的马吧🤔️

如图 8 展示的个人帐户菜单,“我的Prime会员”、“我的 Kindle Unlimited”和“您的 Amazon Drive”三个菜单项不管从空格的应用还是从遣词手法,风格迥异,很难说它们出自同一个工程师之手。可能他们要在老板的马后面排队🤣

图 8 亚马逊中国网站“我的帐户”菜单

百度百科、维基百科

百科类网站特点在于共同编辑。在享受集体智慧的同时,也无法要求实现统一的阅读效果。

技术博客

技术博客的主要用户群体码农。这个群体的特点是很少在意措辞,讨厌写文章,不擅长交流——不管是口头还是书面。因此,码农在写文章的时候,完全不考虑读者的感受,只管自己瞎几把写。打开博客首页,99.9999% 的文章没有在中英文间添加空格。

造成这种情况的原因

简单来说,就如这段引文所讲。

毕竟不算大众需求
只有部分国家的人需要
这些国家的普通用户恐怕大部分都不在意这些空格

现有的解决方案

CSS

正如我前面说的,将中英文分开,本质上是内容呈现样式的问题,和内容本身是无关的。遗憾的是,尽管 CSS 3、CSS 4 标准均有 text-autospace 的相关内容,然而在目前的技术和现实环境下,只有微软的 Internet Explorer 支持 -ms-text-autospace 特性,可以为中英文间自动添加空格(微软在文字处理方面一直领先业界)。

浏览器插件

在多数浏览器均不支持的情况下,一般使用 js 插件或者其他语言写成的插件完成。比如 text-autospace.js为什么你们就是不能加个空格呢?(Chrome/FireFox 插件)等。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/433988.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

分布式锁-Redisson

分布式锁 1、分布式锁1.1 本地锁的局限性1.1.1 测试代码1.1.2 使用ab工具测试(单节点)1.1.3 本地锁问题演示(集群情况) 1.2 分布式锁实现的解决方案1.3 使用Redis实现分布式锁(了解即可)1.3.1 编写代码1.3.2 压测 1.4 使用Redisson解决分布式锁1.4.1 实现代码1.4.1 压测1.4.2 可…

DS1302

DS1302时钟芯片简介 DS1302是DALLAS公司推出的涓流充电时钟芯片,内含一个实时时钟/日历和31字节静态RAM,可以通过串行接口与单片机进行通信。实时时钟/日历电路提供秒、分、时、日、星期、月、年的信息,每个月的天数和闰年的天数可自动调整&a…

深度分析Netflix的投资价值,虽面临激烈竞争,但前景无限光明

来源:猛兽财经 作者:猛兽财经 公司介绍 Netflix(NFLX)是一家在视频流媒体领域非常成功的公司,运营着全球最大的视频流媒体订阅平台之一(目前已经有超过2.3亿的付费会员),它的商业模式也比较简单&#xff0…

Linux环境jdk安装教程及详细步骤

下载jdk包: 下载地址:https://www.oracle.com/cn/java/technologies/javase/javase8u211-later-archive-downloads.html 这里点击下载后,需要登录才可以下载,没有帐号就注册一下即可。 将下载的文件放至服务器/usr/local/jdk目录…

4.13~4.17(PE文件结构预习+hook+进程hellow)

常见PE文件结构 常见的PE文件:exe、dll、sys Ag: exe就不用多说,就是可执行文件 dll动态链接库 对于 Windows 操作系统,操作系统的大部分功能都由 DLL 提供 (https://learn.microsoft.com/zh-cn/troubleshoot/window…

三:slab分配器

目录 slab分配器 基本概念 slab分配内存 主要结构体 kmem_cache per cpu freelist slab分配器 基本概念 针对小粒度内存分配 伙伴系统以页4kb为最小分配单位,但对于一些时候,这太大了,会造成严重的内存浪费,产生大量内存碎…

【mac】iterm2通过rz命令往服务器上传文件

需要的资源文件在这里iterm2-zmodem,设置的0积分,如果csdn给调了,点这里下载bak 1、通过命令行打开bin文件夹 cd /usr/local/binopen . 2、把上面下载的俩文件复制进去 3、还是在/usr/local/bin下调整权限 cd /usr/local/binchmod 777 ite…

华为云上云实践:Windows环境下优化云硬盘EVS的创建、挂载和初始化

本文主要讲解华为云云硬盘 EVS 的在 Windows 服务器上创建、挂载及云硬盘初始化等基本操作,快速掌握华为云云硬盘 EVS 操作方法。 文章目录 一、前言二、前期准备:华为云 EVS 采购三、挂载非共享云硬盘 EVS五、初始化云硬盘 EVS 一、前言 华为云 EVS&am…

C嘎嘎~~【初识C++ 上篇】

初识C 上篇 🫅1. C关键字🫅 2.命名空间🤷‍♂️2.1命名空间的定义🤷‍♂️2.2命名空间的使用 🫅 3.C输入 & 输出 转眼间, 就进入C这个新的篇章啦! 我带着些许心悸 和 激动: 心悸…

Wing IDE 解决鼠标悬浮

Wing IDE 解决鼠标悬浮 通过修改文件配置,解决鼠标悬浮没有出现变量值和函数没有自动提示的问题。 配置文件路径查看: 打开该文件夹下的下图配置文件: 添加下图两行配置,然后重启wingide即可。 Wing IDE 常用快捷键 调节字…

【JS】Es6无法注销事件 | class构造函数里无法注销事件解决方法(亲测有效)

错误删除事件 class Goods {addEv() {// 添加mousemove事件// document.addEventListener(mousemove, this.changeEv.bind(document)) //错误一// document.addEventListener(mousemove, this.changeEv) //错误二document.addEventListener(mousemove, this.changeEv.bind(thi…

(数字图像处理MATLAB+Python)第五章图像增强-第一节:图像增强概述和基于灰度级变换的图像增强

文章目录 一:图像增强概述二:基于灰度级变换的图像增强(1)线性灰度级变换A:基本线性灰度级变换B:分段线性灰度级变换①:定义②:截取式灰度变换③:窗切片 (2&a…

【权限维持】LinuxOpenSSHPAM后门SSH软链接公私钥登录

文章目录 权限维持-Linux-替换版本-OpenSSH后门拓展玩法:OpenSSH后门的防范方法 权限维持-Linux-更改验证-SSH-PAM后门配置环境 权限维持-Linux-登录方式-软链接&公私钥&新帐号SSH软链接公私钥后门帐号 参考 权限维持-Linux-替换版本-OpenSSH后门 这里复现…

java 获取时间的方法

Java的时间是通过字节码指令来控制的,所以 java程序的运行时间是通过字节码指令来控制的。但是由于 Java程序在运行时, JVM会产生一些状态,所以在执行 JVM指令时, JVM也会产生一些状态。 我们在执行 java程序时,主要是…

JVM(面试问题简析)学习笔记

文章目录 1. JVM中有哪几块内存区域?Java 8 之后对内存分代做了什么改进?2. 你知道JVM是如何运行起来的吗?堆内存中对象的分配的基本策略?3. 说说 JVM 在哪些情况下会触发垃圾回收?JVM 的年轻代垃圾回收算法&#xff1…

【杂凑算法篇】密码杂凑算法的安全强度

【杂凑算法篇】密码杂凑算法的安全强度 杂凑(哈希)算法安全强度—【蘇小沐】 文章目录 【杂凑算法篇】密码杂凑算法的安全强度(一)安全强度(Security Strength)(二)杂凑算法的安全强度与对比总…

x86汇编

寄存器 常规 AX累加,算术运算或函数返回值存储 基址寄存器(BX),指向数据的指针 计数寄存器CX,移位,循环,一些量 数据寄存器DX,运算超过16位,高16位放在DX 堆栈指针寄存器SP,用于指向…

系统设计访谈-业内人事指南 《System Design Interview-An insider‘s guide》中文版

前言: We are delighted that you have decided to join us in learning the system design interviews. System design interview questions are the most difficult to tackle among all the technical interviews. The questions require the interviewees to de…

(Qt) 重定向内置日志

文章目录 前言代码.pri 独立的包log.priLOG_Config.hppLOG.hLOG.cpp examplelog_test.promain.cpp 使用效果debug模式release模式 分析Qt内部结构核心函数核心配置 END 前言 在软件开发过程中&#xff0c;避免不了日志的使用。 在Qt中&#xff0c;我们平常用的#include <Q…

Django | 解决admin增加新用户只有用户名密码和确认密码的问题

文章目录 如图所示&#xff0c;下面给出解决方案&#xff1a; 如果您使用 使用 Django 默认的后台管理界面添加用户时&#xff0c;只看到了三个字段&#xff08;通常是 username、password和 repassword&#xff09;&#xff0c;那么可以通过定义 add_fieldsets 属性来增加更多…