hermes 初始配置

This commit is contained in:
administrator
2026-05-03 19:13:24 +00:00
commit cfbdc7baef
428 changed files with 173058 additions and 0 deletions
@@ -0,0 +1,144 @@
---
name: bilingual_official_document_format
description: Skill for creating bilingual Chinese-English official documents with specific formatting requirements (fonts, sizes, margins, line spacing, heading styles) using python-docx.
version: 1.0.0
author: Hermes Agent
license: MIT
dependencies: [python-docx]
metadata:
hermes:
tags: [document, formatting, bilingual, official, word, docx]
---
# 双语公文格式要求 Skill
本技能提供根据特定公文格式要求创建中英双语 Word 文档的步骤和示例代码。适用于需要严格遵循字体、字号、页边距、行距及标题层级的正式文档(如通知、制度等)。
## 格式要求摘要
| 项目 | 要求 |
|------|------|
| **中文字体** | 标题:方正小标宋简体;一级标题:黑体;二级标题:楷体;三级及以下标题:仿宋;正文:仿宋 |
| **英文字体** | 全文统一使用 Times New Roman |
| **字号** | 标题:二号(22 pt);一级及以下标题、正文:三号(16 pt) |
| **加粗** | 所有标题加粗;正文不加粗 |
| **页边距** | 上 3.7cm,下 3.5cm,左 2.7cm,右 2.7cm |
| **行距** | 固定 28 磅(约 9.93mm |
| **标题层级** | 中文使用“一、”“(一)”“1.","(1)”;英文采用相应的大写罗马数字或阿拉伯数字(I, II, …;(I), (II), …;1, 2, …;(1), (2), …) |
| **语言** | 中英双语对照,中文段落上、英文段落下 |
| **其他** | 无段落首行缩进;段落间距为0(仅行距) |
## 使用步骤(Python + python-docx
1. **安装依赖**
```bash
pip install python-docx googletrans==4.0.0-rc1 # 若需自动翻译
```
2. **准备中文内容**
将文档内容按层级组织为列表,例如:
```python
paras = [
"凭证附件管理制度(示例)",
"一、目的",
"为规范会计凭证附件的收集、整理、保管和使用,确保财务信息的真实、完整、可追溯,提高会计工作效率,特制定本制度。",
"二、适用范围",
"... (其余章节) ..."
]
```
3. **(可选)自动翻译为英文**
使用 `googletrans` 将每段中文翻译为英文,获得 `translations` 列表。
4. **创建文档并设置页面布局**
```python
from docx import Document
from docx.shared import Pt, Cm
from docx.enum.text import WD_ALIGN_PARAGRAPH, WD_LINE_SPACING
from docx.oxml.ns import qn
import re
doc = Document()
section = doc.sections[0]
section.top_margin = Cm(3.7)
section.bottom_margin = Cm(3.5)
section.left_margin = Cm(2.7)
section.right_margin = Cm(2.7)
def add_run_with_font(run, font_name=None, size_pt=None, bold=False, is_ascii=False):
if font_name:
run.font.name = font_name
r = run._element
r.rPr.set(qn('w:eastAsia'), font_name)
if size_pt:
run.font.size = Pt(size_pt)
run.font.bold = bold
if is_ascii:
run.font.name = 'Times New Roman'
r = run._element
r.rPr.set(qn('w:ascii'), 'Times New Roman')
r.rPr.set(qn('w:hAnsi'), 'Times New Roman')
def add_paragraph(text, font_name=None, size_pt=None, bold=False, alignment=None, is_ascii=False):
p = doc.add_paragraph()
if alignment:
p.alignment = alignment
run = p.add_run(text)
add_run_with_font(run, font_name=font_name, size_pt=size_pt, bold=bold, is_ascii=is_ascii)
p.paragraph_format.line_spacing_rule = WD_LINE_SPACING.EXACTLY
p.paragraph_format.line_spacing = Pt(28)
return p
```
5. **添加标题和正文(中英双语)**
```python
# 标题(第一段)
title_cn = paras[0]
title_en = translations[0] # 若无翻译则可手动填写
add_paragraph(title_cn, font_name='方正小标宋简体', size_pt=22, bold=True, alignment=WD_ALIGN_PARAGRAPH.CENTER)
add_paragraph(title_en, font_name='Times New Roman', size_pt=22, bold=True, alignment=WD_ALIGN_PARAGRAPH.CENTER, is_ascii=True)
doc.add_paragraph() # 空行
# 处理其余段落
for i in range(1, len(paras)):
cn = paras[i]
en = translations[i]
# 判断是否为一级标题(如“一、”“二、”等)
if re.match(r'^[一二三四五六七八九十]、', cn):
add_paragraph(cn, font_name='黑体', size_pt=16, bold=True)
add_paragraph(en, font_name='Times New Roman', size_pt=16, bold=True, is_ascii=True)
else:
# 正文或其他层级(这里简化处理,均视为正文)
add_paragraph(cn, font_name='仿宋', size_pt=16, bold=False)
add_paragraph(en, font_name='Times New Roman', size_pt=16, bold=False, is_ascii=True)
```
6. **保存文档**
```python
out_path = '/tmp/正式公文_双语.docx'
doc.save(out_path)
print(f'Document saved to {out_path}')
```
## 注意事项
- 若中文内容已包含二级、三级标题(如“(一)”“1.”,“(1)”),可在判断时加入相应正则,并对应设置字体(**楷体**用于二级,**仿宋**用于三级及四级)。
- 英文标题的编号可参考中文层级:
- 一级: I, II, III…
- 二级: (I), (II), (III)…
- 三级: 1, 2, 3…
- 四级: (1), (2), (3)…
- 如需更精准的翻译,建议使用专业翻译工具或人工校对。
- 本技能侧重于格式化;实际业务内容请根据具体公文填写。
## 示例输出
生成的 Word 文档将满足:
- 中英双语对照
- 标题使用指定中文字体及 Times New Roman
- 字号、加粗、页边距、行距均符合要求
- 便于直接打印或作为正式公文使用。
---
> **提示**:若需要将此技能用于其他文档类型(如报告、通知),仅需替换 `paras` 列表内容,其余格式代码保持不变。