Выход из пользовательских символов Freemarker (экранирование специальных символов LaTeX) - PullRequest
0 голосов
/ 25 апреля 2019

Каков наилучший способ экранирования специальных символов латекса при использовании freemarker для создания файла .tex?

В настоящее время я передаю Java-функцию для экранирования символов, и я должен обернуть каждую переменную в этот вызов функции. Я знаю, что у freemarker есть встроенное экранирование для некоторых форматов, но, к сожалению, латекс не поддерживается.

Вот как я это делаю сейчас:

${escapeFormatter.escapeSymbols(some.value)!}

Мне не нравится, что мне приходится вручную вызывать эту функцию для каждого значения. Как я могу сделать его более общим?

1 Ответ

1 голос
/ 27 апреля 2019

Вы можете зарегистрировать свой собственный «формат вывода» через freemarker.template.Configuration#setRegisteredCustomOutputFormats. Затем они могут использоваться с функцией автоматического экранирования, как и стандартные (см .: https://freemarker.apache.org/docs/dgui_misc_autoescaping.html). См. Также OutputFormat и MarkupOutputFormat документация API и реализации в исходном коде в качестве примера.

...