FlySpell в Org-Mode распознает синтаксис латекса, например auctex

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

Изменить: простой пример, взятый из верхней части файла и в тексте. По сути, латексный синтаксис, такой как ref или label внутри {}, не будет проверяться орфографией (это было исправлено с помощью (setq ispell-parser tex). Затем также настроена функция, которая определяет метки с # + в качестве первого текста на строка не будет проверяться. Я бы хотел, чтобы подпись была проверена, но не # + LABEL: или # + TYP_TODO: (не показано. Также есть способ добавить ключевые слова TODO, чтобы их не проверяли. Я могу придумать способ сделать это) при запуске добавьте их в LOCALWORDS: ispell помещает в конец файла, если его еще нет, но есть ли более простой или лучший способ сделать это.

#+TAGS: NOTE REPORT export noexport MEETING
#+TYP_TODO: TODO Weekly WAITING NEXT | Meeting DONE
#+STARTUP: hidestars content hideblocks

The exponential running mean is shown for various alpha values in Figure \ref{fig:saturation_varying_alphaval_00f6set2}.  
     #+CAPTION:    Plot of varying alpha values for the exponential running mean ($EM$) with $S_{min} = 0.0008 \text{ and } P_m = 0.20$
     #+LABEL:      fig:saturation_varying_alphaval_00f6set2
     #+ATTR_LaTeX: width=0.4\textwidth placement=[h!tb]

person J Spen    schedule 25.07.2012    source источник
comment
Не могли бы вы добавить пример того, как выглядит латексный код, о котором идет речь, в вашем файле организационного режима?   -  person legoscia    schedule 25.07.2012


Ответы (2)


flyspell внутренне использует ispell-mode. Чтобы изменить способ ispell анализа файлов, установите для переменной ispell-parser значение 'tex.

(add-hook 'org-mode-hook (lambda () (setq ispell-parser 'tex)))
person pmr    schedule 25.07.2012

Скорее всего, auctex использует flyspell-mode-predicate, чтобы определить, какие части буфера не следует проверять орфографией. (Этот ответ показывает, как сделать что-то подобное для MoinMoinWiki.) org-mode уже имеет такую ​​функцию, org-mode-flyspell-verify, которая, по-видимому, не работает у вас должным образом ... Беглый взгляд на источник подсказывает, что org-remove-flyspell-overlays-in следует вызывать для частей буфера, содержащих образцы кода и т. д.

Извините за невнятный ответ; пометить это как вики сообщества, чтобы предложить улучшения.

person Community    schedule 25.07.2012
comment
Не беспокойтесь, это помогло, но да, по какой-то причине не удаляются ключевые слова в организации, такие как # + TYP_TODO в верхней части буфера. Я думаю, что все, что есть в этом формате или помечено как тег в верхней части буфера, следует игнорировать. Это, по крайней мере, с моей точки зрения, а также то, что он говорит о том, что делает org-mode-flyspell-verify. Он действительно работает, чтобы убедиться, что ошибки в написании ссылок не накладываются, поэтому я думаю, что функция работает правильно, о чем он также говорит. Ответ ниже хорошо работает, чтобы заставить его распознавать tex, просто любопытно, реализовал ли кто-нибудь что-то специально для org. - person J Spen; 25.07.2012
comment
Вам нужно будет прочесать этот код, потому что не совсем уверен, что происходит, когда elisp становится настолько сложным, потому что не очень хорошо в нем разбирается. Я думаю, что обновление до # + должно быть легким, но мне нужен список ключевых слов, которые он не будет проверять. Я буду обновлять это, если смогу понять, как это сделать. - person J Spen; 25.07.2012