2013-05-02 56 views
2

我有幾個帶有大量由Mathjax渲染的公式的html頁面。我想參考幾個不在同一頁面中的方程式。如何使用Mathjax在不同的頁面中引用公式

問題是「\ eqref」只在公式在同一頁中時才起作用。

一個解決方案是對所有方程使用「\ tag {}」並使用簡單的html鏈接。

例如,

\label{myequation} \tag{4.1} 

和鏈接將

"<a href="http://www.mysite.com/mypage#myequation"> 4.1 </a>" 

與解決方案的問題是,我需要爲所有方程個人標籤。

有沒有人有解決方案,通過自動生成標籤來引用不同頁面中的方程式?

回答

1

請參閱automatic equation numbering的文檔。這使您可以自動計算您的方程式,而不需要\tag。請注意,任何編號或標記的公式都會自動獲得可用於鏈接的標識,因此不需要使用\label(儘管它在編輯期間添加和刪除方程時有幫助)。如果方程編號爲5,則編號爲mjx-eqn-5。有些函數可以覆蓋以更改方程式號的格式。請參閱TeX configuration parameters文檔的equationNumbers部分。

編輯:現在我明白了您的要求,我可以告訴您,要求MathJax知道您網站中其他頁面的標籤到標籤映射(而不僅僅是頁面目前正在查看)。 MathJax沒有可用的數據。唯一的方法是爲包含該數據的其他頁面創建數據文件,以便MathJax可以加載它並使其可用。雖然技術上可行,但這樣做會有點麻煩,特別是因爲JavaScript(通常)無法爲您編寫文件。

另一方面,唯一需要標籤到標籤映射的地方是作爲鏈接本身的文本(也就是說,如果eq:sum引用公式4.1,那麼你會希望「4.1」到請注意,鏈接本身將會是myotherpage#eq:sum,所以唯一需要的是鏈接文本本身,如果你願意使用類似「sum」的東西作爲鏈接文本對於eq:sum(例如,「在等式中我們看到......」),那麼你不需要標籤到標籤的映射,並且可以修改\eqref來處理這個。但是如果你真的想要方程編號爲這個鏈接,你需要一個很多更多的基礎設施才能實現。

+0

感謝您的答案,但在您的解決方案中,我仍然需要爲鏈接生成標籤(例如「4.1」)。也許我不明白,但是如何在標籤沒有添加「標籤」的情況下鏈接到方程? – Ben 2013-05-04 17:08:16

+0

如果公式被標記(自動或通過明確的'\ tag'),則它會自動獲得一個可用作鏈接目標的ID。所以如果你有'$$ E = mc^2 \ tag(4.1)$$',那麼方程的id就是'mjx-eqn-4.1',你可以在其他文件中使用'4.1'鏈接到那個等式。 TeX代碼中不需要明確的'\ label {}'(儘管如果你願意,你可以使用一個,所以如果你添加或刪除方程,你不必改變鏈接的引用)。也許我不明白你在做什麼。 – 2013-05-05 11:20:16

+0

如果這不是你所追求的,你可以編輯你的問題,使它更明確你應該怎麼做?也許你想做什麼的例子? – 2013-05-05 11:22:12

相關問題