Label dan referensi persamaan LaTeX dalam mode-org

14

Ini mirip dengan ekspor Org ke referensi lateks dan HTML , tetapi untuk persamaan.

Saya suka menggunakan potongan matematika LaTeX di file org saya, seperti pada

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

Saat saya mengekspor ke LaTeX, tautan yang \ref{eq:1}benar berubah menjadi hyper hyper ke persamaan. Tetapi saya ingin mencapai perilaku tambahan berikut:

  1. Di dalam file org, saya bisa mengklik teks \ref{eq:1}(teks tidak harus \ref{eq:1}, saya hanya ingin hyperlink) dan dibawa ke persamaan. Fungsionalitas ini hadir untuk tajuk, karena [[The Quadratic Equation]]menjadi dapat diklik dalam mode Org.

  2. Ketika saya mengekspor ke HTML, saya ingin agar referensi disimpan (sebenarnya, label (1) bahkan tidak muncul di ekspor HTML).

Apakah ada cara untuk menyelesaikan ini?

Kevin
sumber
Secara teknis ... membungkus persamaan menjadi #+begin_src latex... #+end_srcdan kemudian, jika Anda menempatkan #+name: eq:1dan #+label: eq:1, Anda harus dapat referensi blok ini seperti yang Anda inginkan, yaitu menggunakan tautan [[eq:1][first equation]], tetapi untuk beberapa alasan itu tidak bekerja untuk saya (tetapi bisa jadi karena perubahan yang saya buat).
wvxvw
@ wvxvw Jika Anda mengubah perilaku advicehanya melalui s Anda dapat menguji tanpa perubahan melalui emacs -Q. Tentu, ini tidak membantu jika Anda mengubah sumber secara langsung.
Tobias
@Tobias nah, saya ingat menambal kode Org, khususnya sesuatu yang terkait dengannya memasukkan \label{}ke dalam lingkungan kata demi kata, tapi saya harus menggali perubahan saya untuk memastikan itu salah saya. Akan membantu saya, jika seseorang dapat mengkonfirmasi bahwa cara yang disarankan dengan #+namebekerja dll.
wvxvw
@wvxvw Di html-ekspor saya mendapatkan <pre>/ </pre>-Tags di equationlingkungan. Oleh karena itu, firefox menunjukkan sumber dan bukan persamaannya.
Tobias
@Tobias, benar, saya benar-benar lupa tentang itu, Anda juga perlu by-backendmakro dari sini: orgmode.org/worg/org-contrib/babel/languages/…
wvxvw

Jawaban:

15

Saya harus menjalankan beberapa tes, tetapi saya berhasil menjalankan file kecil yang mengekspor dengan benar ke lateks dan HTML, saya diuji hanya dalam org 8.2.10, tetapi harus bekerja pada versi lain.

Jawabannya sebenarnya sama dengan dalam ekspor Org ke referensi lateks dan HTML

Di sini saya punya contoh kecil

*  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]]
Joafigue
sumber
Bagus, ini bekerja untuk saya di luar kotak.
Tobias
Ini juga berfungsi untuk saya di LaTeX, tetapi tidak berfungsi untuk "out of the box" dalam HTML, karena persamaannya bahkan tidak memiliki angka (beberapa opsi Mathjax tidak diatur, mungkin). Sekarang jika hanya RefTeX yang mendukung ini, tapi itu pertanyaan lain. Saya akan menunggu beberapa hari lagi sebelum menerima, untuk melihat apakah ada orang lain yang akan berpura-pura :)
Kevin
Saya menerima, tetapi lihat jawaban saya sendiri di bawah ini (versi Org nanti memiliki dukungan di luar kotak).
Kevin
Saya mendapatkan "referensi yang tidak jelas" di LaTeX; tidak bekerja untuk saya dengan Emacs 24.5.1 (mode Org 8.2.10)
Reb.Cabin
1
Dapatkah ini entah bagaimana diperluas ke lingkungan AMS multi-line seperti aligndan subequations, di mana label khusus untuk bagian -bagian persamaan?
kdb
5

Sebenarnya, tampaknya mode Org 8.3.1 memiliki dukungan bawaan untuk pertanyaan yang diajukan; labeldan refbekerja di luar kotak.

Ini mengharuskan seseorang untuk memperbarui mode Organisasi melalui manajer paket; setelah itu, tempelkan di (package-initialize)dekat bagian atas file inisialisasi.

EDIT. Ini tidak memungkinkan Anda untuk mengklik \ref{...}dan pergi ke label. Untuk itu, silakan lihat jawaban yang diterima di atas, atau gunakan org-ref .

Kevin
sumber
1
Tapi Anda tidak bisa mengklik \ ref {.} Untuk pergi ke \ label {.}, Kan?
rvf0068
Tidak, saya tidak bisa. Untuk itu, Anda harus menggunakan jawaban Joafigue di atas atau melihat komentar saya di atas mengenai github.com/jkitchin/org-ref . Saya akan mengedit jawaban saya untuk mencerminkan itu.
Kevin
1

Seperti yang dijelaskan dalam tautan Internal .

Anda dapat menggunakan <<id>>untuk mengatur id target Anda dan menggunakan [[id]]atau [[id][description]](Anda dapat menggunakan C-c C-luntuk memasukkan ini) untuk menemukan target Anda.

Ini berfungsi untuk saya saat mengekspor ke HTML.

Ynjxsjmh
sumber