中英混排手动挡「为什么我就是能这样娴熟地加上空格呢?」 - V2EX
V2EX = way to explore
V2EX 是一个关于分享和探索的地方
现在注册
已注册用户请  登录
爱意满满的作品展示区。
Dustland
V2EX    分享创造

中英混排手动挡「为什么我就是能这样娴熟地加上空格呢?」

  •  1
     
  •   Dustland 2014-12-04 22:49:51 +08:00 10465 次点击
    这是一个创建于 3976 天前的主题,其中的信息可能已经有所发展或是发生改变。
    有研究显示,打字的时候不喜欢在中文和英文之间加空格的人,感情路都走得很辛苦,有七成的比例会在 34 岁的时候跟自己不爱的人结婚,而其余三成的人最后只能把遗产留给自己的猫。毕竟爱情跟书写都需要适时地留白。与大家共勉之。[1]

    如果真正在意 typography,那么汉字与西文之间应该插入一个半角空格。Adobe In Design、Microsoft Word 等对中文与西文混合排版支持较好的软件,都默认增大汉字和西文的间距。[2]

    汉学家称这个空白字元为「盘古之白」,因为它劈开了全形字和半形字之间的混沌,增加了文字的 readability。[1]

    如果你是一个虔诚的「空格党」,可以使用这个简单的工具,每当 Plain Text 的场景(例如电子邮件与 V2EX 发帖),在所有的汉字与拉丁字母间添加一个空格。如果原本已经手动添加了空格,这个工具并不会在这之间再添加额外的空格。

    项目地址: https://dustland.github.io/daft-auto-spacing/
    GitHub 地址: https://github.com/Dustland/daft-auto-spacing/

    [1]. 什你就是不能加空格呢?: https://github.com/vinta/paranoid-auto-spacing
    [2]. 中英文混排时中文与英文之间是否要有空格? http://www.zhihu.com/question/19587406/answer/12298128
    [3]. text-autospace.js: https://github.com/mastermay/text-autospace.js
    第 1 条附言    2014-12-04 23:42:47 +08:00
    如果这个工具对你有用,无耻地求一波 Star(
    33 条回复    2014-12-06 03:33:55 +08:00
    lihua
        1
    lihua  
       2014-12-04 22:54:30 +08:00   1
    楼主为什么不在中文的标点跟英文之间也加上空格呢?
    c4pt0r
        2
    c4pt0r  
       2014-12-04 22:55:27 +08:00   1
    神器!作为强迫症,想有这么一个东西很久了,感谢分享
    frittle
        3
    frittle  
       2014-12-04 23:18:17 +08:00   1
    『研究显示』……谁的研究?
    zhangxiao
        4
    zhangxiao  
       2014-12-04 23:33:29 +08:00   1
    呃... Feature request: 做成浏览器插件,在白/黑名单域名下的 textarea 里启用/禁用这个插件。
    Dustland
        5
    Dustland  
    OP
       2014-12-04 23:44:18 +08:00
    @zhangxiao 引用来源 1 的「什你就是不能加空格呢?」是一个浏览器插件,应该能满足你的需求。
    xuc
        6
    xuc  
       2014-12-04 23:50:15 +08:00   1
    支持一下
    目前用的是输入法自带的功能
    gdm
        7
    gdm  
       2014-12-05 00:52:59 +08:00   1
    汉学家,哪个汉学家?
    JamesRuan
        8
    JamesRuan  
       2014-12-05 00:56:16 +08:00   1
    真正在意Typography的会加上1/4个空格符号。
    seki
        9
    seki  
       2014-12-05 00:56:58 +08:00   1
    试过 han.js 的汉拉间隙之后我感觉还是加空格更实在,不管手动还是自动
    rankjie
        10
    rankjie  
       2014-12-05 01:32:53 +08:00   1
    封装成了 factory 用在网站上了 谢谢楼主 :)
    jprovim
        11
    jprovim  
       2014-12-05 01:51:53 +08:00   1
    既然你都了, 那我就star了.
    lightening
        12
    lightening  
       2014-12-05 03:00:55 +08:00   1
    这么常用的功能,用个 OS X Service 其实更方便。
    est
        13
    est  
       2014-12-05 09:18:29 +08:00   3
    这个空格叫什么呢?逼格。
    lucifer9
        14
    lucifer9  
       2014-12-05 09:18:33 +08:00   1
    还是算了
    宁愿手动
    丢不起那个人
    TheLamb
        15
    TheLamb  
       2014-12-05 09:22:45 +08:00   1
    @xuc win下居然没有这个设置
    话说楼主难道就是插件「空格之神」的作者?
    likid
        16
    likid  
       2014-12-05 09:34:12 +08:00   1
    手动,这是一个习惯,不想要自动。
    aha
        17
    aha  
       2014-12-05 09:50:46 +08:00   1
    我有时候加有时候不加为什么?
    puras
        18
    puras  
       2014-12-05 10:06:10 +08:00   1
    想问LS的各位,用百度五笔的,如何能把临时切换拼音的快捷键从FN改成Z?
    XerWandeRer
        19
    XerWandeRer  
       2014-12-05 10:22:03 +08:00 via Android   img src="http://www.v2ex.com/static/img/heart_20250818.png?v=c3415183a0b3e9ab1576251be69d7d6d" width="14" align="absmiddle" alt="" /> 1
    @lihua 之前自己总结了几点,DesiringClick 上有比较严肃的讨论,其中就说到了英文与中文标点的问题:
    1. 避免使用全形英文字与定宽字体,他们并不适合作为文章阅读中使用。
    2. 阿拉伯数字与符号等视同英文处理。
    3. 中文与英文间使用半形空格分开,英文与英文间亦按照原本的方式使用半形空格。
    4. 中文段落中使用中文的全形标点符号,英文段落中则使用英文的标点符号。
    5. 如果英文刚好前或后衔接上中文的全形标点符号时,则不需要加上空格。
    zhouzm
        20
    zhouzm  
       2014-12-05 10:29:32 +08:00   1
    @XerWandeRer
    被你这么一总结,我发现自己完全就是按这几点做的。
    另外,叫全角半角更通俗些。
    XerWandeRer
        21
    XerWandeRer  
       2014-12-05 10:56:19 +08:00   1
    @zhouzm 我只是引用了 DesiringClick 上讨论的原文,这个网站真的很不错,不知道为什么近来已经打不开了。
    jedicxl
        22
    jedicxl  
       2014-12-05 11:25:59 +08:00 via iPhone   1
    文章的立论来源实在是。。。
    nicai000
        23
    nicai000  
       2014-12-05 11:28:01 +08:00   1
    不加, 太难看
    cdfmr
        24
    cdfmr  
       2014-12-05 14:02:28 +08:00   4
    以前加空格,现在不加。中英文混排时,中文字符与相邻的英文字符间确实要留一定宽度的“空白”,但不是“空格”,这个“空白”应该由排版软件或者浏览器渲染引擎进行优化,而不是用空格符代替。
    soolby
        25
    soolby  
       2014-12-05 14:02:52 +08:00
    搜狗输入法也有 中英文中间加入空格选项
    jakwings
        26
    jakwings  
       2014-12-05 14:08:58 +08:00   1
    不喜欢自动,真正的自动应该交给排版工具来干。我见过真正对此挑剔的程序员,连等宽界面下都要强迫自己加上一个半角空格,因为他已经对等宽排版绝望了,于是他在非等宽排版环境下也坚持使用「半角空格」,声称那才是(同时在两种环境下)最完美的留白技术。
    Daniel65536
        27
    Daniel65536  
       2014-12-05 14:11:25 +08:00   1
    @JamesRuan InDesign 的默认设置是 1/4 的全角空格宽度(遵从 JIS),也就是约等于一个半角空格。你说的 1/4 空格指的应该就是ID的默认设置,不过你弄混淆空格的全角半角了
    pockry
        28
    pockry  
       2014-12-05 14:21:33 +08:00   3
    我认为加空格不对,因为它违反了内容与样式分离的原则,中英文间距属于样式的范畴,但空格是内容,是可被读取为字符的。Word里面可以调整中英文间距,用Javascript也完全可以查找文章中的中英文并给中英文加上间距,说明这是可自动化的,我们只是处在一个对文字排版支持不完善的时代,就像低分辨率下点阵字体的渲染一样,directwrite基本放弃了小字体尺寸的点阵字体渲染,我们现在当然会有不爽,但过了这阵子就好了。

    加空格是同样的道理,当HTML标准和浏览器支持更多的文字排版样式后,中英文间距根本不是个问题。

    最后,很多时候这种情况是由于操作系统/浏览器内核引擎都是国外人开发的缘故,汉字的支持对他们来说是edge case,如果太麻烦就会放弃。只有我们用汉字的人去研究如何更好的渲染、排版,向世界贡献出我们的技术,汉字的显示才会真正完善。
    JamesRuan
        29
    JamesRuan  
       2014-12-05 14:33:55 +08:00   1
    @Daniel65536
    Unicode里表示空格的字符有很多: http://www.alanwood.net/unicode/general_punctuation.html
    姑且认为所谓的半角空格是EN SPACE,全角空格是EM SPACE。

    英文字符的词间空格推荐使用0.25em的空格,也就是FOUR-PER-EM SPACE。

    事实上, 纯英文的排版环境就很复杂,比如说要求在首字母缩写前后和数字与英文混排前后加HAIR SPACE。
    JamesRuan
        30
    JamesRuan  
       2014-12-05 14:36:27 +08:00   1
    @pockry 同意。内容和样式分离不清,虽然是简单的在不支持混排的环境中改善排版的方式,但一旦遇到支持的环境就弄巧成拙了。
    AthensBird
        31
    AthensBird  
       2014-12-05 19:18:15 +08:00   1
    加上空格的确易读美观一些
    zzColin
        32
    zzColin  
       2014-12-06 03:18:50 +08:00   1
    @pockry 怎么解释英文标点符号都要加空格……

    事实上我喜欢加空格并不主要是因为好看问题因为英文单词是用空格定界的,那我的理解就是,一个英文单词要和同一行里面之前和之后的单词(或者类似概念的东西)隔开,就需要有一个空格,不论这些内容是用何种文字书写。

    我其实真正看不惯的是中文的全角标点符号为什么专业排版一直都在用所谓的“开明式”,却不能像日语那样,在非等宽的字体里面就做成这个样子?所以在碰到全角标点符号的时候,我不得不妥协成不加空格了。
    zzColin
        33
    zzColin  
       2014-12-06 03:33:55 +08:00   1
    @pockry 补充: 暂且不谈标点符号问题的话, 英文的规定是单词需要用空格定界, 理论上应该并未默认单词与非拉丁字符之间可以省掉空格; 而中文的规定是汉字之间不能空格, 并没有规定汉字和非汉字之间的情况, 所以我认为, 不加空格的话会违反英文的排版规则, 而加上空格后, 中英文两边都不相冲。

    话说对于标点符号, 跟英语这边的情况放一起看的话, 也许我有必要考虑除了中文特定标点外, 全部用半角 + 空格 (这里我已经这样用了); 记得 Unicode 最初就是把全角标点当成兼容字符来看待的。
    关于     帮助文档     自助推广系统     博客     API     FAQ     Solana     922 人在线   最高记录 6679       Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 25ms UTC 20:17 PVG 04:17 LAX 13:17 JFK 16:17
    Do have faith in what you're doing.
    ubao msn snddm index pchome yahoo rakuten mypaper meadowduck bidyahoo youbao zxmzxm asda bnvcg cvbfg dfscv mmhjk xxddc yybgb zznbn ccubao uaitu acv GXCV ET GDG YH FG BCVB FJFH CBRE CBC GDG ET54 WRWR RWER WREW WRWER RWER SDG EW SF DSFSF fbbs ubao fhd dfg ewr dg df ewwr ewwr et ruyut utut dfg fgd gdfgt etg dfgt dfgd ert4 gd fgg wr 235 wer3 we vsdf sdf gdf ert xcv sdf rwer hfd dfg cvb rwf afb dfh jgh bmn lgh rty gfds cxv xcv xcs vdas fdf fgd cv sdf tert sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf shasha9178 shasha9178 shasha9178 shasha9178 shasha9178 liflif2 liflif2 liflif2 liflif2 liflif2 liblib3 liblib3 liblib3 liblib3 liblib3 zhazha444 zhazha444 zhazha444 zhazha444 zhazha444 dende5 dende denden denden2 denden21 fenfen9 fenf619 fen619 fenfe9 fe619 sdf sdf sdf sdf sdf zhazh90 zhazh0 zhaa50 zha90 zh590 zho zhoz zhozh zhozho zhozho2 lislis lls95 lili95 lils5 liss9 sdf0ty987 sdft876 sdft9876 sdf09876 sd0t9876 sdf0ty98 sdf0976 sdf0ty986 sdf0ty96 sdf0t76 sdf0876 df0ty98 sf0t876 sd0ty76 sdy76 sdf76 sdf0t76 sdf0ty9 sdf0ty98 sdf0ty987 sdf0ty98 sdf6676 sdf876 sd876 sd876 sdf6 sdf6 sdf9876 sdf0t sdf06 sdf0ty9776 sdf0ty9776 sdf0ty76 sdf8876 sdf0t sd6 sdf06 s688876 sd688 sdf86