Сноски и примечания
Сноски и концевые сноски
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) |
FootnoteNumberingRule | Enum, определяющий, когда нумерация перезапускается |
FootnoteSeparator | Story node для содержимого разделителя сносок/конечных сносок |
FootnoteSeparatorCollection | Типизированный доступ ко всем узлам FootnoteSeparator |
FootnoteSeparatorType | Enum, определяющий, какую из шести ролей разделителя представляет узел |