使用参考文献

使用参考文献

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作为贡献者的组织

另请参阅

 中文