RTF #PCDATA против текста документа

Я пытаюсь понять документ спецификации RTF 1.9.1, но #PCDATA (текст без контрольных слов) сбивает меня с толку. Ниже приведен пример кода, демонстрирующий то, чего я не понимаю. Обратите внимание, что текст ниже отформатирован неправильно. Я отформатировал его, чтобы он выглядел лучше.

{
    \fonttbl
    {
        \f0
        \fbidi 
        \froman
        \fcharset0
        \fprq2
        {
            \*
            \panose 
            02020603050405020304
        }
        Times New Roman;
    }
}

В спецификации сказано:

Если символом является что-то отличное от открывающей скобки ({), закрывающей скобки (}), обратной косой черты (\) или CRLF (возврат каретки / перевод строки), читатель предполагает, что символ представляет собой простой текст, и записывает символ в текущее место назначения, используя текущие свойства форматирования.

Если бы я следовал спецификации выше, я бы написал Times New Roman к документу. Как парсер должен знать, столкнулся ли он с #PCDATA или текстом документа?

1 ответ

Решение

Ответ на стр. 9 спецификации RTF 1.9.1.

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

В примере, который я привел в вопросе, fonttbl - это контрольное слово назначения, означающее, что текст не появляется в документе. На странице 11 спецификации приведен список примеров управляющих слов, которые меняют место назначения:

Примерами управляющих слов, которые меняют место назначения, являются \ footnote, \ header, \ footer, \ pict, \ info, \ fonttbl, \ stylesheet и \ colortbl.

Их еще много, но это основные.

Другие вопросы по тегам