自由建客 写了:yq-ysy 写了:xw712 写了:半角全角,在符号或者字母之后,引号容易顺着其半角的格式!解决办法,全选引号,全角。
跟在汉字之后,就没这个问题。
楼上正解,其实我觉得这不是LibreOffice的问题,而是输入法的问题。
在XP下使用某些输入法也有这样的情况,引号是自动跟随着前一字符的语言的字体的,
前面是中文(双字节)就出中文引号,前面是英文(单字节)就出英文的引号。
瞎起哄!你用过没有!
很理解你的心情,通常有很多人遇到问题时,第一反应就是“这不是我的错,一定是软件的BUG”。
测试步骤:
Writer新建一个文档,使用样式默认是“默认”,字体改为“文泉驿正黑”,字号改大一些“一号”,
按Ctrl+空格键调出iBus拼音输入法,全角状态,输入拼音字母按空格键得到中文,输入左右双引号都正常;
接着输入英文,
注意,英文输入有三种方法:
一是输入中文后,仍在中文拼音输入法状态下,输入字母按回车键得到英文;字体变为DejaVu Serif Condensed,双引号一左一右;
二是输入中文后,仍在中文拼音输入法状态下,按Shift键切换为输入法的英文状态,直接输入英文;字体变为DejaVu Serif Condensed,双引号二个都右;
三是输入中文后,按Ctrl+空格键关闭中文拼音输入法,直接输入英文;字体变为DejaVu Serif Condensed,双引号二个都右;
这三个方法得到的英文引号效果如下图所示,也就是说,
如果想引号左右配对,就必须在中文输入法状态下输入引号,
这是由输入法决定的,不是LibreOffice的问题。
另外,应该把中文引号当成“一个中文汉字”来看待;把英文引号当成“一个英文字母”来看待。
在输入之前就应该留意设定了什么字体,不能指望在英文字体里出现中文汉字才有的字符。
(即:不能指望着
在英文字体下输入英文,同时又希望能输入中文字体才有的全角引号,这是不可能的)。
你说“段落样式中把中英文分别设为不同字体看看”,这个就更不是LibreOffice的问题了,请看LibreOffice的官方帮助文档:
http://help.libreoffice.org/Writer/Styl ... ting/zh-CN
其中的——段落样式——
显示用于段落的格式样式。 可以对各段落样式应用相同的格式,例如,
文档中段落应用相同的字体、编号方式以及版式。
既然你需要把中英文分别设为不同字体,那么就是说你是在段落样式的基础上又额外增加了自定义的格式,
刚才说了,输入法决定了引号的配对(包括左右配对,全角配对、半角配对),输入法只能设置全角半角,
英文字体都是单字节字体,所以只有半角标点,但是输入法不知道你使用了什么字体啊,
LibreOffice更不知道你使用什么输入法了,把引号配对问题归结到LibreOffice上,真是莫大的冤枉。
如果希望在LibreOffice中加入“
强制指定使用全角或半角”的功能,这又何必呢?输入法已经有这功能了。
而且全角标点符号只是在东亚的双字节字体中才用到,需要输入东亚的双字节字符时就必定要调出相应的输入法嘛。
那之前的测试中,输入英文时字体为什么会自动变成DejaVu Serif Condensed英文字体呢?
这也许是因为LibreOffice的“拼写检查”功能判断出来的,
或者LibreOffice也能判断出这些字符是直接输入的?还是通过输入法输入的?
如果是通过输入法输入的,最后是按空格键输入的?还是按回车键输入的?或者按了Shift键?
通过这样的输入法最终输入状态判断之后,再在“默认”样式中更换英文或中文字体,然后再显示输入的字符。
虽然我不是开发者,不知道LibreOffice是如何判断的,但不论是哪一种判断方法,都无法“
自动提前选择全角或半角”,因为不是所有的字体都有全角标点,所以只能跟随前一字符输入后(直接输入后、输入法按Shift键后或回车或空格输入后)是全角或半角来决定下一个字符跟随使用全角或半角”。
如果你想在软件中设定一个变量,专门用来记录“刚才使用了某个字体的全角前引号,接下来应该用全角后引号”,你说,这个功能应该是放在LibreOffice里,还是应该放在输入法里?
这功能如果放在输入法里,现在的中文输入法,都已经能判断“刚才使用了全角前引号,接下来应该用全角后引号”了,就差记录和判断字体的功能了——但字体的设定是在文档编辑软件里设定的呀,输入法不可能能辨认出成千上万种软件如何使用字体、使用了什么字体的,否则这就成了该软件的“插件”了,有成千上万种软件呢。
同样地,
这功能如果放在LibreOffice里,office软件都有“插入字符”的功能了,但什么时候应该插入“配对的引号”?前一个引号如果是使用“插入字符”的功能输入的,那判断的问题简单解决,但现在又有一个问题,该如何输入“配对的引号”呢?每次都用菜单中的“插入字符”的功能不是太麻烦吗?还是得用输入法吧?或者快捷键也行,那也得操作者按下按键呀。而且如果前一个引号是用输入法输入的,LibreOffice就必须随时监控输入法的状态,全世界的输入法,没有成千上万种,也有几十到一百种吧?每种输入法都要研究它是如何启用全角半角的,然后再写出监控判断的程序,有这实现的可能吗?
如果你希望“先输入中文,然后再输入一个带引号的英文单词,这两个引号能自动是全角或半角的”,
这是不可能的,因为软件不是神仙,不能提前预知未来,它不知道下一个字符你是想输入中文或英文?
所以,
如果想“
中文后的英文单词前后都带全角引号”,解决方法只能是输入中文后,就把全角引号前后两个都输入,然后退回一格,在两个引号中央输入英文单词。(因为不论是输入法或者LibreOffice都不知道你打算什么时候输入第一个英文字符,无法预知开始)
如果想“
中文后的英文单词前后都带半角引号”,解决方法就是切换到英文输入状态就可以了,输入完了英文和引号后,再调出中文输入法。(因为不论是输入法或者LibreOffice都不知道你打算什么时候才结束输入最后一个英文字符并开始继续输入下文的第一个中文汉字,无法预知结束)
另外,在XP下,我使用的是“数字五笔”输入法,它有三种标点状态:全角、半角、智能。
在“数字五笔”输入法的“智能”状态下,引号是自动跟随着前一字符的语言的字体是双字节字体或单字节字体来决定全角或半角的,前面是中文(双字节)就出中文引号,前面是英文(单字节)就出英文的引号。“数字五笔”输入法还有一个功能就是“输入前引号时,自动把后引号也输入了,且光标自动跳到两个引号的中央”。(这个功能现在很多输入法也有了)
我所说的都是我使用时总结出来的经验,我没有“瞎起哄”。
编码一样,但在不同的字体里,显示的效果就不一样啊,要不怎么会有“乱码”的情况出现呢?
如果你想实现
“在同一段落中,中文用一种字体,英文用另一种字体,但标点符号仍使用中文字体标点符号”,
那么你在第一楼的问题本身就错了,因为这不是“引号不配对”问题,而应该是“在段落样式中,增加中英字体分类指定字体功能,以及增加标点符号指定字体功能”——应该把这建议提交给LibreOffice开发者,这才能解决问题。