Mostrar fórmula matemática no emacs ao codificar

8

É possível que o emacs mostre fórmulas reais no editor se elas forem escritas em Látex ou similares? Estou perguntando, porque seria muito mais legível se você estiver codificando (digamos, python ou C ++) e os comentários contenham fórmulas reais em vez de algo como isto

// Calculate average for $\mu_1 = \frac{1}{n} ~ \sum_{1=i}^n ~ x_i$

Existe um plugin que compila o código de látex em um comentário para uma imagem e o exibe no editor?

Miguellissimo
fonte

Respostas:

3

Sim. Veja o pretty-symbolspacote. Pode ser assim, por exemplo, ao codificar Python ou qualquer outra linguagem:

insira a descrição da imagem aqui

mankoff
fonte
2

O TeXfrag texfrag mostra fórmulas de doxygen abraçadas por\f[display formula\f]ou\f$embedded formula\f$como imagens.

As expressões regulares e também as funções para analisar as fórmulas podem ser personalizadas.

TeXfrag trabalha por:

  1. copiar as fórmulas do buffer de código-fonte para um buffer LaTeX (oculto)
  2. executando documento de visualização lá e
  3. movendo as sobreposições de volta ao buffer do código-fonte.

Os menus de contexto de previewtrabalho para as imagens no buffer de código-fonte. Há também um menu de modo secundário que permite gerar as imagens para o buffer completo ou apenas as imagens ao redor do ponto.

Exemplo: O buffer superior mostra uma seção de um comentário doxygen em um arquivo c com imagens sobrepostas para os fragmentos da equação. O buffer inferior mostra a mesma seção com as sobreposições removidas.

captura de tela do emacs com fórmulas renderizadas nos comentários doxygen

EDIT: Observe que TeXfragfoi renomeada texfragpara atender aos requisitos de melpa. texfragfoi revisado e aceito por melpa. Se você tiver melpa, package-archivesvocê pode instalar texfragvia package-install.

Tobias
fonte
1

Parece-me que uma imagem real seria mais problemática do que vale a pena em c++-modeou python-mode. No org-modeentanto, ele pode funcionar , que possui um mecanismo para armazenar as imagens e atualizá-las. Mesmo assim, é difícil rolagem se a imagem tiver uma altura grande.

Mas você ainda pode tipificar os bits, se quiser. Por exemplo, aqui está minha configuração para tags doxygen de bloqueio de fonte em C ++:

(defface font-lock-doxygen-face
    '((nil (:foreground "SaddleBrown" :background "#f7f7f7")))
  "Special face to highlight doxygen tags such as <tt>...</tt>
and <code>...</code>."
  :group 'font-lock-highlighting-faces)

(font-lock-add-keywords
 'c++-mode
 '(("\\(<\\(?:code\\|tt\\)>\"?\\)\\([^<]*?\\)\\(\"?</\\(?:code\\|tt\\)>\\)"
    (0 (prog1 ()
         (let* ((expr (match-string-no-properties 2))
                (expr-len (length expr)))
           (if (eq 1 expr-len)
               (compose-region (match-beginning 0)
                               (match-end 0)
                               (aref expr 0))
             (compose-region (match-beginning 1)
                             (1+ (match-end 1))
                             (aref expr 0))
             (compose-region (1- (match-beginning 3))
                             (match-end 3)
                             (aref expr (1- expr-len)))))))
    (0 'font-lock-doxygen-face t))))

Ele substituirá <tt>foo</tt>e <code>bar</code>por símbolos coloridos.

abo-abo
fonte
0

Outra opção a considerar é o latex-math-previewpacote. Ele permite visualizar "fórmulas reais no editor" em um buffer separado (ou salvar a imagem da fórmula em um arquivo). Simplesmente invoque latex-math-preview-expressionenquanto o ponto está em uma expressão.

dat
fonte