Scribus中文排版文本格式化工具(构想)

今年四五月的时候,我们FCCTT再次遭遇”排版危机“,在TualatriX的建议下,我决定尝试一下排版。之前一直看到邮件列表里面就排版展开的讨论,没有实践,也不知讨论的具体是什么。确实,自己用过了才能知道排版进度慢的原因到底是什么。

于是五月份的时候,参与了第31期的排版。也就是在那段时间,产生了做一个文本格式化工具的念头。大致构想都在当时设计了一下,不过接下来自己忙了点其他的事情,另外自己对文本处理也不熟悉,于是一直搁置。

在这个月初,考试结束以后,又参与了33期的排版工作。排版中包含着大量的重复操作,于是,构造一个文本格式化工具的念头又来了。

在阐述我的构想之前,我先简单介绍一下我们使用Scribus进行中文排版的简略流程(准备过段时间写一个详细流程)。

1.获得官方原版的sla文件及素材,然后经过样式上一定的修改以适合中文字体(样式的修改步骤较多);
1.排版人员从我们工作的Wiki平台上获取翻译后的文本(从wiki中复制得到的是wiki源码,翻译结果作为注释存在在源码中,还需要做进一步提取);
3.使用Scribus打开sla源文件,使用”故事编辑器“将上一步中得到的文本添加进去。
4.除错修正。因为Scribus对中文支持不佳的原因,粘贴进去的文本中间如果含有空格以及破折号的横线,在Scribus中显示出来都会出现断行(我认为软件做这样的判断也是合理的,因为考虑到英文单词不应该跨行),所以需要做两件事情:1)对翻译者在输入的时候不小心多打的空格进行消除,因为这些空格是不需要的,2)对确实需要的空格,先删除,再用Scribus工具栏上的选项做”插入空格“操作,破折号的操作同2);
5.加一个细节,将文本中的括号统一为英文括号(好像是为了控制字符间距),可以的话,应该要检查所有标点,包括句号逗号之类的。

更进一步的,在上面的4中,如果我们可以解析出Scribus内部使用的”空格“和”短横“是什么字符的话,甚至可以直接在文本处理这一步就将这种Scribus内部的字符嵌入我们待”粘贴“的文本中,这样就省下了手工除错的时间。

作为一名实际参与过排版的人,我说一下,这个排版考验的是时间和耐心。排版者需要有一次大概(我的经验)三个钟头左右的时间来做十页左右的排版。在我的实际操作过程中,我是第一遍先尽量把文本全部粘贴进去,第二遍修改出错,第三第四遍处理一些比较奇怪的细节问题。而实际上,我还必须得在每个不同的图层之间切换,在Ubuntu中忍受Scribus1.3.3.x的响应延迟、还有标题样式不正确要在其他sla文件中比较查看、另外如果粘贴文本的时候看到翻译有误(并没有埋怨翻译的意思)还要找英文原文阅读以进行改正。每次以两个钟头计算的话,我这样一个不熟练的排版需要七八个钟头才能将自己负责那部分(十页左右)摆弄好。

感觉这是件有点让人吐血的活。

继续讲我的构想:

上面的排版流程中已经将文本格式化工具的功能大致做了描述。我希望第一个能实现的功能是做下面这两样条件判断:

1.不必要的空格除去(只有英文中间的空格才是需要保留的,中文和英文中间绝对不能留空格)
2.中文括号统一为英文括号,(可以的话加上其他符号的检查)

构造这样一个convert函数:可以在命令行中执行,参数为需要处理的文本,在同一目录下生成新的文本;进一步的话,实现GUI工具或者是网页应用:将待处理文本粘贴进去,显示出可复制的新的文本。

根据我的理解,这些确实是可以在Python中实现的。昨天在翻看Python Cookbook的时候注意了一下文本处理的内容,有replace,strip等方法都可以使用。昨晚上在推上发话想找个擅长Python文本处理的问请教一下,@rex_zhasm先生给予了回应。于是今天我写下这篇日志,作为介绍。也希望看到这篇日志的朋友,能帮助出点主意想法什么的。

补充:Scribus中包含Scripts这个工具,可以使用Python脚本进行排版上的操作,这些脚本存放在/usr/share/scribus/scripts目录中,有兴趣的可以找出来看看。我看到这些的时候,隐隐觉得,好像可以用Python实现Scribus排版的自动化呢。

Advertisements

6 thoughts on “Scribus中文排版文本格式化工具(构想)

  1. 我也在排
    “1.不必要的空格除去(只有英文中间的空格才是需要保留的,中文和英文中间绝对不能留空格)”
    第一点是行不同的,说到底我觉得你还是没抓住Scribus之所以这么脑残的原因。设想有这么一句话(就来自于33期):
    “现在每个人都在twitter上讨论Nexus One手机发布的可能性。 除了上面列出的这些,我们唯一能够真正带给您的是浏览器。所以,这个月,我们将向您展示如何通过添加PPA轻松安装Chromium浏览器。”
    这句话我已经使它符合你的这点要求了,但是还是达不到我们在Word里面看到那种效果,而是会从“Nexus”与“One”之间断开,极其难看。这是为什么呢?因为Scribus会把从One开始一直到这句话结束的整整一百多个字符统统当成一个“单词”,它觉得说这个单词在Nexus所在行余下的空间放不下,所以它会把他放到下面一行去。OMG!当真丝不考虑非西方体系的语言。
    这点真实弄的我要吐血了。希望你能研究出一个利器来,好解决我们的大难题。

    • Scribus脑残就是因为对亚洲文字支持不好,而且FC官方还说其他国家的翻译者没有提出这个问题,也是很脑残的回答。

      但是,毕竟软件不是我们开发的,我们最多能做的是在软件基础上做二次开发。

      我提出这个工具,我也知道不能解决英文单词中间空格的问题。但是实际上我们可以在排版过程中看到,翻译者在敲击键盘的时候,有意无意就是会在中文文句中加入空格,这样让本来头疼的空格断行问题数量增加了很多。如果消去这部分空格,是可以减少一定工作量的。

Leave a Reply

Fill in your details below or click an icon to log in:

WordPress.com Logo

You are commenting using your WordPress.com account. Log Out / Change )

Twitter picture

You are commenting using your Twitter account. Log Out / Change )

Facebook photo

You are commenting using your Facebook account. Log Out / Change )

Google+ photo

You are commenting using your Google+ account. Log Out / Change )

Connecting to %s