Kuruluş kipinde LaTeX denklemlerini etiketleyin ve referans alın


15

Bu, lateks ve HTML referanslarına Kuruluş dışa aktarmaya benzer , ancak denklemler için.

Kuruluş dosyalarımda olduğu gibi LaTeX matematik snippet'lerini kullanmayı seviyorum

* 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}, ...

LaTeX'e dışa aktardığımda, \ref{eq:1}doğru bir şekilde denkleme hiper bir bağlantıya dönüşür. Ancak aşağıdaki ek davranışları elde etmek istiyorum:

  1. Kuruluş dosyasının içinde, metni tıklatabilirim \ref{eq:1}(metnin olması gerekmez \ref{eq:1}, sadece bir köprü istiyorum) ve denkleme götürülürüm. Bu işlev, [[The Quadratic Equation]]Kuruluş modunda tıklanabilir hale geldiği için üstbilgiler için kullanılabilir.

  2. HTML'ye dışa aktardığımda, referansların saklanmasını istiyorum (aslında, etiket (1) HTML dışa aktarmada bile görünmüyor).

Bunu başarmanın bir yolu var mı?


Teknik olarak ... denklemi içine sarmak #+begin_src latex... #+end_srcve sonra, eğer yerleştirirseniz #+name: eq:1ve #+label: eq:1bu bloğa istediğiniz şekilde başvurabilmelisiniz, yani bir bağlantı kullanarak [[eq:1][first equation]], ancak bir nedenden dolayı benim için çalışmıyor (ama yaptığım değişikliklerden kaynaklanıyor olabilir).
wvxvw

@wvxvw Davranışı adviceyalnızca s ile değiştirdiyseniz, üzerinden değişiklik yapmadan test edebilirsiniz emacs -Q. Doğal olarak, kaynakları doğrudan değiştirirseniz bu yardımcı olmaz.
Tobias

@ Tobias nah, Org kodunu yamaladığımı hatırlıyorum, özellikle \label{}sözel ortama eklenmesi ile ilgili bir şey var , ancak benim hatam olduğundan emin olmak için değişikliklerimi kazmalıyım . Birisi ile önerilen yolun #+nameçalıştığını teyit edebilir, ama bana yardımcı olacaktır .
wvxvw

@wvxvw html-export uygulamasında çevrede <pre>/ </pre>-Tags alırım equation. Bu nedenle, firefox denklemi değil kaynağı gösterir.
Tobias

@Tobias, doğru, tamamen unuttum, buradan da by-backendmakroya ihtiyacınız olacak : orgmode.org/worg/org-contrib/babel/languages/…
wvxvw

Yanıtlar:


15

Bazı testler yapmak zorunda kaldım, ancak hem lateks hem de HTML'ye doğru bir şekilde ihracat yapan küçük bir dosya çalıştırmayı başardım, sadece org 8.2.10'da test ettim, ancak diğer sürümlerde çalışmalıdır.

Yanıt aslında Lateks ve HTML referanslarına Org dışa aktarma ile aynıdır

Burada küçük bir örneğim var

*  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]]

Güzel, bu benim için kutudan çıkar.
Tobias

Bu benim için LaTeX'te de işe yarıyor, ancak denklemin bir numarası bile olmadığından HTML'de "kutudan çıkmış" için çalışmıyor (muhtemelen bazı Mathjax seçeneği ayarlanmadı). Şimdi sadece RefTeX bunu destekleseydi, ama bu başka bir soru. Kimsenin chime olup olmayacağını görmek için, kabul etmeden önce birkaç gün daha bekleyeceğim :)
Kevin

Kabul ettim, ancak aşağıda kendi cevabımı görüyorum (Org'un sonraki sürümünün kutunun dışında desteği var).
Kevin

LaTeX'te "tanımsız referanslar" alıyorum; Emacs 24.5.1 (Org mode 8.2.10) ile benim için çalışmıyor
Reb.Cabin

1
Bu şekilde çok satırlı AMS gibi ortamlarda kadar uzatılabilir alignve subequationsetiket özgüdür, parçaların denklemin?
kdb

5

Aslında, Org mod 8.3.1'in sorunun ne istediğine dair yerleşik bir desteği olduğu görülüyor; labelve refkutunun dışında çalış.

Bunun için Org modunun paket yöneticisi aracılığıyla güncellenmesi gerekir; daha sonra, (package-initialize)başlatma dosyasının üstüne yakın bir yere yapıştırın .

DÜZENLE. Bu \ref{...}, etiketi tıklamanıza ve etikete gitmenize izin vermez . Bunun için lütfen yukarıdaki kabul edilen cevaba bakın veya org-ref kullanın .


1
Ama \ label {.} Adresine gitmek için \ ref {.} 'İ tıklamanız mümkün değil, değil mi?
rvf0068

Hayır ben yapamam. Bunun için yukarıdaki Joafigue'nun cevabını kullanmanız veya github.com/jkitchin/org-ref ile ilgili yukarıdaki yorumuma bakmanız gerekiyor . Bunu yansıtmak için cevabımı düzenleyeceğim.
Kevin

1

Dahili bağlantılar bölümünde açıklandığı gibi .

Sen kullanabilirsiniz <<id>>hedef kimliği ve kullanımını ayarlamak için [[id]]veya [[id][description]](Sen kullanabilirsiniz C-c C-lhedef bulmak için bu eklemek için).

HTML'ye dışa aktarırken bu benim için çalışıyor.

Sitemizi kullandığınızda şunları okuyup anladığınızı kabul etmiş olursunuz: Çerez Politikası ve Gizlilik Politikası.
Licensed under cc by-sa 3.0 with attribution required.