Rotular e referenciar as equações do LaTeX no modo organizacional


14

Isso é semelhante à exportação da organização para referências de látex e HTML , mas para equações.

Eu gosto de usar trechos de matemática LaTeX em meus arquivos organizacionais, como em

* The Quadratic Equation
The roots of $ax^2 + bx + c$ are given by
\begin{equation}
\label{eq:1}
x = \frac{-b \pm \sqrt{b^2-4ac}}{2a}
\end{equation}

According to Equation \ref{eq:1}, ...

Quando exporto para o LaTeX, o \ref{eq:1}correto se transforma em um hiperlink para a equação. Mas quero obter o seguinte comportamento adicional:

  1. Dentro do arquivo organizacional, posso clicar no texto \ref{eq:1}(o texto não precisa estar \ref{eq:1}, só quero um hiperlink) e ser levado para a equação. Essa funcionalidade está presente nos cabeçalhos, pois [[The Quadratic Equation]]torna-se clicável no modo Org.

  2. Quando exporto para HTML, quero que as referências sejam mantidas (na verdade, o rótulo (1) nem aparece na exportação HTML).

Existe uma maneira de conseguir isso?


Tecnicamente ... envolvendo a equação em #+begin_src latex... #+end_srce então, se você colocar #+name: eq:1e #+label: eq:1, poderá referenciar esse bloco da maneira que desejar, ou seja, usando um link [[eq:1][first equation]], mas por algum motivo, isso não funciona para mim (mas pode ser devido às alterações que eu fiz).
Wdxvw

@wvxvw Se você alterou o comportamento através de advices only, pode testar sem alterações via emacs -Q. Naturalmente, isso não ajuda se você alterou as fontes diretamente.
Tobias

@ Tobias nah, lembro-me de corrigir o código Org, especificamente algo relacionado a ele ser inserido \label{}no ambiente literal, mas eu precisaria desenterrar minhas alterações para garantir que a culpa é minha. No entanto, me ajudaria, se alguém pudesse confirmar que a maneira sugerida com o #+nameetc funciona.
wvxvw

@wvxvw Na exportação de html, recebo <pre>/ </pre>-Tags pelo equationambiente. Portanto, o Firefox mostra a fonte e não a equação.
21415 Tobias

@Tobias, certo, eu esqueci completamente sobre isso, você também precisaria da by-backendmacro a partir daqui: orgmode.org/worg/org-contrib/babel/languages/...
wvxvw

Respostas:


15

Eu tive que executar algum teste, mas consegui executar um pequeno arquivo que exporta corretamente para látex e HTML; testei apenas na organização 8.2.10, mas deve funcionar em outras versões.

A resposta é realmente a mesma da exportação da organização para referências de látex e HTML

Aqui eu tenho um pequeno exemplo

*  This is a latex experiment
so with the text...
#+NAME: code:1
#+BEGIN_SRC shell-script
echo hello world 
#+END_SRC
[[code:1]] is a reference to src block

#+NAME: eqn:1
\begin{equation}
    f(x) =  \sum\limits_0^\infty(f^{(n)}(x)|_{x=0} \cdot x)
\end{equation}

And this is an equation [[eqn:1]]

Bom, isso funciona para mim imediatamente.
Tobias

Isso funciona para mim também no LaTeX, mas não funciona para "pronto para uso" em HTML, pois a equação nem sequer tem um número (algumas opções do Mathjax não estão sendo definidas, provavelmente). Agora, se apenas o RefTeX apoiar isso, mas isso é outra questão. Vou esperar mais alguns dias antes de aceitar, para ver se alguém vai dialogar :)
Kevin

Aceitei, mas veja minha própria resposta abaixo (a versão posterior do Org tem suporte pronto para uso).
Kevin

Eu recebo "referências indefinidas" no LaTeX; não funciona para mim com o Emacs 24.5.1 (Org modo 8.2.10)
Reb.Cabin

1
De alguma forma, isso pode ser estendido a ambientes AMS de várias linhas como aligne subequations, onde o rótulo é específico para partes da equação?
Kdb 06/06/19

5

Na verdade, parece que o modo Org 8.3.1 oferece suporte interno para o que a pergunta está fazendo; labele reftrabalhar fora da caixa.

Isso requer que você atualize o modo Org através do gerenciador de pacotes; depois, fique (package-initialize)perto da parte superior do arquivo de inicialização.

EDITAR. Isso não permite que você clique \ref{...}no rótulo e vá para ele. Para isso, consulte a resposta aceita acima ou use org-ref .


1
Mas você não pode clicar em \ ref {.} Para ir para \ label {.}, Certo?
rvf0068

Não, eu não posso. Para isso, você deve usar a resposta de Joafigue acima ou ver meu comentário acima sobre github.com/jkitchin/org-ref . Vou editar minha resposta para refletir isso.
Kevin

1

Como é descrito em Links internos .

Você pode usar <<id>>para definir seu ID de destino e usar [[id]]ou [[id][description]](Você pode usar C-c C-lpara inserir isso) para encontrar seu destino.

Isso funciona para mim enquanto exporta para HTML.

Ao utilizar nosso site, você reconhece que leu e compreendeu nossa Política de Cookies e nossa Política de Privacidade.
Licensed under cc by-sa 3.0 with attribution required.