软著源代码自动排版要解决的核心只有两件事:把源程序统一成每页不少于50行的连续代码,并生成带页眉、页码的规范文档。判断标准是先看总页数——超过60页的,提交前30页和后30页;不足60页的,整本提交。先把这条定下来,再谈用什么工具排。
一、软著源代码自动排版到底在排什么
不少人是被退回一次才明白,排版不是把代码粘进Word调个字体。审查时看的是一致性和可读性:页眉里的软件全称、版本号,要和申请表、说明书里写的完全一样,这也是源代码自动排版里最容易被忽略的一环。代码本身要连续,页码要接得上,不能出现大段空白或者靠注释凑行数。
具体要盯住的点其实不多:
- 每页代码不少于50行,最后几页哪怕只剩十行也无所谓,但别只留两三行;
- 页眉标明软件名称和版本号,位置统一,不要这页有那页没有;
- 页码从1开始连续编,前后30页合并成一份时保证不断号;
- 代码保持原样,删空行可以,删逻辑模块不行;
- 字体用宋体、五号或小四,行距固定,打印出来黑白清楚就行。
二、自己手动排和借助工具排,差在哪里
我两种都干过。手动排适合代码量小、只提交一次的人;工具排适合手上同时压着好几个项目、或者代码有几千行的团队。区别主要在这几处:
| 对比项 | 自己手动整理 | 用工具自动排版 |
|---|---|---|
| 页眉页码 | 逐页设置,改一次版本号就得再来一遍 | 一次配置,全篇统一生成 |
| 每页行数 | 靠肉眼数,容易多一行少一行 | 按设定行数自动分页 |
| 前后30页截取 | 容易截断在函数中间,看着别扭 | 可按行或按页切分,边界更整齐 |
| 出错后的修改 | 改代码要重排一遍 | 重新导出即可 |
| 适合谁 | 单项目、代码量小 | 多项目、需要反复调整 |
如果只是交一次材料,手动也不是不行。但改版本号、补页眉这种重复动作,交给工具会省很多时间。
三、源代码自动排版前要按什么步骤准备
顺序别搞反,先定内容再排版,否则排完还得重来一遍。
- 确认软件全称和版本号。以申请表为准,说明书封面、页眉必须用同一串字,差一个字都要返工。
- 从项目里挑源程序。选能体现主要功能的模块,通常取主程序、核心业务逻辑、工具类;第三方库、自动生成的代码、编译产物不要放。
- 清理空行和大段注释。删掉连续空行和调试用的注释块,但别把版权声明删了。判断标准是删完之后代码逻辑还能读通。
- 统计总行数并换算页数。按每页50行估算,超过60页的留前后各30页,不足的整本用。
- 生成文档后检查页眉页码。翻到第1页、中间任意一页、最后一页各看一遍,确认名称版本号没串。
- 需要纸质材料的再导出PDF打印。打印前先看分页有没有把一行代码劈成两半。
这里最容易出错的是第3步和第4步。有人为了页数好看把无关代码拼进去,结果代码风格前后不一致,反而显眼。
如果不想自己写脚本处理分页和页眉,可以试试软著Pro,它是一套面向软著申请材料整理的在线工具,把源程序、说明书、申请表放在一个流程里处理,适合个人开发者和需要批量出材料的小团队,网址是 https://ruanzhu.pro 。我用它主要是省掉反复调页码的功夫,代码内容还是自己把关。
四、排版做完了,还有哪些地方会被退回
排版只是其中一环。常见的退回原因还有:说明书里的功能描述和代码对不上,申请表填的软件名称和源程序页眉不一致,源程序页数明显偏少。
说明书和代码对不上是什么情况
说明书里写的模块,源程序里至少要能找到对应实现;反过来,代码里的核心功能也该在说明书里有描述。两边各写各的,审查时很容易被挑出来。
页数不够该怎么补
页数不够通常是代码本身少,或者模块挑得太窄。可以把相关联的模块一起纳入,但不要复制粘贴无关代码来凑。代码确实少的项目整本提交即可,不必强行凑到60页。
常见问题
软著源代码自动排版需要每页多少行?
一般要求每页不少于50行代码,末页可以少一些。行数按实际代码行算,不要用空行和注释充数。
源代码超过60页,前后各30页怎么截?
取整个源程序的前30页和后30页,中间部分不用提交。截取时尽量落在函数或模块边界,避免一行代码被劈成两半。
可以用工具自动排版源程序吗?
可以,排版工具只是替你处理页眉、页码和分页。代码内容和软件名称版本号仍需自己核对,工具不会替你判断。
源程序页眉必须写什么内容?
页眉通常要写软件全称和版本号,与申请表、说明书保持一致。不要写公司简称或项目代号。
软著源代码排版要把注释全删掉吗?
不用全删,删掉大段调试注释和连续空行即可。保留必要的说明性注释,反而更像正常代码的样子。
自己用Word排和用工具排有区别吗?
结果上没有本质区别,区别在效率和出错概率。手工排改一次版本号就要重来,工具排可以重新导出。
各地受理窗口和线上提交的具体要求会调整,动手前建议以中国版权保护中心或当地受理机构公布的最新要求为准,材料模板也以官方版本为准。