TCH-中医古籍条目改写器
Overview
把一条中医古籍原文,按「样章」的结构与版式,改写成一条规范的文献著作条目。
本技能固化了中医神志病文献条目整理的全部写作口径——该口径经十轮用户反馈迭代定稿,后续同类条目一律照此执行,不得擅自简化或发挥。
核心原则:
1. 版式零改动——复制样章文件、只替换正文 XML,样式/页眉页脚/页面设置原封不动。
2. 出处随文——不设文末参考文献列表,每条引文在所在条目内就地标明卷次篇名。
3. 不杜撰——原书未载剂量不擅自补;引文须核到具体卷次篇名;医案须可溯源。
4. 迭代另存版本号——v8→v9,绝不覆盖原稿。
触发条件
- 「按这个模板改写这条古籍原文」
- 「学习此文档的结构」「按样章改写」
- 「后面的文献同样的要求完成」
- 用户提供「样章.docx + 一条古籍原文」并要求整理
不适用:综述撰写(用 tch-lit-review-synthesis);稿件核对修订(用 tch-manuscript-audit-revise)。
一、十三模块模板(固定顺序,不得增删)
| # | 模块 | 写什么 |
|---|---|---|
| 1 | 节标题 | 「第X节 病名(方名)」,编号待用户定 |
| 2 | 【原文】 | 古籍原文+书名卷次括注,不加任何考据注释 |
| 3 | 【情志症状】 | 只列原文中直接出现的情志症状原字,逐条摘录,每条括注出处 |
| 4 | 【释义】 | 「本条论述XX病的证治」起句;引经典、释病因、逐条解析症状机理 |
| 5 | 【病因】 | 先天/后天二途,附总括 |
| 6 | 【病位】 | 脏腑定位,引经典;久病及肾 |
| 7 | 【病性】 | 本虚标实/虚实夹杂等 |
| 8 | 【病机】 | 总论+变证+【病机概括】+治则 |
| 9 | 【辨证】 | 病名诊断→证型诊断→主症→兼症→舌脉→辨证要点→鉴别诊断 |
| 10 | 【论治】 | 「治法:…… 方药:…… 依据:……」三段式 |
| 11 | 【方药】 | 方名,原书药名+古剂量 |
| 12 | 【用法】 | 原书煎服法 |
| 13 | 【方解】 | 基础方溯源;分组解析药物;药对作用;全方配伍主旨 |
| 14 | 【选注】 | 「医家:引文(著作卷次),解读证候」 |
| 15 | 【方论】 | 「医家:引文(著作卷次),解析配伍」 |
| 16 | 【医案举隅】 | 病案N:病名/患者信息/主诉/现病史/查体舌脉/辅助检查/辨证分析/治则/处方/复诊/疗效。按:…… |
> 模块 5–7(病因/病位/病性)为中医诊断学教材体例所加;若用户要求回到原样章的 13 模块,删去即可。
二、十条硬性口径(★核心,不得违反)
- 【原文】只放古籍原文+书名卷次括注,不加【出处考】【病名】等考据注释。
- 正文以中医诊断学教材语言为主干(病名—病因—病位—病性—病机—辨证—论治—方药—用法—方解—选注—方论—医案)。
- 每段(除【原文】【情志症状】)末尾必须加一段现代医学语言阐述,点明与目标疾病的关联;但只加能自然对应者,不强行联系(病因对病因、机对机、方源对方源、鉴别对鉴别);同一论点的现代阐述只出现一次,不重复。方论/选注的医家注文本身保留,只删段末硬加的现代评述。
- 现代阐述不得用【】小标题、不得独立成模块;只用「从现代医学角度看……」「就现代医学而言……」自然接续。
- 【情志症状】只列原文中直接出现的情志症状字样,原文原字+括注;不得加入归纳性证候描述(如「神情不能自主」「多疑善虑」)。
- 古方中药用法与现代药学法规冲突者,在相应条目正后方加【按·法规冲突备注】。
- 文献出处随文归位,不设文末参考文献列表。
- 【医案举隅】只用近现代医案(清末以降);论说性引证(选注/病因/辨证)中的古代医家不受此限。
- 迭代另存新版本号(v8→v9),不覆盖原稿。
- 重要内容必须有依据——医学数据库、国家/省/市/单位官方文件、药典、指南、教材。无依据则不写或标「待核」。
- 凡引用具体数值(患病率/遗传度/比例/年限/剂量),必须回溯一级文献逐字核对,不得凭记忆或近似值下笔(详见「二·补二」)。
二·补、现代阐述去重与取舍法则(★成稿前必做一遍)
现代阐述写完后,逐段自检,凡命中下列情形者一律删或压缩:
该删的(强行联系)
| 情形 | 例 | 判据 |
|---|---|---|
| 维度不对位 | 病性(虚实属性)硬接「慢性迁延 70%」 | 属性对属性、病程对病程,跨维度不接 |
| 引注体例越位 | 【选注】医家医案后接「↔强迫症某证型」 | 选注/方论的医家注文本身保留,只删段末硬加的现代评述 |
| 纯方剂学内容硬接 | 方论讲归经配伍,末接强迫症用药 | 归经配伍属方剂学,与目标病无直接关系 |
| 方剂内容放释义 | 释义里讲「本方↔某方方源」 | 方源承接归【方解】【方药】,释义不越位 |
该删的(重复)
| 情形 | 处置 |
|---|---|
| 同一论点在【释义】与【病因】重复(如遗传度双因素) | 留【病因】(归位更准) |
| 同一论点在【释义】与【病机】重复(如 CSTC 环路、先审正气) | 留【病机】(更系统) |
| 同一论点在【释义】与【方解】重复(如方源承接) | 留【方解】 |
| 【论治】与【用法】重叠(治疗线/给药周期) | 两处可并留——一宏观一具体,不算重复 |
保留原则(一句话)
> 病因学对病因学、机制对机制、方源对方源、鉴别对鉴别;同一论点只出现一次。
自检命令
生成后跑一遍,逐个模块核对现代阐述段数与归属:
python -c "
import zipfile,re
p=r'<目标.docx>'
x=zipfile.ZipFile(p).read('word/document.xml').decode('utf-8')
ts=[t.replace('&amp;','&') for t in re.findall(r'<w:t[^>]*>(.*?)</w:t>',x,re.S)]
cur=None;n=0
for t in ts:
if t.startswith('【') and t.endswith('】'): cur=t
if '现代医学' in t and len(t)>60:
n+=1; print(' [%d] %s %d字'%(n,cur,len(t)))
print('现代阐述段数:',n)
"
经验值:单条古籍条目,现代阐述总段数宜在 14~18 段;超过 20 段通常说明有重复、越位,须复核。
二·补二、数值引用核验(★动笔引用任何数字前必做)
铁律:凡现代阐述中出现具体数值(患病率、遗传度、比例、年限、剂量、样本量),必须回到原始文献或权威指南核对上下限,不得凭记忆或近似值下笔。
核验三步:
1. 定位一级出处——meta 分析、原始研究(优先 PubMed/Nature/Lancet 类)或国家级指南;二手科普、公众号转述不得作依据;
2. 逐字比对上下限——尤其注意相邻数字(如 45~65 被误记作 45~46、27~49 被误记作 27~47);
3. 随文标注出处——作者/研究名+年份+刊名,或指南名称与版本。
已发生教训(务必牢记):
- 「儿童强迫症遗传度」被写成 45%~46%,实为 45%~65%(误把 65 记作 46)。正确值:儿童 45%~65%、成人 27%~47%。
- 出处:van Grootheest 等 2005 双生子研究综述(儿童 45%~65%、成人 27%~47%);Cardno 2015 meta 分析(70 余项研究)同值;Strom NI et al. Nature Genetics 2025 原文 "twin-based heritability estimates range between 27% and 47% in adults and between 45% and 65% in children"。
- 注意:「总体遗传度 27%~49%」(引自某教材)与「双卵双生子患病一致率 22%~47%」是另外两个数,不可与分年龄遗传度混用。
- 剂量串案(跨案串用):曾写「王琦教授方中生地黄重用至 90 克」,实为王琦本案干地黄仅 15 克(首诊)→ 30 克(末诊),通篇无 90 克;90 克出自另案(《金匮名医验案精选》癫症案:生地 90g,防己、防风、桂枝、生甘草各 10g)。
- 归属错人:曾写「丁德正经验以干地黄 150g 为妥」,原文系丁德正文中引丁浮艇先生经验(《河南中医》1984,(5):31)。
- 推论:引述数值时,必须连带核对「何人、何案、何量」三者——数字对、人不对,同样是错;跨案串用比数字记错更难察觉,务必回到该案原始处方逐味核对。
自检命令(列出全文所有百分数,逐个回溯出处):
grep -o '[0-9]\+%\?~[0-9]\+%' build_doc.py | sort -u
自检命令(剂量)——列出全文所有剂量数字,连同所在医案/医家一并核对该案原始处方:
grep -o '[0-9]\+\(克\|g\)' build_doc.py | sort -u
grep -n '重用至\|常用至\|重用\|加至' build_doc.py # 重点核查"某医家用至某量"类表述
二·补二·附、经验性表述同需溯源(★同等重要,易被忽略)
铁律:不止数字要溯源——凡「现代用法」「临床变通」「古法简化」「今人多……」「亦有……者」一类表述,凡属非本条目原文、非经典注文而系编者补入的内容,亦必须落到已出版的医案、专著、教材或官方文件,且引其原话、标其出处。
禁止的做法:由编者自己把若干医家做法归纳成一条通例,用「亦有……者,取其简便而效同」这类貌似有据的口吻写出,却不标任何出处——这属于变相的无据表述,危害不亚于数字出错。
适用范围延伸:【按·法规冲突备注】段落同样受此约束——如「据近现代临床体会,加酒与药同煮可减生地黄滋腻碍胃之弊」,此类「据……体会」句亦属无据,须改直引或删去;备注段可径引前文已标出处的原话(「详见上文所引××、××二家」),以避免重复引文。
处置:要么改为直引+出处(「××:『……』(《××》)」),要么删去。宁缺勿造。
已发生教训:《金匮要略·防己地黄汤》条目【用法】曾写「亦有将五药同煎者,服药前兑入白酒适量同沸,取其简便而效同」,通篇无出处。实据三处,应直引:
- 高齐民:「防己地黄汤原为酒浸水煮法,我改用水煮法,温服时加酒 1 杯,疗效不变。」(《金匮名医验案精选》陈明主编·防己地黄汤篇·高齐民「失心风」案)
- 何庆勇(广安门医院):张某,女,80 岁,2015-07-31 初诊案——「改为水煎煮后,在服药前加白酒 1 杯(20~40ml)与药同煮沸。这样更接近仲景本意的煎煮法。」(何庆勇医案八十三《重剂经方愈怪病,彻夜独语不休》)
- 《金匮名医验案精选》防己地黄汤【用法】条:「(现代用法:水煎两次,温服)」
溯源自检命令(列出全文所有疑似变通语,逐句回溯出处):
grep -n '亦\|今人\|现代用法\|临床多用\|一般多\|常以\|可改\|代用' build_doc.py
三、法规冲突备注清单(常见古方药,随条目正后方加注)
| 药 | 冲突点 | 依据 | 合规写法 |
|---|---|---|---|
| 犀角 | 已取消药用标准、禁止制药 | 国发〔1993〕39号;卫生部1993.11.25通知 | 以水牛角代(药典2020一部:15~30g,先煎3h以上;浓缩粉1.5~3g冲服) |
| 丹砂/朱砂 | 「不宜入煎剂」;毒性药品管理 | 《中国药典》2020年版一部;《医疗用毒性药品管理办法》 | 0.1~0.5g,多入丸散服;水飞、忌火煅;专柜加锁;孕妇及肝肾功能不全者禁用 |
| 生半夏 | 属国家规定毒性中药,一般仅供外用 | 《医疗用毒性药品管理办法》 | 内服用炮制品,药典3~9g;十八反:不宜与川乌/草乌/附子同用 |
| 童便 | 药典未收录,无国家药品标准,有生物安全风险 | 《中国药典》2020年版 | 医疗机构不得使用;建议改竹沥、姜汁或温开水兑服 |
| 羚羊角 | 须按国家有关规定使用 | 《中国药典》2020年版一部 | 羚羊角骨为骨角代用品,须先煎 |
| 竹沥 | 药食两用,无冲突 | — | 冲服一次15~30ml |
| 罂粟壳 | 麻醉药品管理 | 《麻醉药品和精神药品管理条例》 | 须凭处方、限医疗机构使用 |
| 马钱子 | 毒性药品,须炮制 | 《医疗用毒性药品管理办法》 | 炮制品0.3~0.6g,不入煎剂 |
> 每遇新古方,先核《中国药典》2020年版一部用法用量,再核毒性/麻醉药品目录,冲突者加备注。
四、生成流程(版式零改动法)
步骤 1:解构样章
用 zipfile 读 word/document.xml,提取:
- 全部 <w:p> 段落 → 文字与 pPr/rPr;
- <w:sectPr> 页面设置;
- 每条引文的卷次篇名。
import zipfile, re
x = zipfile.ZipFile(SRC).read('word/document.xml').decode('utf-8')
ts = re.findall(r'<w:t[^>]*>(.*?)</w:t>', x, re.S)
步骤 2:写 build_doc.py
import zipfile, re, shutil, os
SRC = r'<样章.docx>'
DST = r'<目标(改写稿vN).docx>'
CONTENT = [
(1, "第X节 病名(方名)"), # 1=加粗(模块名),0=正文
(1, "【原文】"),
(0, "...(《书名》卷X·篇名)"),
# ...
]
PPR = ('<w:pPr><w:keepNext w:val="0"/><w:keepLines w:val="0"/><w:widowControl/>'
'<w:suppressLineNumbers w:val="0"/><w:jc w:val="left"/></w:pPr>')
RPR = ('<w:rPr><w:rFonts w:hint="eastAsia" w:ascii="宋体" w:hAnsi="宋体" '
'w:eastAsia="宋体" w:cs="宋体"/><w:color w:val="000000"/>'
'<w:kern w:val="0"/><w:sz w:val="24"/><w:szCs w:val="24"/>'
'<w:lang w:val="en-US" w:eastAsia="zh-CN" w:bidi="ar"/></w:rPr>')
def esc(s):
return s.replace('&', '&amp;').replace('<', '&lt;').replace('>', '&gt;')
def make_para(bold, text):
rpr = RPR.replace('<w:color', '<w:b/><w:bCs/><w:color') if bold else RPR
return f'<w:p>{PPR}<w:r>{rpr}<w:t xml:space="preserve">{esc(text)}</w:t></w:r></w:p>'
shutil.copy(SRC, DST)
zin = zipfile.ZipFile(SRC)
doc = zin.read('word/document.xml').decode('utf-8')
sect = re.search(r'<w:sectPr[^>]*>.*?</w:sectPr>', doc, re.S).group(0)
body = ''.join(make_para(b, t) for b, t in CONTENT)
newdoc = re.sub(r'(<w:body>).*?(</w:body>)',
lambda m: m.group(1) + body + sect + m.group(2),
doc, count=1, flags=re.S)
items = zin.namelist()
with zipfile.ZipFile(DST, 'w', zipfile.ZIP_DEFLATED) as zout:
for n in items:
data = zin.read(n)
if n == 'word/document.xml':
data = newdoc.encode('utf-8')
zout.writestr(n, data)
print('OK ->', DST)
print('paragraphs:', len(CONTENT))
步骤 3:执行并校验
export PATH="/usr/bin:/bin:/c/Windows/System32:$PATH"
python build_doc.py
校验脚本(段落数/加粗模块数/关键词计数):
import zipfile, re
p = r'<目标.docx>'
x = zipfile.ZipFile(p).read('word/document.xml').decode('utf-8')
ts = [t.replace('&amp;', '&') for t in re.findall(r'<w:t[^>]*>(.*?)</w:t>', x, re.S)]
print('总段数', len(ts))
for k in ['【原文】', '【情志症状】', '【释义】', '【病机】', '【辨证】',
'【论治】', '【方药】', '【用法】', '【方解】', '【选注】',
'【方论】', '【医案举隅】']:
print(k, ''.join(ts).count(k))
步骤 4:呈现
用 present_files 呈现。注意:目标文件若正在预览中会被占用(PermissionError),直接改用新版本号文件名即可。
五、版式规格(务必精确)
| 项 | 值 |
|---|---|
| 字体 | 宋体(ascii/hAnsi/eastAsia/cs 全指宋体,w:hint="eastAsia") |
| 字号 | 小四,w:sz w:val="24"(半磅值,即 12pt) |
| 对齐 | w:jc w:val="left" |
| 颜色 | w:color w:val="000000" |
| 字距 | w:kern w:val="0" |
| 段落 | keepNext=0 / keepLines=0 / widowControl / suppressLineNumbers=0 / jc=left |
| 页面 | A4,pgSz w=11906 h=16838 twips |
| 页边距 | 上下 1440/左右 1800 twips |
| 文档网格 | docGrid linePitch="312" |
| 模块名 | 【】括起、加粗(<w:b/><w:bCs/>) |
| 正文 | 不加粗、不缩进 |
六、文献考据要点
- 溯源优先:清代医家常沿袭明人旧说,须回查最早出处。如《针灸逢源》癫狂痴呆条前半实出《景岳全书》卷三十四·杂证谟·癫狂痴呆·论治。
- 卷次篇名要全:《诸病源候论》卷四十五·小儿杂病诸候一·痫候;《本草纲目》草部第十三卷黄连/第十六卷麦门冬/主治第四卷痰饮·惊悸;《医宗金鉴》卷二十六·删补名医方论。
- 方源要追:金花汤=黄连解毒汤主体+制半夏+竹沥姜汁;《医方集解·泻火之剂》《成方便读》卷三可为方论依据。
- 本草依据:《神农本草经》《汤液本草》《本草纲目》《本草从新》《中国药典》2020年版。
- 不可杜撰:原书未载剂量,不补现代用量;注文无出处,不写。
七、医案采集标准
- 优先次序:① 与目标疾病直接对应的完整名医验案(如国医大师/名老中医公开发表于权威媒体、出版社医案库者)→ ② 目标疾病所在病类的验案(如精神疾病伴强迫症状)→ ③ 仅主症相通者。若第一类可寻得,必置于首案。
- 只用近现代(清末以降),溯源到已出版文献或公开发布的医案:期刊、名医工作室官网、公开出版的医案集。二手转载站(论坛、文库、问答站)不得作为出处,须回溯到期刊卷期页或出版社平台。
- 优先选中西医双诊断齐全、有量表、有按语、有随访的完整记录。
- 体例:病案N:病名/患者信息(性别、年龄、职业)/主诉/现病史/查体舌脉/辅助检查/辨证分析/治则/处方(含剂量、剂数、煎服法)/复诊记录/疗效。按:……(出处:……)
- 按语要求:先中医辨证阐发(点出辨证眼目),再以现代语言点明与目标疾病的关联。
- 含毒性药品者,案末加注(如「本方含辰砂,按《中国药典》2020年版一部,宜研末冲服,不宜入煎剂」)。
八、与其它技能的衔接
- 上游:
tch-pdf-deep-reader(PDF 精读)→ 本技能(条目改写) - 平行:
tch-lit-relationship-analysis、tch-lit-review-synthesis、tch-clinical-trial-sample-size - 下游:
tch-manuscript-audit-revise(成稿核对与修订)、tencent-docx(排版美化)