中文期刊排版助手
概述
本技能根据作者拟投稿的期刊,将其学术论文自动排版为该期刊要求的参考格式,最终以作者指定的文件类型输出投稿稿件。
工作流程(严格按此顺序执行)
第一步:分三环节依次弹出收集(AskUserQuestion 对话框)
不再启动本地服务、不再打开独立网页面板。改为在对话区内用 AskUserQuestion 工具分三个环节依次弹出对话框卡片,一个环节确认后再弹下一个,节奏清晰、不一次性铺开。
开场先输出一句引导语(≤1 行),例如:我会按目标期刊的官方投稿模板帮你把论文排版好。下面分三步收集信息,请依次在弹出的对话框里选择即可。 然后立即进入环节 1。
环节 1:拖入稿件文件(第一个弹窗)
用 AskUserQuestion 弹出第一个对话框:
- question:
请将您需要排版的文章拖到对话框里(支持 .docx / .doc / .pdf / .md / .txt)。准备好后选择对应状态: - header:
稿件文件 - options:
已拖入稿件文件—— 稿件文件已发到对话框,请接收后进入下一步暂无稿件文件—— 还没成稿,先沟通论文题目与大纲,再开始排版直接粘贴正文—— 不上传文件,把论文正文直接粘贴到对话框
作者选完后按情况处理:
- 选「已拖入稿件文件」→ Agent 读取对话里收到的文件,简要回传稿件概况(题目、作者、章节结构、图表数量、参考文献数量)作为确认回执。
- 选「暂无稿件文件」→ 让作者口述论文题目与大纲,Agent 整理成结构清单后回传确认。
- 选「直接粘贴正文」→ 让作者把正文贴进对话,Agent 读取后回传概况。
回传确认无误后,进入环节 2。
环节 2:选择投稿期刊(第二个弹窗,分两轮)
内置 18 个期刊清单以 references/journals.md 为准,不在弹窗选项里硬编码全部 18 本,而是分两轮弹出,避免一次塞太多选项。每个弹窗都自带「其他」入口,作者可随时直接输入清单外的期刊全称。
第一轮(快速选择):用 AskUserQuestion 弹出 4 个最常用的核心期刊 + 一个「查看全部」入口:
- question:
请选择根据什么期刊模版进行排版?下面是 4 个最常用的核心期刊;若不在其中可选「查看全部 18 个」,或直接输入期刊全称。 - header:
投稿期刊 - options:
中国图书馆学报—— CSSCI / 北大核心,图情领域顶刊图书情报工作—— CSSCI / 北大核心,需英文长摘要图书情报知识—— CSSCI / 北大核心查看全部 18 个期刊—— 按类别展开完整清单
作者选了具体期刊或通过「其他」自己输入 → 直接确定,进入环节 3。
作者选「查看全部 18 个期刊」→ 进入第二轮分组展开。
第二轮(分组展开,仅在选择「查看全部」时触发):把 18 个期刊按 4 大类分组,先弹大类,再弹该类下期刊(每组 ≤4 个,超过 4 个的拆成两次):
- 大类弹窗 options:
图情综合性核心(中国图书馆学报、图书情报工作、图书情报知识、情报学报、大学图书馆学报)情报学类(情报理论与实践、现代情报、情报资料工作、情报科学、情报杂志)图书馆学类(图书馆论坛、图书与情报、图书馆杂志、图书馆建设、图书馆学研究、图书馆工作与研究)其他 / 自定义(数据分析与知识发现、国家图书馆学刊,或清单外期刊)
作者选大类后,再弹该类下具体期刊(4 个一组,「其他」入口始终可用,支持直接输入全称)。选定后进入环节 3。
> 简化执行:若作者在第一轮就通过「其他」输入了期刊全称,跳过第二轮,直接进入环节 3。
环节 3:选择输出文件格式(第三个弹窗)
用 AskUserQuestion 弹出第三个对话框:
- question:
请选择排版后以什么文件格式输出? - header:
输出格式 - options:
Word (.docx)—— 生成可编辑的 Word 文档,便于投稿前微调PDF—— 生成最终版 PDF,排版固定不易改动
作者选定后,三个环节信息齐备(稿件文件 / 投稿期刊 / 输出格式),Agent 把三项信息汇总回传一次作为确认回执,再进入第二步。
降级方案
如果运行环境不支持 AskUserQuestion(如纯 API 调用 / 终端 / Markdown-only),降级为三段自由文本依次提问,作者用文字回复即可:
- 「请把需要排版的稿件文件拖进对话发我(docx / doc / pdf / md / txt 均可),或直接粘贴正文;如果还没写正文,先告诉我论文题目和大纲。」
- 「请输入你要投稿的期刊名称,例如「《中国图书馆学报》」或「图书情报工作」。内置 18 个期刊清单见 references/journals.md,清单外直接输入该刊全称即可。」
- 「请选择输出文件格式:Word (.docx) 或 PDF?」
第二步:调取期刊参考排版格式
- 先到
references/journals.md查找该期刊是否已收录格式要点。 - 优先打开内置模板:
references/templates/文件夹已收录 18 个期刊的官方论文模板(.docx/.doc/.pdf)。若目标期刊在列表中,用 Read/解析工具打开对应模板文件,逐项核对该刊的格式要点(标题字号、作者格式、摘要字数、关键词数量、参考文献著录格式、中图分类号、基金项目脚注等),以模板文件为准。 - 若模板未收录该期刊、或需核对最新要求,使用 WebSearch/WebFetch 检索该期刊官网的「投稿指南 / 征稿简则 / 论文模板 / 作者须知」,获取最新排版要求。
- 汇总并明确本刊需要套用的格式要点,至少包含:
- 参考文献著录格式(绝大多数图书情报期刊遵循 GB/T 7714-2015,见references/formatting-guide.md)
- 标题与作者信息格式(作者、单位、通讯作者、作者简介、基金项目)
- 摘要与关键词(中英文、字数/数量要求)
- 中图分类号、文献标识码(如期刊要求)
- 正文层级、图表、公式、脚注等排版规范 - 将汇总出的格式要点简要告知作者后再继续,确保方向正确。
第三步:按收集到的格式排版并输出
- 输出文件格式已在第一步环节 3 收集(Word
.docx或 PDF),此处不再重复询问;若作者中途改主意,可在此处确认一次再继续。 - 按第二步确定的格式要点,对稿件逐项排版:规范参考文献著录、标题层级、摘要关键词、作者与基金信息、中图分类号、图表编号等。
- 【新功能 A — 交叉引用 + 上标】参考文献与正文标注必须按以下规则落地(详见「五、参考文献交叉引用与正文上标规范」):
- 文末每条参考文献前打 Word 书签,命名建议_Ref1、_Ref2、_Ref3……(顺序编码制序号)。
- 正文所有[1]、[2]……标注不得以普通文本形式手敲,必须用「插入 → 交叉引用 → 书签 → 引用内容选「段落编号」或「标签文字」」的方式插入域,并在域格式中勾选「上标」。
- 多次引用同一文献用同一序号(域指向同一书签),禁止复制粘贴多个[1]文本。
- 优先复用现有docx-reference-crosslinkskill 完成批量交叉引用与对齐;若运行环境为 docx 渲染管线(tencent-docx / tencent-local-office-edit),按该管线对书签域的等价实现处理。
- 完成后在终端用python-docx跑一次校验:所有上标编号字符的font.superscript == True,所有正文引用的element.tag含fldChar/instrText(确为域引用而非纯文本)。 - 【新功能 B — 英文翻译联网核对】所有中译英字段必须联网核对,不得直出机翻(详见「六、中译英字段联网核对规范」):
- 中文期刊名 → 英文刊名:先查references/journals-translation-map.md内置表,命中即用;未命中或作者引用了清单外期刊,必须用 WebSearch 搜「<中文刊名>英文名 / ISSN / official English title」,再用 WebFetch 访问该刊官网或 CrossRef/OpenAlex 的 ISSN 入口核对,不得直接按字面机翻。
- 中文作者名 → 罗马拼音 / 官方拼写:先查references/authors-translation-cache.md已有作者缓存;未命中时按新华社《中国人名汉语拼音字母拼写规则》生成拼音,并 WebSearch 该作者已发表英文论文(Google Scholar / ORCID / 期刊官网)核对官方拼写后再落稿。
- 中文文献标题、摘要、关键词 → 英文:先按学术规范直译,再对每一条做 WebSearch 验证——优先匹配该作者/机构已发表的同主题英文文献,照搬其中的官方英译;查不到时在落稿处加(翻译待作者确认)标记,不得装作已核对。
- 期刊官网校对:所有待投期刊的英文标题大小写、缩写、ISSN 拼写,必须访问该期刊官网「About / Journal Title / Author Guidelines」页面二次核对。
- 完成后在终端打印一份「英文字段核对清单」给作者:每条注明「来源(内置表 / WebSearch 期刊官网 / WebSearch 作者已发论文 / CrossRef / 未核对待确认)」。 - 生成对应文件:
- Word.docx:调用 Word 文档生成能力(如tencent-docx技能)产出规范的 .docx 投稿稿。
- PDF:先生成可排版中间格式后转为 PDF,或直接产出 PDF。
- (若作者另指定 Markdown 等其它格式,按需输出规范化文本。) - 完成后向作者简要说明排版结果,并提示「最终请以期刊官网最新投稿指南/模板为准复核」。
排版通用要点
- 参考文献著录统一遵循 GB/T 7714-2015(详见
references/formatting-guide.md),注意英文文献作者姓前名后、缩写规范、标点用半角。 - 中文摘要一般为 200—300 字,关键词 3—8 个;英文摘要与关键词需与中文对应。
- 作者简介通常为「姓名(出生年—),性别,学历/职称,研究方向」。
- 基金项目格式通常为「本文系国家社会科学基金项目“项目名称”(编号:XXXX)研究成果」。
- 正文字号、行距、页边距等版式,若期刊模板有明确要求则严格套用,否则保持通用学术排版规范。
- 顺序编码制默认生效:正文用
[1]数字角标引用参考文献,多次引用同一文献用同一序号;具体落地方式见「五、参考文献交叉引用与正文上标规范」。 - 英文字段必须核对:所有中译英字段(刊名、作者名、文献标题、摘要、关键词)必须按「六、中译英字段联网核对规范」联网核对后再落稿。
五、参考文献交叉引用与正文上标规范
> 本节是 2026 年新增的强约束,是图书情报期刊投稿排版的默认行为,不再可选。
1. 落地目标
- 文末参考文献条目顺序编号
[1]、[2]……,每条前面打 Word 书签(bookmark)。 - 正文出现
[1]、[2]…… 的位置必须用 域引用(fldChar+instrText指向书签),而非普通文本。 - 域显示出的字符 必须设为上标(
font.superscript == True)。 - 引用同一文献多次时域指向同一书签,禁止文本复制。
2. 推荐实现路径(按工具能力择优)
| 工具能力 | 落地方式 |
|---|---|
docx-reference-crosslink skill(推荐,专用) |
加载该 skill 后批量建立正文 [n] ↔ 文末条目书签的交叉引用,自动处理上标。优先选用。 |
本地 docx 编辑管线(tencent-local-office-edit) |
通过 editor_sdk 在每条参考文献前 add_bookmark('RefN'),正文处 insert_field('REF RefN \\h') 后设 font.superscript = True。 |
tencent-docx 生成管线(无 editor_sdk) |
用 python-docx 后处理:扫描正文所有 ^[1-9][0-9]*$ 形式的数字 run → 删除原文 → 在该位置插入 OxmlElement('w:fldChar') + instrText=' REF Ref{n} \\h ' → 显示 run 设 vertAlign=superscript。 |
| 排版后 PDF | 先生成含域的 .docx 再转 PDF;不要在 PDF 里手画上标框。 |
3. python-docx 校验脚本(必须跑一次)
排版完成后,用 python-docx 跑一次硬校验,把不达标的引用位置打印给作者:
from docx import Document
from docx.oxml.ns import qn
doc = Document('<output>.docx')
issues = []
# 1. 检查正文上标
for i, p in enumerate(doc.paragraphs):
for r in p.runs:
text = r.text.strip()
if text.startswith('[') and text.endswith(']') and text[1:-1].isdigit():
# 这是普通文本形式的 [n],需要换成 fldChar
if not r.font.superscript:
issues.append(f'普通文本引用(非域引用/非上标): 段{i} -> "{text}"')
# 2. 检查书签存在性
bookmarks = set()
for bm in doc.element.iter(qn('w:bookmarkStart')):
bookmarks.add(bm.get(qn('w:name')))
# 3. 检查域引用
ref_fields = 0
for fc in doc.element.iter(qn('w:fldChar')):
if fc.get(qn('w:fldCharType')) == 'begin':
ref_fields += 1
print(f'书签数: {len(bookmarks)} | 域引用数: {ref_fields} | 问题: {len(issues)}')
for it in issues[:50]:
print(' -', it)
如果 问题 > 0,不要交付稿件,先修复再交付。
3.1 实操避坑清单(2026-09 实战补充)
- 图表题名识别必须要求「序号后有空格」:正文段落常以「图3显示,……」「表4呈现出……」开头,若仅按
^[表图]\d+匹配会把这些正文段误判为题名并错设 9pt 粗体居中。正确正则:^[表图]\d+\s\s或^[表图]\d+[ ](题名序号与文字之间空两格),并排除后接「显示/呈现/中/所示」的形式。 - 格式化顺序:先整体正文循环,后题头/特殊区:若先格式化标题、摘要、关键词再做正文批量循环(按段落特征归类),题头区会因不匹配标题层级正则而落入「正文」分支被覆盖回正文字号。安全做法:批量循环前记录题头区段落对象集合并显式跳过;或循环完成后再单独修一次题头区。
- 书签范围与域显示文本要配套设计:若书签只包住编号数字(
_Ref1包住1而非[1]),则 REF 域显示纯数字,正文方括号用普通上标文本 run 补齐——这样连续引用 [4-8] 拆分为[+ REF域(4) +,+ REF域(5) + … +]时结构最干净。 - 连续序号拆分:一个 HYPERLINK/REF 域只能指向一个书签;「[4-8]」要变成「[4,5,6,7,8]」必须拆成多个域 + 文本逗号,不能用单域实现。
- 清理空段落前先检查 drawing:图片常独占一个无文本段落,
p.text为空不等于可删;删除前必须检查p._p.find('.//w:drawing')与w:pict。 - python-docx 无 add_comment(1.2.0 仍无 Paragraph.add_comment):需要批注时改用醒目占位文本(如「【请补充×××】」)或在交付说明中列出。
- 章节标题正则要兼容「序号后无空格」:作者原稿常见「1地方高校图书馆……」「6总结」(序号与文字之间无空格)。识别一级标题不能用
^\d+\s+\S(会漏掉无空格形式而落进正文分支被覆盖为正文字号),应使用^\d+[^\d.\s]或^\d+\s*\S两种形式都收,匹配后统一 rewrite 为「序号 + 空格 + 标题」。 - rewrite 引用段落索引会漂移:若脚本在同一次运行中先插入了新段落(如稿件类型标注)再按早前获取的
doc.paragraphs[i]索引取标题文本,索引已失效会把错误段落文本写进标题。安全做法:始终持有段落对象引用(p_title = paras[i]),需要原文时先取出存变量,再插入新段落。 - 重建参考文献段时 split(']') 会吃掉右括号:用
text.split(']', 1)[1]取「]」后内容时,拼接时必须补回']' + rest,否则所有文献条目会变成「[1 单霁翔……」缺右括号。交付前用re.match(r'^\[\d+\]', p.text)对全部条目做一次括号完整性校验。 - 外文文献「名当姓」著录错误高发:中文作者转引外文预印本时常把外国作者的名误当姓(实例:Kohinoor Monish Darda 被著录为「KOHINOOR M D」——Kohinoor 是名,Darda 才是姓,正确著录应为 DARDA K M)。核对英文文献时必须查 PubMed/CrossRef/DOI 原文确认姓与名,同时确认预印本是否已正式发表(若是应改为正式出处)。
4. 兼容性提示
- 部分期刊(情报学报、图书情报工作等)明确要求正文用方括号数字标注且必须上标——本规范与该要求 100% 一致。
- 若目标期刊采用「著者-出版年制」(Harvard Style),本节中
[n]上标形式不适用,应改为(作者, 年)内文引用且不设上标;但仍须建立「文末条目 ↔ 正文引用」的双向锚点(用书签Ref_作者年+ 域),便于作者在线修改后一键更新。
六、中译英字段联网核对规范
> 本节是 2026 年新增的强约束,专门解决中文期刊中译英时的常见错译(按字面直译、拼音错、自造英文刊名)。
1. 必须联网核对的字段清单
| 字段 | 出错典型 | 核对目标 |
|---|---|---|
| 中文刊名 → 英文刊名 | 自造英文名、缩写错、用拼音替代官方英文 | 期刊官网 / CrossRef OpenAlex / ISSN Portal |
| 中文作者名 → 罗马拼音 | 名姓颠倒、拼写错、未沿用作者本人发表的官方拼写 | 作者已发英文论文 / ORCID / 期刊官网作者页 |
| 中文文献标题 → 英文 | 直译机翻、术语不一致 | 同作者同主题已发英文文献中的官方译法 |
| 中文摘要 → 英文 | 直译机翻、未按 Purpose/Method/Result/Conclusion 结构重写 | 同作者已发英文摘要的句式 / 期刊官网摘要要求 |
| 关键词 → 英文 | 名词单复数错、用近义词而非学科标准词 | 期刊官网 Keywords 要求 / LCSH / Wikipedia 学科标准词 |
| 单位、基金项目名称 → 英文 | 字面直译 | 单位官网英文名 / 基金委官方英译 |
2. 标准动作(按顺序执行)
- 查内置缓存(最快):先在
references/journals-translation-map.md、references/authors-translation-cache.md中查作者输入的字段,命中即用并标注来源「内置表」。 - WebSearch 关键词模板(必须尝试,至少 1 次):
- 刊名核对:"<中文刊名>" official English title OR "ISSN"
- 作者核对:"<作者姓名>" "<研究领域关键词>" site:scholar.google.com OR site:orcid.org
- 文献标题核对:"<中文文献标题中文" "<作者名>"+ CrossRef 入口 URL
- 基金项目:"<基金中文全称>" 英文 OR English - WebFetch 官方源(确认权威):
- 期刊官网:https://<journal-domain>/about、/author-guidelines、/aim-and-scope
- CrossRef API:https://api.crossref.org/journals/<ISSN>
- OpenAlex:https://api.openalex.org/works?filter=issn:<ISSN>
- 中国知网/万方:仅作辅助(首选还是 CrossRef / 官网) - 同作者已发表英文文献回溯(最权威):用 WebSearch 找出该作者已发表的同主题英文论文,照搬其中官方英译——这通常是该作者自己审定的版本。
- 落稿标注:每条英文字段在文档里用 Word 注释(comment)或脚注形式注明来源:
- 「英译来源:CrossRef ISSN 1234-5678」(推荐)
- 「英译来源:<期刊官网 URL>」
- 「英译来源:作者已发英文论文 <DOI>」
- 「英译来源:内置表」
- 查不到时加(翻译待作者确认)醒目标记。
3. 交付前的核对清单(必须打印给作者)
排版完成后,输出一份「英文字段核对清单」表格,字段:
- 中文原文
- 英文译文
- 核对来源(内置表 / 期刊官网 / CrossRef / WebSearch 命中文献 / 未核对待确认)
- 校对状态(✅ 已核 / ⚠ 待确认)
如果表格里出现「未核对待确认」> 0 条,不要直接交付,要么联网再核,要么请作者补确认。
4. 工具调用注意
- 每次 WebSearch 至少给 2 个不同关键词,分别用中文刊名/作者名 + 英文术语试探,避免一次失手。
- WebFetch 期刊官网若返回 HTML 解析失败,用 WebSearch 再尝试一次;若仍失败,把中文原文和疑似英文译并列出来,标
⚠ 待作者确认。 - 严禁将机翻直出的英文当作已核对结果。
资源说明
references/journals.md:常见图书情报核心期刊清单及格式要点索引(含 18 个期刊的格式要点速查)。references/templates/:18 个期刊的官方论文模板(.docx/.doc/.pdf),排版时优先以模板文件为准。references/formatting-guide.md:GB/T 7714-2015 参考文献著录规范与中文期刊通用排版规则。references/journals-translation-map.md:新增——常见图情期刊中文名 ↔ 官方英文名 / ISSN 速查表,排版时先查本表,命中即用,节省联网核对成本。references/authors-translation-cache.md:新增——高频作者姓名罗马拼音 / 官方英文名缓存表,每次排版后追加新核对结果,逐步扩充。
关联技能
docx-reference-crosslink:批量建立正文[n]↔ 文末参考文献条目书签的交叉引用、统一参考文献左对齐与正文两端对齐。本 skill 在生成 Word 输出时优先加载并复用,避免重复造轮子。
> 第一步已改为 AskUserQuestion 三环节对话内弹窗,不再依赖本地服务或网页面板;原 opener-dialog.html / submit-server.py 已废弃删除。