fin-ref-paper · v1.0.0 · 2026-07-12 · sha256 ba74b542b3521789

fin-ref-paper v1.0.0A

Immutable. This exact content is served forever at /api/v1/blob/ba74b542b3521789.

---
name: fin-ref-paper
description: 从LIT_REVIEW.md和IDEA_REPORT.md中提取参考文献,自动生成符合JF/JFE/RFS/GB-T-7714格式的references.bib,并管理引用一致性。
trigger: "参考文献|ref|bib|引用格式|citation|reference|文献引用"
version: 1.0.0
created: 2026-06-13
tags: [reference, bibtex, citation, formatting, literature]
---

# fin-ref-paper

从LIT_REVIEW.md和IDEA_REPORT.md中提取参考文献,自动生成符合JF/JFE/RFS/GB-T-7714格式的references.bib,并管理引用一致性。

## 触发条件

- 关键词: `参考文献` `ref` `bib` `引用格式` `citation` `reference` `文献引用` `BibTeX`
- Skill语法: `Skill: fin-ref-paper`
- 前置条件: 已有研究输出文件 (LIT_REVIEW.md, IDEA_REPORT.md 等)

## 参考文献管理流程

### 第一步:提取参考文献

从现有文档中自动提取参考文献信息:

```python
from scripts.ref_paper import ReferenceExtractor, ExtractedReference

extractor = ReferenceExtractor()

# 从多个来源提取
extracted = extractor.extract_from_multiple(
    sources=[
        "output/fin-literature/LIT_REVIEW.md",
        "output/fin-ideas/IDEA_REPORT.md",
        "output/fin-novelty/NOVELTY_REPORT.md",
    ]
)

print(f"提取到 {len(extracted)} 条参考文献")
for ref in extracted[:3]:
    print(f"  - {ref.author} ({ref.year}). {ref.title}. {ref.journal}.")
```

**提取的信息**:

| 字段 | 说明 | 示例 |
|------|------|------|
| author | 作者 | "Zhang, Y. and Li, X." |
| title | 标题 | "The Effect of Carbon Trading" |
| year | 年份 | 2023 |
| journal | 期刊 | "Journal of Finance" |
| volume | 卷 | "78" |
| issue | 期 | "3" |
| pages | 页码 | "1234-1289" |
| doi | DOI | "10.1111/jofi.12345" |
| url | URL | (optional) |

### 第二步:Enrich元数据

使用CrossRef API自动补全缺失信息:

```python
import requests

def get_crossref_metadata(doi: str) -> dict:
    """通过DOI获取完整的文献元数据"""
    resp = requests.get(
        f"https://api.crossref.org/works/{doi}",
        headers={"User-Agent": "fin-research/1.0 (mailto:research@example.com)"}
    )
    if resp.status_code == 200:
        return resp.json()["message"]
    return {}

def enrich_reference(ref: ExtractedReference) -> ExtractedReference:
    """补全缺失字段"""
    if ref.doi:
        meta = get_crossref_metadata(ref.doi)
        ref.volume = meta.get("volume", ref.volume)
        ref.issue = meta.get("issue", ref.issue)
        ref.pages = meta.get("page", ref.pages)
        ref.publisher = meta.get("publisher", "")
        # 规范化作者列表
        authors_raw = meta.get("author", [])
        ref.author = "; ".join([
            f"{a['family']}, {a['given'][0]}." 
            for a in authors_raw
        ])
    return ref
```

**API调用示例**:

```
GET https://api.crossref.org/works/10.1111/jofi.12345

Response:
{
  "message": {
    "title": ["The Effect of Carbon Trading on Innovation"],
    "author": [
      {"family": "Zhang", "given": "Yi"},
      {"family": "Li", "given": "Xiao"}
    ],
    "container-title": ["Journal of Finance"],
    "volume": "78",
    "issue": "3",
    "page": "1234-1289",
    "DOI": "10.1111/jofi.12345",
    "published": {"date-parts": [[2023, 6]]}
  }
}
```

### 第三步:转换为BibTeX格式

```python
def to_bibtex(ref: ExtractedReference, style: str = "jf") -> str:
    """将参考文献转换为BibTeX格式"""
    
    # 生成唯一引用键
    first_author = ref.author.split(";")[0].split(",")[0].strip()
    key = f"{first_author}{ref.year}"
    
    # 期刊缩写映射 (常见金融期刊)
    journal_abbr = {
        "Journal of Finance": "J. Finance",
        "Journal of Financial Economics": "J. Financ. Econ.",
        "Review of Financial Studies": "Rev. Financ. Stud.",
        "Quarterly Journal of Economics": "Q. J. Econ.",
        "American Economic Review": "Am. Econ. Rev.",
        "经济研究": "J. Econ. (China)",
        "金融研究": "J. Finance (China)",
    }
    
    journal = journal_abbr.get(ref.journal, ref.journal)
    
    bib_entry = f"""@article{{{key},
  author = {{{'; '.join([a.strip() for a in ref.author.split(';')])}}},
  title = {{{ref.title}}},
  journal = {{{journal}}},
  year = {{{ref.year}}},
  volume = {{{ref.volume or ''}}},
  number = {{{ref.issue or ''}}},
  pages = {{{ref.pages or ''}}},
  doi = {{{ref.doi or ''}}},
}}"""
    
    return bib_entry
```

**生成的BibTeX示例**:

```bibtex
@article{Zhang2023,
  author = {Zhang, Y. and Li, X.},
  title = {The Effect of Carbon Trading on Innovation: Evidence from China},
  journal = {J. Finance},
  year = {2023},
  volume = {78},
  number = {3},
  pages = {1234--1289},
  doi = {10.1111/jofi.12345},
}

@article{Li2022,
  author = {Li, H. and Wang, J.},
  title = {Digital Finance and Corporate Innovation: A Panel Study},
  journal = {J. Financ. Econ.},
  year = {2022},
  volume = {145},
  number = {2},
  pages = {567--589},
  doi = {10.1016/j.jfineco.2022.01.001},
}
```

### 第四步:按目标期刊格式化

```python
from scripts.ref_paper import ReferenceFormatter

formatter = ReferenceFormatter()

# JF/JFE/RFS格式 (AEA/biblio style)
jf_refs = formatter.format(refs, style="jf")
# 输出: Author (Year). Title. Journal Volume: Pages.

# GB/T 7714-2015格式 (中文顶刊)
cn_refs = formatter.format(refs, style="gb7714")
# 输出: [序号] 作者. 题目[文献类型]. 期刊名, 年, 卷(期): 页.

# 经济研究格式
jjyj_refs = formatter.format(refs, style="经济研究")
```

**格式对比**:

| 风格 | 格式示例 |
|------|----------|
| JF/JFE | Zhang, Y. and Li, X. (2023). The effect of carbon trading. *Journal of Finance*, 78(3): 1234–1289. |
| GB/T 7714 | 张三, 李四. 碳排放权交易对企业创新的影响[J]. 经济研究, 2023, 58(3): 1234-1289. |
| AEA | Zhang, Y., and X. Li. 2023. "The Effect of Carbon Trading on Innovation." *Journal of Finance* 78(3): 1234–1289. |

### 第五步:一致性审计

```python
from scripts.ref_paper import ReferenceAuditor

auditor = ReferenceAuditor()

# 检查项
issues = auditor.audit(
    bib_file="references.bib",
    tex_file="paper.tex"
)

# 问题类型
# - UNUSED_REF: .bib中有但.tex中未引用
# - MISSING_REF: .tex中引用但.bib中缺失
# - DUPLICATE: 重复条目
# - FORMAT_ERROR: 格式错误
# - CASE_MISMATCH: 作者姓名大小写不一致

for issue in issues:
    print(f"[{issue.severity}] {issue.type}: {issue.message}")
    print(f"  Location: {issue.location}")
```

**审计检查项**:

```
检查项:
□ 所有 \cite{} 键存在于 references.bib
□ 所有 references.bib 条目在 .tex 中被引用
□ 无重复条目
□ 作者姓名一致 (检查大小写)
□ DOI格式正确
□ 年份格式一致
□ 期刊名称标准化
□ 页码格式正确 (无"1234-89"应为"1234-1289")
```

## 期刊格式规范

### Journal of Finance (JF)

```
Author, A. B. and Author, C. D. (Year). Title of the article. Journal Name Volume(Number): Pages.
```

### Journal of Financial Economics (JFE)

```
Author, A. B. and C. D. Author (Year). Title. Journal Name Volume: Pages.
```

### Review of Financial Studies (RFS)

```
Author, A. B., and C. D. Author (Year). "Title of the Article." Journal Name Volume(Number): Pages.
```

### 经济研究 (GB/T 7714-2015)

```
[1] 作者1, 作者2. 文章标题[J]. 期刊名称, 年, 卷(期): 页码.
```

### 金融研究

```
[1] 作者1, 作者2. 文章标题[J]. 期刊名称, 年, 卷(期): 页码.
```

## 输出文件

### references.bib

主BibTeX文件,包含所有参考文献:

```bibtex
% 生成时间: 2026-06-13
% 目标期刊: 经济研究
% 参考文献数量: 45

@article{Zhang2023,
  author = {Zhang, Y. and Li, X.},
  title = {碳排放权交易对企业绿色创新的影响},
  journal = {经济研究},
  year = {2023},
  volume = {58},
  number = {3},
  pages = {1234--1289},
  doi = {10.1111/j.1245-2823.2023.01234},
}
```

### ref_index.md

按主题分类的文献索引:

```markdown
# 参考文献索引

## 理论基础
- Zhang2023: 碳排放权交易理论
- Li2022: 绿色创新理论框架

## 实证方法
- Callaway2021: CS-DID方法
- Sun2021: 事件研究估计

## 核心实证
- Wang2023: 碳交易对企业创新的正向影响
- Chen2022: 政策效果异质性分析
```

### ref_audit.md

一致性审计报告:

```markdown
# 参考文献一致性审计报告

## 审计时间
2026-06-13

## 问题汇总
| 问题类型 | 数量 | 严重程度 |
|----------|------|----------|
| UNUSED_REF | 3 | WARNING |
| MISSING_REF | 1 | ERROR |
| DUPLICATE | 0 | - |
| FORMAT_ERROR | 2 | WARNING |

## 详细问题

### ERROR: 引用缺失
- \cite{Huang2022} 在正文中引用但bib中不存在

### WARNING: 未使用文献
- Borusyak2024 在bib中但未在正文中引用
```

## 交互流程

```
[CHECKPOINT] 参考文献管理完成

审计结果:
✅ 所有引用键匹配
⚠️ 3条文献未使用 (可保留供附录)
✅ 格式正确

请选择:
1. 生成/更新 references.bib
2. 查看参考文献索引
3. 查看审计报告
4. 添加新文献
```

## 依赖项

- `scripts/ref_paper.py` — 参考文献管理核心
- `scripts/journal_template.py` — 期刊格式验证
- `scripts/research_framework/modern_did.py` — DID相关文献

## 约束

1. **DOI优先** — 有DOI时自动补全所有元数据
2. **格式标准化** — 按目标期刊格式输出
3. **一致性必查** — 每条引用必须有对应bib条目
4. **作者姓名规范** — 使用 "Last, First" 格式
5. **期刊缩写** — 英文期刊使用标准缩写