Если я использую встроенную версию lstlisting как показано:
\lstinline{!$omp parallel for}
подсветка синтаксиса в vim идет не так, и оставшаяся часть файла latex окрашена в красный цвет, как будто это вся часть листинга кода. Проблема заключается в долларе $
. Как я могу этого избежать?
У меня нет этой проблемы. Я использую Vim 7.3.46 с filetype = tex. (По умолчанию в моих файлах .tex по умолчанию используется "обычный текст"; вы можете проверить тип файла с помощью: set ft?)
Это на самом деле не ошибка - это дизайн. Чтобы правильно выделить это, Vim должен был бы проанализировать и интерпретировать весь документ TeX вплоть до точки, где этот код встречается, поскольку TeX является контекстно-зависимым языком. Это слишком сложно и слишком много времени для плагина подсветки синтаксиса.
Единственным приемлемым решением было бы переписать подсветку синтаксиса с нуля, используя полную реализацию TeX, которая выдает метаинформацию для каждого токена в исходном коде. Это огромный проект . Насколько я знаю, ни одна из доступных в настоящее время реализаций TeX не дает такой информации, а это значит, что действительно придется написать это самому.
Первоначальная проблема казалась мне тем, что остальная часть tex-файла показана с неправильной подсветкой синтаксиса. Поэтому, возможно, самым простым и практичным решением может быть использование
%stopzone
после lstlisting-Region.