该死的Word――修复Doc文档的灵异错误

杀死鬼行

    关于鬼行,其实是我个人的一种描述。很多人都遇到这样的问题,当编辑完(尤其是一个特别大的或者带有格式的)文档后,不知不觉再次打开时发现,有些明明是文档正文的部分,偏偏变成了标题样式,不管你怎样进行常规的修改都无济于事,保存后再次打开,这鬼行又回来了。而且我们一直无法确认到底是什么原因导致的格式变异,因为它几乎没有规律可循。这个恐怖的问题,从Word2000开始到Word2010都没有被彻底消灭。
    网上流传着很多Solution,甚至有专门应对的补丁或者批处理工具。但似乎都不能100%的解决这个问题。
    那么为什么产生这种现象呢?M$的产品内部机制我们无法详细了解。从原始版本的问题上看,这似乎和生化危机差不多。
    Word是当今市场占有率最广的文本编辑器,之所以这么流行,在于它无可匹敌的强大排版功能以及丰富的样式应用。从某种角度上来讲,Windows到今天还没有被Apple和众多Linux打败,很大一部分原因基于此。这正是由于这个优势也给Word的文档处理带来无尽的麻烦。很简单,软件功能越多,代码越复杂,出问题的地方也就越多。其实作为软件很多地方存在不为人知的缺陷是很正常的。通常情况下,这些缺陷不会显现出来,呆在某种特殊条件下这些有缺陷的元素有可能发生了意想不到的变异。
    实验证明,出现鬼行的地方往往和上一行的内容有着某些神秘的联系。从网上流传的各种版本的Solution中就可以看出一些端倪。
    当丧尸出现的时候,人们总是尝试着这种各样消灭它们的办法,但不幸的是,杀死它们永远只有一条途径,甚至无路可寻。
方法一,使用Ctrl-Q大法
    这是最常见的方法,简单直接,眼睁睁看着它在文档结构图中消失了。但是你很快就会笑不出来了,保存后重新打开就会发现:It is come back!
方法二,刷新格式
    这时候估计你已经有点儿抓狂了,立即想到有可能是格式在作怪。你这是疯狂地采取一系列你能想到的各种方式来杀死它:删除鬼行并使用Notepad的无格式纯文本复制转换,使用格式刷让正常的正文行"和谐感化"鬼行,在样式栏修改样式,甚至重新修改文档模板的样式。忙完这些你已经汗流浃背了,但还是无济于事。
妥协还是和谐?
    最有效的方法还是一个帖子给人留下了思考,选择鬼行行首,然后使用Ctrl-Q大法,此时暂时解除了危机,接下来选中上一行的换行符(也就是硬回车),连续按两次回车,这时该行和原来的鬼行之间会产生一个空白行,其实这个空白行就是之前的鬼行。不要尝试碰它,否则它会啃噬并感染紧邻下面的行,这样原来的鬼行再次归来。
究其原因,彻底杀死鬼行。
    其实没有绝对的办法,导致悲剧的发生在主、客观上都有原因。罪魁祸首就是样式自动应用。因为出于对排版效率和格式统一的需要,这个功能显然是不能关闭的。而恰恰在我们编辑的时候,经常使用数字,字母或者点号(英文句点),还有大量的缩进。这些往往被定义为目录标题的关键字,而我们在某两行的行尾和行首之间的内容写得有歧义,自动样式往往自作聪明的将一些本属于正文的内容误认为是目录,结果导致了目录超链接。而正文原本的样式是由模板定义的,肯定不会改变。这也就是为什么回车大法会比较好的隔离掉鬼行。但是为了文本段落的美观性,我们就要作出取舍了。现在我们明白了,其实双方都有错。我们不能指望微软解决问题,那么就得自己作出改变。
    第一,在鬼行处不要采用数字或者点号开头,减少不必要的Tab缩进,可以的话尽量使用中文或者空格开头,这种多出现在分步叙述的时候。第二,在鬼行或者其上一行,往往首尾都是非中文字符,这时最好再上一行行尾处加上一个标点符号,这个多出现在List清单列表这种情况。第三,最好的通杀方式就是为你的文档做一个详实的样式模板,凡是需要采用数字以进行分步叙述的地方,直接启用标题样式,而不要使用正文中的数字样式。凡是需要List清单列表的地方使用"项目符号和编号"完成。

灵异的域代码

    有时候Word在打开时会发现,所有的域莫名其妙的全部变成了域代码打开了,很是烦人。这个很简单,Alt-F9关闭域代码后,只是保存是不管用的,需要重新启动Word程序才能彻底摆脱这个麻烦。

鬼使神差的外来样式

    从别的Doc文档复制过来的文本会带有原来的样式,这种不请自来、盲目流动的野蛮行径也很令人气愤。如果文本比较少,那就是用Notepad来处理,以消除原有的自带格式,Notepad复制过来的纯文本会在目标Doc文档中入乡随俗。如果需要复制的内容本身含有格式,又不想破坏目录结构,最好的方式是,直接调整原文档的样式模板,将其属性同化成目标文档的样式在做复制粘贴。

本文出自 “猫咪杀手” 博客,转载请与作者联系!

你可能感兴趣的:(word,外来样式复制,正文变成目录链接,域变成域代码)