V2EX = way to explore
V2EX 是一个关于分享和探索的地方
现在注册
已注册用户请  登录
coolair
V2EX  ›  分享发现

最近研究中英文混排是否需要空格分隔时的一些发现(解决你中英文混排的疑虑)

  •  1
     
  •   coolair · 82 天前 · 1203 次点击
    这是一个创建于 82 天前的主题,其中的信息可能已经有所发展或是发生改变。

    最先搜索到的资料是 中文文案排版指北,推崇的原则是使用空格。

    后面我发现 W3C 有个 中文排版需求 的草案。草案中 3.2.2 横排的中、西文混排配置 也提出可使用西文词间空格。但是,草案全文并没有遵循这个原则。

    其实,这个早在 2015 年就有过激烈的讨论:文本中多处中西混排没有依照 3.2.2 ,3.2.4 留出空白。 · Issue #14 · w3c/clreq (github.com)

    其实,也如大家所说的一样“将中西文间距视作「样式」而非「内容」”,另外,在语义上是否需要空格也有激烈的讨论。

    在 IE 上是有 text-autospace 这个 CSS 样式来控制的。现在在 W3C 的草案 CSS Text Module Level 4 也加入了这个样式。

    结论,W3C 是不使用空格来分隔中英文混排的(在中文语境下),并把这个问题交给未来解决(也就是上文说的 CSS )。

    另外,在其他地方,比如,操作系统的默认文件(参考 Windows 快捷方式)命名,Microsoft 是使用的空格分隔中英文,但是国内的软件基无使用空格分隔的,例如:卸载英文名的软件

    对于强迫症患者可能就会有选择困难症了,文件名使用空格分隔,而文中内容不使用空格分隔?其实纠结的根本原因就是现有的很多(笔记)软件不支持(比如:Obsidian ),如果现有的软件支持文件列表的文件名和内容有对应的样式支持(有这样的 Markdown 笔记软件吗?),那就不会有人添加空格了。我建议统一,如果使用了空格分隔,那就都使用;如果没有使用,那就都不使用。

    PS:我还特意翻看了下国家公文排版(文件和网页),基本上都不使用空格风格(可参考)。

    那么,以后那些使用 Markdown 生成的 Web 方案会加入 text-autospace 样式吗?如果加入了,那么是否要处理使用空格分隔的问题?毕竟,现在很多人都是使用空格来分隔的。

    10 条回复    2024-10-02 15:41:13 +08:00
    yin1999
        1
    yin1999  
       82 天前
    说个我们在 MDN 遇到的问题:,在 markdown 文档中,中英文混排如果不加空格,很容易碰到工具(我们用的是 remark-gfm )无法正确渲染样式的问题。如:

    ```
    已废弃的**`unescape()`**
    ```

    会被渲染成:

    ```
    已废弃的**<code>unescape()</code>**
    ```

    所以在上面的样式能够被正确渲染之前,我会站“中英文混排加空格”。
    radishzz
        2
    radishzz  
       82 天前
    平面设计路过,在排版中中文、英文、数字之间都需要加空格,但在网络中很少有人能做到,除非输入法自带这个功能
    coolair
        3
    coolair  
    OP
       82 天前
    @radishzz #2 搜狗输入法确实有个这个功能,有一个设置可以打开这个功能。
    wushan
        4
    wushan  
       82 天前   ❤️ 1
    手动加空格很多年,但自从五年前 iOS 和 macOS 自动为中、西文间加上 1/8 em 的间隙后就不加了。而且半角空格很多时候看起来过宽,这个 1/8 em 比一个半角空格看起来舒服多了。这也是我目前还在使用苹果生态的原因之一,希望安卓和 Windows 能够跟进。
    coolair
        5
    coolair  
    OP
       82 天前
    @wushan #4 我还没用过 macOS ,请问下 macOS 下,使用 Obsidian 这种软件中英文混排不加空格,也会加上 1/8 em 的间隙吗?还是自带的软件才会加?
    sphendae
        6
    sphendae  
       82 天前
    @coolair 系统自带和部分第三方会显示间隙
    efcndi
        7
    efcndi  
       82 天前
    难以忍受人为地在文字之间插入不应该存在的元素。null 就是 null ,0 就是 0 ,不应该混淆。
    wushan
        8
    wushan  
       81 天前
    @coolair 第三方应用只要使用原生 UI 框架的都支持。
    XueXianqi
        9
    XueXianqi  
       81 天前
    您是否在寻找 “盘古之白”
    kopisee
        10
    kopisee  
       53 天前   ❤️ 1
    Windows 跟 Android ,单说浏览器的话,Chrome 、Edge 启用 chrome://flags/#enable-experimental-web-platform-features 后,网页就会显示分隔了。
    @wushan
    关于   ·   帮助文档   ·   博客   ·   API   ·   FAQ   ·   实用小工具   ·   2839 人在线   最高记录 6679   ·     Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 · 20ms · UTC 15:00 · PVG 23:00 · LAX 07:00 · JFK 10:00
    Developed with CodeLauncher
    ♥ Do have faith in what you're doing.