Сноски и примечания

Сноски и концевые сноски

Aspose.Words FOSS for .NET представляет сноски и концевые сноски с помощью единственного класса узла Footnote, отличающегося своим свойством FootnoteType, а также отдельными классами параметров нумерации и разделителями в пространстве имён Aspose.Words.Notes.


Чтение содержимого сноски и концевой сноски

Footnote — составной узел истории, похожий на Body или ячейку таблицы, содержит Paragraphs и Tables — который хранит текст одной сноски или концевой сноски. Его свойство FootnoteType (значение перечисления FootnoteType, Footnote или Endnote) определяет, какого типа он является. ReferenceMark возвращает настроенный символ ссылки, ActualReferenceMark возвращает фактически отрисованный символ (с учётом автоматической нумерации), а IsAuto сообщает, является ли символ авто-нумерованным. ParentParagraph определяет абзац в основном тексте документа, где встречается ссылка на сноску или концевую сноску. GetText() извлекает обычный текст сноски, аналогично методу, доступному у других узлов уровня истории.


Настройка нумерации и положения

Поведение нумерации и размещения управляется отдельно для сносок и концевых сносок через FootnoteOptions и EndnoteOptions, оба реализуют общий интерфейс IFootnoteOptions. FootnoteOptions.Position (значение FootnotePosition — BottomOfPage или BeneathText) и EndnoteOptions.Position (значение EndnotePosition — EndOfSection или EndOfDocument) определяют, где размещается каждый тип. Оба предоставляют NumberStyle, StartNumber и RestartRule (значение FootnoteNumberingRule — Continuous, RestartSection, RestartPage или Default) для управления последовательностью нумерации. FootnoteOptions дополнительно предоставляет Columns для размещения сносок внизу страницы в нескольких колонках.


Разделители сносок и концевых сносок

FootnoteSeparator — это объект истории, содержащий контент, который Word вставляет между основным телом документа и его сносками/концевыми сносками— по умолчанию это короткая горизонтальная линия, но он может содержать любой абзацный контент. Его SeparatorType свойство (значение типа FootnoteSeparatorType) различает шесть ролей разделителей, которые определяет Word: FootnoteSeparator, FootnoteContinuationSeparator, FootnoteContinuationNotice и эквиваленты для концевых сносок. FootnoteSeparatorCollection обеспечивает типизированный доступ ко всем узлам-разделителям в документе через GetByFootnoteSeparatorType(FootnoteSeparatorType).


Советы и лучшие практики

  • Проверьте Footnote.FootnoteType перед тем как предполагать, что узел Footnote является сноской— один и тот же класс представляет как сноски, так и концевые сноски.
  • Используйте ActualReferenceMark вместо ReferenceMark, когда вам нужен знак в том виде, в каком он будет отображён, поскольку автоматически нумерованные знаки отличаются от настроенного символа знака.
  • Настройте FootnoteOptions и EndnoteOptions перед добавлением содержимого сноски/концевой сноски, чтобы правила нумерации применялись последовательно с первой сноски.
  • Содержание FootnoteSeparator редко настраивается— большинство документов используют разделитель по умолчанию в Word— но оно полностью доступно, если документ требует пользовательского уведомления о продолжении.

Распространённые проблемы

ПроблемаПричинаИсправление
Сноска и концевой сноска перепутаны в логике обработкиОбе используют один и тот же класс FootnoteВетвление по Footnote.FootnoteType
Текст маркера ссылки не совпадает с отрендеренным выводомИспользовано ReferenceMark вместо ActualReferenceMarkЧитать ActualReferenceMark для метки as-rendered
Нумерация неожиданно начинается заново на каждой странице/разделеRestartRule установлен в RestartPage или RestartSectionУстановите RestartRule в Continuous для нумерации по всему документу
Колонки сносков игнорируются в нижней части страницыFootnoteOptions.Columns не установленУстановите Columns явно на FootnoteOptions

FAQ

Как отличить сноску от концевой сноски в коде?

Проверьте свойство FootnoteType объекта Footnote — оно возвращает FootnoteType.Footnote или FootnoteType.Endnote.

Могут ли сноски и концевые сноски иметь разные правила нумерации?

Да — FootnoteOptions и EndnoteOptions настраиваются независимо, каждый со своим Position, NumberStyle, StartNumber и RestartRule.

Для чего используется FootnoteSeparator?

Это представляет собой содержимое, которое Word вставляет для визуального отделения основной части документа от его сносок или концевых сносок, а также уведомление, отображаемое, когда сноска продолжается на следующей странице.

Поддерживает ли Footnote таблицы внутри сноски?

Да — Footnote предоставляет свойство Tables наряду с Paragraphs, поскольку он является составным узлом истории, как и основное тело документа.


API Reference Сводка

Класс / МетодОписание:
FootnoteКонтейнерный узел для содержимого одной сноски или концевой сноски
FootnoteTypeПеречисление: Footnote, Endnote
FootnoteOptionsНастройки нумерации и расположения сносок для документа/раздела
EndnoteOptionsНастройки нумерации и расположения концевых сносок для документа/раздела
FootnotePosition / EndnotePositionПеречисления для размещения (BottomOfPage/BeneathText, EndOfSection/EndOfDocument)
FootnoteNumberingRuleEnum, определяющий, когда нумерация перезапускается
FootnoteSeparatorStory node для содержимого разделителя сносок/конечных сносок
FootnoteSeparatorCollectionТипизированный доступ ко всем узлам FootnoteSeparator
FootnoteSeparatorTypeEnum, определяющий, какую из шести ролей разделителя представляет узел

См. также:

 Русский