mike
1
请各位大佬先看图:
在.tex文件中,一个长行(无论中西文),如果其中有任何操作变动(如回车、加空格、加个单词等),就自动变成多个短行。其他文档中(如*scratch*
)我没有遇到这种现象。
我尝试过搜索fold、truncate、fill等词,也找不出阻止的办法。偶然发现M-x toggle-text-mode-auto-fill
连续2遍,可以不再断行了,但是每次都这样感觉不够方便。
请问各位大佬,有哪一句elisp语句可以取消类似.tex
文档中这种长行自动变短行的行为?先谢谢啦~~
mike
5
非常感谢~~~
参照您的提示,安全的做法找到了:(add-hook 'LaTeX-mode-hook 'turn-off-auto-fill)
1 个赞
latex-mode
里并没有启用 auto-fill
。找出什么地方用了 turn-on-auto-fill
/ (auto-fill-mode -1)
才是正道。而不是稀里糊涂任它开启,然后用的时候发现问题了,再一个个 mode 里关闭它。
1 个赞
mike
7
谢谢您的意见。
实在是水平所限,看问题看不深入。我用的是现成的配置,不会自己写配置,只是阅读配置的使用说明,做几个简单小调整,完全是实用主义。
这个问题也有意识到,可能是哪里开启了auto-fill
(否则我用的配置里,不会是.tex
文件开启了而.txt
文件没开启),但不好动配置文件,只敢在使用说明划定的文件里改改。利用@ LdBeth给的链接,才有了点线索。其中讲到统一用(auto-fill-mode -1)
的关闭方法,我担心可能是我个人的喜好问题,怕一棍子打死所有,就只好针对具体的LaTeX-mode
、org-mode
分别进行了。
先找到问题,再考虑能不能修改。而不是先认为不能改,然后因此不去找问题。这样本末倒置了。
mike
9
出发点不同,路线便不同。Emacs我就是用作工具,能发挥作用就行了,没多想去hack。说到底,没有学elisp,处处拦路虎。
mike
10
还有,在spacemacs这么nb的配置中,也是单独设置变量,来关掉auto-fill
的。看来,这种头疼医头、脚疼医脚的办法也是有的。
(latex :variables
latex-build-engine 'xetex
latex-enable-auto-fill nil)
ctex 对中文折行不会像英文一样有新增空格,所以其实并不影响最后的生成(但 markdown org-mode 是会的,因为没有针对中文处理)。就个人习惯来说折行比较舒服
1 个赞
mike
13
经您这么一说,觉得踏实了不少。LaTeX中换行相当于空格,多个空格当作一个空格处理。对于英文来说,在单词后的空格处折行根本没有影响,也增加了视觉的方便性,这也许就是LaTeX-mode
默认折行的原因吧。中文是连着写的,字与字之间有空格的话排版效果就不同了,ctex宏包对此做了处理,就没有大碍了。
但如果仍旧用cjk方式,或者想把用Emacs写的.tex
文件中的内容用其他LaTeX编辑器或其他文本编辑器打开,或者copy到MS Word文档中,还是不要折行的好,这样符合我们写东西的习惯,即只有另起一段时才用回车键。