自由建客 写了:MS World 依输入法状态决定当前主属语言。
输入法开且在中文状态则当前主属语言为中文,此刻接收到 U+201C 字符,即认定其为中文左双引号,对其以中文字体显示。
输入法在英文状态或关闭,则当前主属语言英文,此刻接收到 U+201C 字符,即认定为英文双开引号,对其以西文字体显示。
OOo / LibO 无视输入法状态,只由前一个字符决定。
若前一个字符是中文,此刻接收到 U+201C 字符,即认定其为中文左双引号,对其以中文字体显示。
若前一个字符是西文,此刻接收到 U+201C 字符,即认定为英文双开引号,对其以西文字体显示。
段首语言由环境决定, Linux 即 LC_CTYPE 变量。
当然,关闭输入法时不能输入 U+201C,只能输入 ASCII 字符 \x22,三款软件默认配置的“自动更正”会将其替换为 U+201C 或 U+201D。
谢谢你的详细讲解,我看明白了。——接着我又做了几个测试:
我在XP下用“记事本”或“写字板”来测试,用Google拼音输入法输入,也是一样能实现标点符号“依输入法状态决定当前主属语言”。这样看来,不只是Word有这功能了,记事本和写字板也有这功能。
我在Ubuntu下用LibreOffice中测试,输入英文后重新开启ibus拼音输入法的中文状态,输入的引号仍是跟随着光标之前一个字符的语言。而用Gedit测试,输入英文后重新开启ibus拼音输入法的中文状态后,能实现标点符号“依输入法状态决定当前主属语言”。
从“语言字体的最终选择权”来说,你是对的,这是处在Office软件的控制之中,
我误以为“语言字体的最终选择权”是处在输入法之中,虽然输入法决定了
语言的选择,
但输入法无法决定
语言字体的最终选择,
这是我的错误,我道歉,对不起。
但是,我依然觉得
“引号不配对”这不是LibreOffice的问题,理由有二:
一、不太重要:拼音输入法的三种英文输入方法也确实影响了“引号配对”的结果,LibreOffice或MS Word都有不配对的情况出现。
二、更重要的:配不配对,这得看用户的需要在什么情况下配对,用户的这篇中文文章里,是英文句子多,或者仅仅是英文单词多?
标点符号依输入法状态决定当前主属语言——这有利于英文单词多的中文文章。因为操作者可以
使用输入法来控制什么时候应该输入中文左双引号或英文双开引号,今天我想用中文双开引号把英文单词括起来,明天我想用英文双开引号把中文单词括起来,只要在输入引号前,保证输入法处于需要的中英文状态就能配对。
标点符号跟随前一个字符决定当前主属语言——这有利于英文句子多的中文文章。操作者在编辑包含有中英文句子的文章时,能随意在中英文句子中继续插入各自语言的单词和标点符号,正在输入或者修改编辑什么语言的句子,引号就自动以那种语言配对字体。不必频繁切换的中英文状态。输入法一直保持是中文状态就行,可以用回车的方法直输入英文单词,标点符号更不用管了,直接输入,自动会与前一字符的语言配对,简单方便。
如果说“修改的机率”小于“输入的机率”,这也要看用户的需求情况:
对于“
经常写包含有多句英文的中文文章的用户”来说——用“标点符号跟随前一个字符决定当前主属语言”或者“标点符号依输入法状态决定当前主属语言”两种方法输入
一句话的效果都一样,两种方法产生的引号在同一语言的句子中都一样与语言保持一致,打个平手。但是,当需要回头修改时,MS Word还得频繁使用输入法切换语言,就太麻烦了,而用LibreOffice则更方便。
对于LZ这样“
只需要在文章中用中文引号来括起几个英文单词的用户”来说——刚好反过来,输入的时候,MS Word情况就比较方便,该用什么语言的符号时就切换输入法的状态。而且由于整篇文章“只有几个英文单词”,也就没有“修改英文句子”的需要,所以自然就觉得LibreOffice不符合自己的需求,太不方便了。
唉,众口难调,如果LibreOffice修改为“标点符号依输入法状态决定当前主属语言”的话,对于“需要经常写包含有多句英文的中文文章”用户来说,他们又会抱怨修改文章时老是要切换输入法太麻烦了,如果标点符号能跟随前一字符的语言配对就好了……
两种机制只能选其一,符合这一类的用户,他们认为这不是问题;却不符合另一类的用户,他们认为这是一个严重问题;反过来也一样。
也许,最好的、两全其美的解决办法,是在Office软件中添加一个选项:
标点符号输入方式:A、跟随前一个字符;B、跟随输入法状态。(让用户自己勾选)
呵呵,“默认”应该是A还是B更好?——另一方又会抱怨:我都不知道还有这样的选项呢,在哪里?为什么安装完成时不默认用这个选项?