Работа с библиографией
Работа с библиографией
Функция цитирования и библиографии в Word хранит исходные данные отдельно от полей, которые их отображают. Aspose.Words FOSS для .NET модели, получающие данные через Aspose.Words.Bibliography пространство имён – Source, Contributor, Person, и Corporate – доступно из Document.Bibliography. Эта страница охватывает создание и чтение этих данных; the CITATION and BIBLIOGRAPHY поля, которые их отображают, рассматриваются в the Руководство по ссылкам и источникам.
Модель данных библиографии
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, общая база для двух видов участников, описанных ниже.
Физические лица vs. корпоративные участники
Contributor реализуется двумя классами: Person (First, Middle, Last) для отдельного физического лица и Corporate (Name) для организации. PersonCollection также наследуется от Contributor и реализует IEnumerable<Person> (Add, Remove, RemoveAt, Clear, Contains, Count), поэтому роли участника, имеющей несколько индивидуальных авторов, может быть присвоен PersonCollection так же легко, как роль с одним автором получает Person — оба, вместе с Corporate, удовлетворяют одно и то же свойство роли типа Contributor.
Отображение содержимого библиографии
Source записи только предоставляют данные – они не формируют текст цитаты или библиографии сами. Это происходит через FieldCitation and FieldBibliography, которые ищут Source по совпадению SourceTag against Source.Tag. См. Руководство по ссылкам и источникам для этих классов полей.
Советы и лучшие практики
- Присвойте каждому
SourceуникальныйTag— это единственное значение, котороеFieldCitation.SourceTagиFieldBibliography.SourceTagиспользуют для поиска нужной записи. - Заполняйте только те поля
Source, которые имеют отношение к еёSourceType— например, источникBookне используетBroadcasterилиCaseNumber, но класс не принуждает вас к этому. - Используйте
Personдля одного именованного участника,PersonCollectionдля нескольких лиц в одной роли иCorporate, когда участник является организацией, а не человеком — назначьте подходящее значение в соответствующее свойство ролиContributorCollection. Bibliography.BibliographyStyleфиксирует, какое название стиля цитирования применять; держите его согласованным с тем, как ваши поляFieldCitationожидают форматировать вывод.- Добавьте каждый
SourceвDocument.Bibliography.Sourcesперед обновлением полейCITATIONилиBIBLIOGRAPHY, которые ссылаются на него — отсутствие источника означает, что у поля-ссылки нет чего-то, к чему можно привязаться.
Общие проблемы
| Проблема | Причина | Исправление |
|---|---|---|
CITATION или BIBLIOGRAPHY поле не разрешается | Значение Source.Tag не точно совпадает с SourceTag поля | Убедитесь, что теги совпадают, и что Source был добавлен в Document.Bibliography.Sources |
| Неправильный тип участника назначен роли | Был назначен Person, где существует несколько участников, или наоборот | Используйте PersonCollection для нескольких лиц в одной роли, Person для одного лица, Corporate для организации |
| Поля источника выглядят несогласованными с их типом | Поля для другого SourceType были заполнены (например, веб-поля в источнике Book) | Заполните только поля, относящиеся к выбранному SourceType |
FAQ
Как добавить источник книги с одним автором?
Создайте Source с помощью SourceType.Book, задайте BookTitle, Publisher, Year и связанные поля, затем назначьте Person для Source.Contributors.Author.
Как добавить источник с несколькими авторами?
Назначьте PersonCollection (заполненный экземплярами Person через Add()) соответствующему свойству роли 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 | Свойства участника по ролям (Author, Editor, Translator и др.) на Source |
Contributor | Общая база для Person, PersonCollection и Corporate |
Person / PersonCollection | Один отдельный участник-вкладчик, либо их совокупность |
Corporate | Организация, действующая в качестве участника-вкладчика |