InDesign Javascript编程及其在科技期刊论文排版中的应用*
——在校样中标注行号

2014-03-28 02:28
中国科技期刊研究 2014年1期
关键词:校样脚本文档

王 玥 刘 谦

《中国肺癌杂志》编辑部,300020 天津市和平区南京路228号,E-mail:wangyue81@gmail.com

Adobe InDesign是Adobe公司出品的专业桌面出版应用程序,主要用于各种印刷品的排版编辑。作为PageMaker的继承者,Adobe InDesign延续了PageMaker较自然化的排版方式,同时也博采众多排版软件之长,结合了一些高度结构化程序的排版方式,为杂志、书籍、广告等灵活多变、复杂的设计工作提供了一系列更完善的排版功能。同时 Adobe InDesign整合了目前所有Adobe系列软件拥有的图像、字型、印刷及色彩管理等技术,实现了屏幕显示和印刷效果完全一致的功能[1,2]。

PDF格式文档因其具有较好的文档保真性、安全性和浏览便捷性,目前已成为国内外文献存档的标准格式。PDF是Adobe公司提出的文件格式,因此同为Adobe公司产品的Adobe InDesign在PDF转换方面便具有其他排版软件无可比拟的优势。近些年InDesign凭借其独特的优势和强大的功能已被国内外越来越多的出版商和期刊社采用。

InDesign具有很多非常实用且高效的功能,如:PDF输出,自动+手动排文,文本绕排,样式功能,协同工作,印前拼版与检查等[3],能够在很大程度上满足期刊排版的需求。但在实际工作中我们经常会有些使用InDesign无法直接实现的需求,比如国外期刊非常流行的在校样中标注行号的功能。本文利用InDesign对脚本的支持,通过JavaScript脚本编程开发在排版文件中自动标注行号的InDesign插件。籍此向广大使用InDesign排版的科技期刊编辑部用户展现InDesign脚本编程的强大功能,并抛砖引玉,期望有更多的同行加入到这一实践中,在排版工作中使用脚本,编写自己的脚本,充分享受InDesign脚本编程为我们的工作带来的高效与便利。

1 Adobe应用程序脚本

Adobe Creative Suite为用户的编程和集成需求提供了多种功能强大的工具[4]。其中之一,是整个套件的脚本语言,它提供了一种低成本创建集成的方法,可用于控制并自动化Adobe应用程序的一系列功能,节省人工从事大量重复工作而耗费的时间和精力,彻底改变我们处理工作的方式[5]。Adobe Creative Suite家族中的Acrobat,Photoshop,InDesign,Illustrator,Bridge,Dreamweaver等产品都支持脚本编程。

可编写脚本的Adobe应用程序支持多种脚本语言:Mac OS平台上的AppleScript、JavaScript以及Windows平台上的VBScript、JavaScript。JavaScript作为一种独立于平台的脚本语言广泛应用于Web客户端开发。为了适应Adobe系列产品对脚本编程的需求,Adobe公司开发了一个扩展版本的JavaScript—ExtendScript。ExtendScript脚本文件的后缀名是.jsx,它在实现了ECMA JavaScript规范的基础上还提供了一些额外的功能和工具[6]。.jsx脚本较AppleScript和VBScripts可以更方便地在Illustrator、InDesign、Photoshop等Adobe应用程序中直接访问运行。用户还可以将.jsx脚本放置在应用程序的启动脚本目录中,当程序启动时脚本会自动执行。

用户可使用文本编辑器或Adobe提供的扩展脚本语言工具包(ExtendScript Tool Kit,ESTK)编写JavaScript脚本。ESTK提供了一个交互式的开发和调试环境,它包含一个全功能、语法高亮显示、Unicode兼容的文本编辑器;一个能够识别脚本中的错误并提示用户如何修改的内置语法检查器;以及一个可以单步执行脚本、查看脚本运行时数据、设置并执行断点的JavaScript调试器。这些特性使得ESTK比普通的文本编辑器更易使用,且所有支持JavaScript脚本编程的Adobe应用程序都默认安装了ESTK,因此推荐作为InDesign脚本编程的工具[6]。下面以实现在排版文件中标注行号的功能为例,详细说明在InDesign CS5中创建、编辑、运行JavaScript脚本的方法,并给出标注行号脚本的程序流程,供广大InDesign用户参考。

2 Adobe InDesign脚本应用

2.1 安装脚本

InDesign脚本的安装非常简单,以InDesign CS5为例:将脚本文件放入InDesign/Scripts/Scripts Panel目录下,Scripts Panel目录中的脚本会显示在InDesign脚本面板中,用户还可以为该目录中的脚本指定别名/快捷方式。

若希望在InDesign启动时运行某一特定脚本,将脚本放入InDesign/Scripts/Startup Scripts目录下即可(如该文件夹不存在,须手动创建)。

2.2 运行脚本

在“窗口”菜单中选择“实用程序”-“脚本”打开脚本面板,选择脚本面板中的脚本并双击即可运行该脚本。一些脚本在运行时会显示它的用户界面(如对话框或面板),图1所示为一个调整页面布局的示例脚本运行时显示的界面。

图1 脚本用户界面

2.3 脚本面板

脚本面板是运行InDesign脚本最便捷的方式,可通过“窗口”-“实用程序”-“脚本”打开。脚本面板列出了InDesign安装后自带的一些位于InDesign/Scripts/Scripts Panel目录中脚本示例(图2)。如果用户编写或获取了第三方脚本,也要将其放在Scripts Panel目录下,使其显示在脚本面板中。用户可通过直接双击脚本面板中的文件来运行相应的脚本。若需编辑脚本:在脚本面板中选择脚本,点击鼠标右键,选择“编辑脚本”,或按住“Alt”键双击脚本名称,程序会自动在ESTK中打开该脚本(图3)。

图2 InDesign脚本面板

2.4 脚本标签面板

在“窗口”菜单中选择“实用程序”-“脚本标签”打开脚本标签面板。在脚本标签面板中可以为页面项目(如文本框架)指定标签,这对于编写需要在代码中标识页面对象的脚本来说尤为有用[7]。脚本标签的使用方法如图4所示:打开脚本标签面板,用“选择”工具选中需要添加脚本标签的页面项目(图中选择了包含摘要信息的文本框),这时脚本标签面板会自动变为可编辑状态,在编辑框中输入标签名称后鼠标点击此文本框外的任意位置完成设定。

3 在InDesign排版文件中标注行号

将校样寄给作者进行校对是科技期刊编辑部与作者共同把控稿件编排质量的重要措施。目前国内科技期刊编辑部主要以两种方式向作者发送校样。

(1)打印纸质校样并邮寄给作者校对,作者修改后再邮寄回编辑部。这种方式费时费力,延长文章的发表周期,且手写校对意见易出错,不易读,不利于实现编辑与作者的快速互动[8]。

(2)通过E-mail发送PDF电子校样,作者以批注的形式标注校对意见。这种方式使校对速度成倍提高,确保了出版时效,降低了出版费用。但当改动数量较多时,作者需在PDF文件中做大量批注,这些批注的位置没有规律可循,且无法以列表形式进行索引,编辑在处理校样时容易出现疏漏。

图3 在ESTK中编辑脚本

图4 InDesign脚本标签面板

近年来,在论文校样中标注行号已成为越来越多国外大型出版商的国际著名期刊广泛采用的校样形式,Springer,BioMed Central,Elsevier等都向作者提供标注了行号的PDF校样。标注了行号的校样使作者可以以单独列表的方式按页码、行号依次列出需要改动的内容,这种方式清晰准确,方便编辑精确定位修改位置,进一步优化了编辑与作者间的互动过程,能够加快校样的处理速度。

《中国肺癌杂志》在InDesign排版实践中借鉴国外出版商的先进经验,使用JavaScript脚本编写自定义InDesign插件,实现了给文章自动标注行号的功能,下面介绍程序的主体流程及使用方法。

3.1 设计与实现

《中国肺癌杂志》的InDesign排版文件模板主体为两个文本框架:摘要信息文本框架和正文文本框架。在综合分析了我刊对论文排版文件标注行号功能的需求和InDesign文档对象模型后,我们决定对上述两个文本框架的内容标注行号,实现思路为在每行文字左/右侧放置包含该行行号的文本框,从位于文档首行的论文标题到文档末页的最后一行参考文献连续编排行号。实现中需要考虑行高、基线偏移、文本框串接、文本框分栏等问题。下面为程序伪码:

最后,当整期文章统排后并转成最终PDF交付印刷前,还需要删除所有行号。删除行号非常简单,只需将所有行号文本框移除即可,代码如下:

myDocument.LINE_NUMBER_TEXT_FRAME.remove()。

3.2 运行方法

(1)将编写完毕的添加行号与删除行号脚本分别保存为.jsx文件(如AddLineNumber.jsx和RemoveLineNumber. jsx),放到InDesign/Scripts/Scripts Panel目录下。

(2)在InDesign中打开需要标注行号的排版文件,并确保其为当前文档。

(3)参照2.4节所述方法分别为摘要信息文本框架和正文文本框架添加脚本标签“abstract”和“body”。

(4)在脚本面板中双击AddLineNumber.jsx脚本为文章添加行号。图5所示为标注了行号的文章校样。

(5)当需要移除行号时,在脚本面板中双击RemoveLineNumber.jsx脚本移除文档中所有行号。

图5 标注了行号的文章校样

4 总结

近几年已经有越来越多的国内科技期刊编辑部开始使用InDesign进行排版,大家在体验到了InDesign的强大功能和方便快捷操作的同时,可能也会发现自己需要的一些特定功能是InDesign本身并不提供的。但作为一个开放的系统,InDesign通过对多种脚本的支持为用户在InDesign基础上进行二次开发以满足自己的特殊需求提供了可能与方便[9]。InDesign脚本编程面向普通InDesign用户,支持如今在Web客户端开发中应用极广泛的JavaScript脚本语言,简单易学,非专业程序员用户只需具备一些基础的编程知识即可很快掌握。

在论文校样中标注行号已是国际主流学术期刊的通行做法,标注了行号的PDF校样较传统的纸质校样和PDF加批注形式的电子校样在外观上更加清晰简洁,方便作者和编辑快速、精准地在文章中进行定位,处理时不易出错,能够在一定程度上提高校样处理的效率和准确率。但这种校样方式在国内科技期刊编辑部中还未普及应用,国内常用的排版软件也少有支持。

为了实现在InDesign排版文件中标注行号的功能,我们对InDesign脚本编程进行了学习研究,并最终使用JavaScript脚本语言开发了实现添加、删除行号功能的自定义插件。希望本文能抛砖引玉,帮助大家体验InDesign脚本编程的强大功能及其为我们的排版工作模式带来的无限扩展可能。下一步我们会继续深入系统研究InDesign文档对象模型,掌握常用对象、属性、方法的使用,并在排版工作中多加实践,开发出更多更好用的插件,为不断优化排版工作流程提供支持。

1 http://baike.baidu.com/view/77428.htm[2012-12-17].

2 http://zh.wikipedia.org/wiki/Adobe_InDesign[2012-12-18].

3 汤超,胡冰,杨蕾.InDesign在期刊跨媒体出版中的应用实践.中国科技期刊研究,2011,22(2):245-247

4 http://www.adobe.com/devnet/scripting.html[2012-12-24].

5 http://wwwimages.adobe.com/www.adobe.com/products/ InDesign/scripting/pdfs/Adobe_Intro_to_Scripting1.pdf[2012-12-25].

6 http://wwwimages.adobe.com/www.adobe.com/content/dam/ Adobe/en/devnet/scripting/pdfs/javascript_tools_guide.pdf[2012-12-25].

7 http://help.adobe.com/zh_CN/InDesign/cs/using/WS0836C26E-79F9-4c8f-8150-C36260164A87a.html[2012-12-25].

8 金顺爱,刘文革,隋韶颖.电子校样的制作和注释添加方法.中国科技期刊研究,2006,17(6):1146-1147

9 何颂华.随心所欲使用InDesignScript开发自己的插件.印刷杂志,2001,(11):42-44

猜你喜欢
校样脚本文档
酒驾
浅谈Matlab与Word文档的应用接口
本刊作者校对注意事项
有人一声不吭向你扔了个文档
安奇奇与小cool 龙(第二回)
校样上的校改标注该不该擦
快乐假期
Word文档 高效分合有高招
小编的新年愿望
Persistence of the reproductive toxicity of chlorpiryphos-ethyl in male Wistar rat