組織モードでのLaTeX方程式のラベル付けと参照


14

これは、ラテックスおよびHTML参照へのOrgエクスポートに似ていますが、方程式に関するものです。

次のように、組織ファイルでLaTeX数学スニペットを使用したい

* 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. 組織ファイル内で、テキストをクリックすることができます\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 advicesのみで動作を変更した場合、を介して変更なしでテストできます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の両方に正しくエクスポートする小さなファイルを実行できました。org8.2.10でのみテストしましたが、他のバージョンでも動作するはずです。

答えは実際には、ラテックスおよび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(組織モード8.2.10)と私のために動作しません
Reb.Cabin

1
これはどういうわけか、ラベルが方程式の一部に固有のalignやなどの複数行のAMS環境に拡張できますか?subequations
kdb

5

実際、Orgモード8.3.1には、質問の内容に対する組み込みのサポートがあるようです。labelそしてref箱から出して動作します。

これには、パッケージマネージャーを使用してOrgモードを更新する必要があります。その後、(package-initialize)初期化ファイルの上部近くに貼り付けます。

編集。これにより、クリック\ref{...}してラベルに移動することはできません。それについては、上記の承認済みの回答を参照するか、org-refを使用してください。


1
しかし、\ ref {。}をクリックして\ label {。}に移動することはできませんか?
rvf0068

私にはできません。そのためには、上記のJoafigueの回答を使用するか、github.com / jkitchin / org-refに関する上記のコメントを参照する必要があります。それを反映するように回答を編集します。
ケビン

1

内部リンクで説明されているように。

を使用<<id>>してターゲットIDを設定し、[[id]]または[[id][description]]C-c C-lこれを使用して挿入できます)を使用してターゲットを見つけることができます。

これは、HTMLにエクスポートするときに機能します。

弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.