使用参考文献
使用参考文献
Word 的引用和参考文献功能将其源数据与渲染这些数据的字段分开存储。 Aspose.Words FOSS for .NET 通过该方式获取数据的模型 Aspose.Words.Bibliography 命名空间 – Source, Contributor, Person,以及 Corporate – 可从 Document.Bibliography。 本页涵盖该数据的构建和读取; CITATION and BIBLIOGRAPHY 渲染它的字段在 链接和参考指南.
参考文献数据模型
Document.Bibliography 是一个 Bibliography 实例,具有 BibliographyStyle——引用样式名称(例如 APA 或 MLA),在更新 BIBLIOGRAPHY 字段时应使用——以及 Sources,一个 IList<Source>,保存文档中可用的所有源记录。
源记录
Source 通过 Source(tag, sourceType) 构建,其中 Tag 是 FieldCitation.SourceTag 和 FieldBibliography.SourceTag 匹配的短标识符,SourceType 是一个枚举,用于标识来源的类型——取值包括 Book、BookSection、JournalArticle、ArticleInAPeriodical、ConferenceProceedings、Report、Patent、Case、InternetSite、DocumentFromInternetSite、Interview、Film、SoundRecording、Performance、Art、Electronic 和 Misc。Source.Type 单独以纯字符串保存来源类型。除 Title 和 ShortTitle 外,Source 根据所选的 SourceType 提供数十个类别特定字段——图书字段(BookTitle、Edition、NumberVolumes、Volume、Pages、ChapterNumber),期刊字段(JournalName、PeriodicalTitle、PublicationTitle、Issue),网络字段(InternetSiteTitle、Url、DayAccessed、MonthAccessed、YearAccessed),法律字段(CaseNumber、AbbreviatedCaseNumber、Court、Reporter),录音和广播字段(AlbumTitle、Broadcaster、BroadcastTitle、RecordingNumber、Medium、ProductionCompany、Distributor、Station、Theater),PatentNumber、StandardNumber,论文字段(ThesisType、Institution、Department),以及通用字段(Publisher、City、StateOrProvince、CountryOrRegion、Year、Month、Day、Comments、Guid、Doi、Version、RefOrder、Lcid)。
Contributors
Source.Contributors 是一个 ContributorCollection,每个贡献者角色对应一个属性——Author、Editor、Translator、Compiler、Composer、Conductor、Counsel、Director、Interviewee、Interviewer、Inventor、Performer、Producer、Writer、Artist 和 BookAuthor——每个属性的类型为 Contributor,这是下面描述的两种贡献者的共同基类。
个人与企业贡献者
Contributor 通过两个类实现:针对单个个人的 Person(First、Middle、Last),以及针对组织的 Corporate(Name)。PersonCollection 也继承自 Contributor 并实现 IEnumerable<Person>(Add、Remove、RemoveAt、Clear、Contains、Count),因此拥有多个个人作者的贡献者角色可以像单一作者的角色被分配 Person 那样,同样被分配 PersonCollection——这两者连同 Corporate 一起,满足相同的 Contributor 类型的角色属性。
渲染参考文献内容
Source 记录只提供数据 – 它们本身不渲染引用或参考文献文本。这是通过 FieldCitation and FieldBibliography,它查找一个 Source 通过匹配 SourceTag against Source.Tag。请参阅 链接和参考指南 关于这些字段类。
提示与最佳实践
- 为每个
Source分配唯一的Tag——这是FieldCitation.SourceTag和FieldBibliography.SourceTag用来查找正确记录的唯一值。 - 仅填充与其
SourceType相关的Source字段——例如,Book源并不需要Broadcaster或CaseNumber,但该类不会为你强制执行此规则。 - 使用
Person表示单个具名贡献者,使用PersonCollection表示同一角色的多位个人,使用Corporate表示贡献者是组织而非个人——将最合适的选项分配给相应的ContributorCollection角色属性。 Bibliography.BibliographyStyle记录要使用的引用样式名称;请确保其与FieldCitation字段期望的输出格式保持一致。- 在更新
CITATION或BIBLIOGRAPHY字段之前,将每个Source添加到Document.Bibliography.Sources中——缺失的来源会导致引用字段无可解析的对象。
常见问题
| 问题 | 原因 | 修复 |
|---|---|---|
CITATION 或 BIBLIOGRAPHY 字段未解析 | Source.Tag 与字段的 SourceTag 不完全匹配 | 确认标签匹配,并且 Source 已添加到 Document.Bibliography.Sources |
| 错误的贡献者类型分配给角色 | 在存在多个贡献者的情况下分配了 Person,或相反 | 对单一角色中的多位个人使用 PersonCollection,对单个个人使用 Person,对组织使用 Corporate |
| 源字段与其类型不一致 | 为不同的 SourceType 填充了字段(例如在 Book 源上填充了网页字段) | 仅填充与所选 SourceType 相关的字段 |
FAQ
如何添加单作者的图书来源?
使用 SourceType.Book 创建一个 Source,设置 BookTitle、Publisher、Year 以及相关字段,然后将 Person 分配给 Source.Contributors.Author。
如何添加多作者的来源?
将一个 PersonCollection(通过 Add() 用 Person 实例填充)分配给相关的 ContributorCollection 角色属性,例如 Author。
我该如何引用组织而不是个人?
将一个 Corporate 实例(使用组织的 Name 构建)分配给 ContributorCollection 角色属性,而不是 Person 或 PersonCollection。
在渲染后的文档中,Source 记录实际出现在哪里?
它们不会单独渲染—— FieldCitation and FieldBibliography 字段渲染由其构建的内容,匹配方式为 SourceTag. 请参见 链接和参考指南.
API Reference 摘要
| 类 / 枚举 | 描述 |
|---|---|
Bibliography | 书目数据根目录,通过 Document.Bibliography;BibliographyStyle,Sources |
Source | 单个引用来源;数十个特定类别字段以及 Contributors |
SourceType | 来源类型枚举:Book、JournalArticle、InternetSite、Patent、Case,以及更多 |
ContributorCollection | 在 Source 上的每个角色贡献者属性(Author、Editor、Translator,以及其他) |
Contributor | 用于 Person、PersonCollection 和 Corporate 的通用基础 |
Person / PersonCollection | 单个个人贡献者,或其集合 |
Corporate | 作为贡献者的组织 |