Мітка та еталонні рівняння LaTeX в org-режимі


15

Це схоже на експорт Org до посилань на латекс та HTML , але для рівнянь.

Мені подобається використовувати математичні фрагменти LaTeX у своїх org-файлах, як у

* 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, \ref{eq:1}правильно перетворюється на гіперпосилання на рівняння. Але я хочу досягти наступної додаткової поведінки:

  1. Всередині файлу org я можу натиснути текст \ref{eq:1}(текст не повинен бути \ref{eq:1}, я просто хочу гіперпосилання) і перейти до рівняння. Ця функціональність присутня для заголовків, оскільки в [[The Quadratic Equation]]режимі Org її можна натискати.

  2. Коли я експортую в HTML, я хочу, щоб посилання зберігалися (насправді мітка (1) навіть не відображається в експорті HTML).

Чи є спосіб досягти цього?


Технічно ... загортання рівняння в #+begin_src latex... #+end_srcа потім, якщо ви розміщуєте #+name: eq:1і #+label: eq:1, ви повинні мати можливість посилатися на цей блок так, як вам потрібно, тобто за допомогою посилання [[eq:1][first equation]], але чомусь воно не працює для мене (але це може бути пов'язано із внесеними нами змінами).
wvxvw

@wvxvw Якщо ви змінили поведінку adviceлише через s, ви можете протестувати без змін через emacs -Q. Природно, це не допоможе, якщо ви безпосередньо змінили джерела.
Тобіас

@Tobias nah, я пам'ятаю виправлення коду Org, зокрема щось, що стосується його вставки \label{}у дослівне середовище, але мені потрібно було б викопати зміни, щоб переконатися, що це моя вина. Я б мені допоміг, якщо хтось міг би підтвердити, що запропонований спосіб із #+nameтощо працює.
wvxvw

@wvxvw При html-export я отримую <pre>/ </pre>-теги в equationоточенні. Тому firefox показує джерело, а не рівняння.
Тобіас

@Tobias, правда, я повністю забув про це, вам також знадобиться by-backendмакрос звідси: orgmode.org/worg/org-contrib/babel/languages/…
wvxvw

Відповіді:


15

Мені довелося запустити деякий тест, але мені вдалося запустити невеликий файл, який правильно експортує і в латекс, і в HTML, я протестував лише в org 8.2.10, але він повинен працювати на інших версіях.

Відповідь насправді така ж, як і в експорті Org до посилань на латекс та HTML

Ось у мене невеликий приклад

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

Приємно, це працює для мене поза межами.
Тобіас

Це працює і для мене в LaTeX, але воно не працює для "поза коробки" в HTML, оскільки рівняння навіть не має числа (певна опція Mathjax, певно, не встановлена). Тепер якщо тільки RefTeX підтримав би це, але це вже інше питання. Я зачекаю ще пару днів, перш ніж приймати, щоб побачити, чи ще хтось задзвенить :)
Кевін

Я прийняв, але дивіться свою власну відповідь нижче (пізніша версія Org має підтримку поза коробкою).
Кевін

Я отримую "невизначені посилання" в LaTeX; не працює для мене з Emacs 24.5.1 (Org mode 8.2.10)
Reb.Cabin

1
Чи можна це якось поширити на багаторядкові середовища AMS, такі як, alignі subequationsде мітка специфічна для частин рівняння?
kdb

5

Насправді, схоже, що в Org режимі 8.3.1 є вбудована підтримка того, що задається питанням; labelі refпрацювати поза коробкою.

Для цього потрібно оновити режим Org через менеджер пакунків; після цього приклейте (package-initialize)біля верхньої частини ініціалізаційного файлу.

EDIT. Це не дозволяє вам натиснути на \ref{...}і перейти до мітки. Для цього, будь ласка, дивіться прийняту відповідь вище або використовуйте org-ref .


1
Але ви не можете натиснути \ ref {.}, Щоб перейти до \ label {.}, Правда?
rvf0068

Ні я не можу. Для цього вам потрібно скористатися або відповіддю Йоафігуе вище, або переглянути мій коментар вище щодо github.com/jkitchin/org-ref . Я відредагую свою відповідь, щоб це відобразити.
Кевін

1

Як описано у внутрішніх посиланнях .

Ви можете використовувати <<id>>для встановлення цільового ідентифікатора та використовувати ( [[id]]або [[id][description]]можна C-c C-lвставити цей) для пошуку своєї цілі.

Це працює для мене під час експорту в HTML.

Використовуючи наш веб-сайт, ви визнаєте, що прочитали та зрозуміли наші Політику щодо файлів cookie та Політику конфіденційності.
Licensed under cc by-sa 3.0 with attribution required.