подсветка латексного синтаксиса буфера в организационном режиме

Я использую org-mode для публикации научных заметок. Большая часть того, что я публикую, представляет собой скомпилированный латексный код, и я ищу способ выделить латексный синтаксис в буфере организационного режима. Я встречал множество решений для отображения опубликованного латексного кода с выделением синтаксиса с использованием перечисленных, отчеканенных, пигментов и т. Д. Есть ли способ отобразить выделенный латексный синтаксис в org-буфере?


person user2509577    schedule 21.06.2013    source источник
comment
Можете ли вы привести пример того, что вы имеете в виду в организационном документе?   -  person Jonathan Leech-Pepin    schedule 01.07.2013
comment
Я думаю, он хочет в org-mode буфере, чтобы выделить весь встроенный латексный код (например, \alpha, S^3, \dots).   -  person AdrieanKhisbe    schedule 01.10.2013
comment
Разве C-c ' недостаточно при редактировании блока LaTeX? Вы хотите, чтобы он всегда был выделен?   -  person mlt    schedule 02.10.2013


Ответы (4)


Переменная org-highlight-latex-and-related позволяет выделить встроенную математику. Однако фрагменты LaTeX будут выделены только одним лицом.

Из документации org-highligh-latex-and-related:

Non-nil means highlight LaTeX related syntax in the buffer.
When non nil, the value should be a list containing any of the
following symbols:
  `latex'    Highlight LaTeX snippets and environments.
  `script'   Highlight subscript and superscript.
  `entities' Highlight entities.

E.g.:

(setq org-highlight-latex-and-related '(latex script entities))

Лицо org-latex-and-related используется для фонирования фрагментов LaTeX.

person Dominik Schrempf    schedule 28.04.2015
comment
Это не делает выделение для встроенной математики, такой как $ v \ in V $. Есть ли способ добиться такой подсветки? - person AlwaysLearning; 16.08.2017
comment
@AlwaysLearning Я заметил, что $ v \ in V $ подсвечивается. Какую версию режима организации вы используете? - person Dominik Schrempf; 16.08.2017
comment
Версия 9.0.7. Что еще мне нужно в настройке, кроме настройки org-highlight-latex-and-related? Кроме того, могут ли быть конфликты? - person AlwaysLearning; 17.08.2017
comment
Я только что проверил свою конфигурацию и не меняю никаких других параметров режима организации, связанных с латексом. Моя версия - 9.0.9, но она работает давно. Включены ли у вас какие-либо другие параметры блокировки шрифтов, которые могут затенять поведение режима организации? В противном случае вы можете разместить свой вопрос в списке рассылки режима организации. - person Dominik Schrempf; 17.08.2017
comment
У меня эта проблема возникает даже при открытии .org файла с помощью emacs -q и последующей оценке (setq org-highlight-latex-and-related '(latex script entities)). - person AlwaysLearning; 17.08.2017

Вы можете заключить свои фрагменты латекса в#+BEGIN_LaTeX latex и #+END_LaTex latex, чтобы выделить их. Он отличается от исходных блоков. (_3 _....), которые экспортируются дословно (с потенциальным выделением через пигменты, как вы упомянули).

Он хорошо работает для сред (уравнения, выравнивание ...):

снимок экрана emacs

Насколько я знаю, это не работает для встроенной математики (ну, это работает, если вы заключаете весь абзац, но теряете смысл использования org-mode ...)

Источник: этот ответ в emacs.stackexchange и Reddit.

person Geeklhem    schedule 13.04.2017

Поместите в конфигурационный файл .emacs следующее:

;; fontify code in code blocks
(setq org-src-fontify-natively t)

PS - Я не понимаю, что по умолчанию он не включен.

person fniessen    schedule 22.06.2013
comment
У меня эта переменная уже установлена ​​как истина, и когда мой латексный код заключен в # + BEGIN_SRC latex # + END_SRC latex, он правильно подсвечивается. Однако я хочу скомпилировать латексный код, а не отображать его как исходный код. - person user2509577; 25.06.2013

Вы можете попробовать что-то подобное.

(font-lock-add-keywords 'org-mode
        '(("\\(\\\\cite\\)" . font-lock-keyword-face)
          ("\\[[0-9]+]" . font-lock-type-face)
          ("\\s-*[a-zA-Z]+[0-9]+[a-z]" . font-lock-constant-face)))
(font-lock-add-keywords 'org-mode
        '(("\\(\\\\citep\\)" . font-lock-keyword-face)))
(font-lock-add-keywords 'org-mode
        '(("\\(\\\\citet\\)" . font-lock-keyword-face)))
(font-lock-add-keywords 'org-mode
        '(("\\(\\\\citealp\\)" . font-lock-keyword-face)))
(font-lock-add-keywords 'org-mode
        '(("\\(\\\\citeauthor\\)" . font-lock-keyword-face)))
(font-lock-add-keywords 'org-mode
        '(("\\(\\\\citeyear\\)" . font-lock-keyword-face)))

http://www.emacswiki.org/emacs/AddKeywords http://www.emacswiki.org/emacs/RegularExpression

person 923864    schedule 30.07.2014
comment
если вы оцениваете эти команды, когда у вас уже есть открытый буфер, который вы хотите фонировать, вы должны выполнить M-x revert-buffer или M-x normal-mode, чтобы они вступили в силу в уже открытом буфере. - person Mark; 05.06.2015
comment
Хотя обычно вы добавляете фонтификацию именно так, в этом нет необходимости, поскольку org-mode уже позволяет вам это делать. - person Alex Petrosyan; 27.03.2020