
Я использую пакет listings с пользовательским определением языка. В моем языке у меня есть типы в форме:
Foo@Bar>>Baz
Bar и Baz являются ключевыми словами в языке и поэтому должны быть выделены. Foo является произвольным идентификатором и не требует специальной обработки для выделения.
Если я разделяю указанные выше токены пробелами, все в порядке. Но если я не разделяю их пробелами (как в примере выше), я получаю только соответствующую подсветку для Baz, но не для Bar.
Я посмотрел документацию (http://texdoc.net/texmf-dist/doc/latex/listings/listings.pdf), но не нашел способа указать, что знак @ не должен быть частью идентификатора. Я попробовал включить @ как ключевое слово:
keywords=[5]{@},
keywordstyle=[5]\bfseries,
но это, похоже, не помогло.
Какие-либо предложения?
решение1
Неважно — я нашел ответ! Хитрость в том, чтобы обозначить @ как «другой» символ; по умолчанию это «буква» и поэтому включено в идентификаторы. Этого достаточно:
alsoother={@},