2009-05-02 57 views
2

我對乳膠本身瞭解不多。我需要的是可用命令的列表。所有標準命令和來自「usepackage」聲明的。如何獲得乳膠文檔上的可用命令列表?

我目前專注於MiKTeX,所以如果MiKTeX確實提供了,它當然很棒,否則我會得到解析某些.sty或.def文件的想法。但我不明白這些文件背後的語法。如果分析是唯一的解決方案,我應該在這些文件中尋找什麼?

回答

0

乳膠是一個宏包,宏系統(一些例外的例外)是非常難以解析的。

事實上,沒有像樣的膠乳到html轉換器經過這些年來證明了這一點。

但無論如何,在現有的可以給你一個例子,如何着手,尋找latex2html(在Perl),tex2ht和三葉膠

+0

我想我不能說清楚,我不會將乳膠轉換成任何東西,也不會解析乳膠文檔。當我提到解析時,它解析了包描述以獲取包提供的命令。 – 2009-05-02 11:58:05

+0

也許膠乳到html的困難更多的是難以表達的問題。乳膠只是提供了更多的控制,所以不是所有的乳膠結構*都可以映射到html,並且乳膠的圖靈完整性意味着你永遠無法覆蓋所有的基礎。 – dmckee 2009-05-02 16:40:25

1

在我看來,你可以使用像一個「小抄」。有一個here,但肯定會有更多的人躺在周圍。

3

解析TeX代碼絕不是獲得所有控制序列列表的唯一方法。其他可能性包括:

  • 導致TeX在加載相關包後轉儲其數據結構,然後解析轉儲文件;當您運行latex命令時,真正發生的是tex二進制文件加載latex.fmt轉儲文件,該文件是通過使用相同的二進制文件解析LaTeX的所有內置代碼並轉儲其數據結構而生成的;

  • 修改TeX的源代碼,每次控制序列被定義時輸出一些東西;

  • 在可編寫腳本的調試器中運行TeX,在序列插入散列表的位置插入斷點,並讓腳本輸出序列的名稱。

這些都不是一個特別簡單的解決方案,但可能比自己編寫一個與TeX等價的解析器更容易。要開始,請查看TeX: The Program和TeX系統的源代碼。

如果您的目標是在編輯器中提供「智能感知」,那麼僅僅命令序列列表將不會有太大的幫助:當用戶輸入\ref{時,您應該提供文檔中定義的標籤列表(獎金如果在章節標籤列表中鍵入Chapter~\ref{結果,而不是所有標籤);對於\settowidth{,長度命令列表;爲\begin{,環境清單;等等。

你可以看到AUCTeX(一個Emacs模式)的功能;它有一個有限的,基於regexp的解析器來處理常見的情況,以及一些擴展功能的特定於包的庫。

0

從你的問題中不清楚你是否想要一個在程序中使用的列表,或者只是爲自己的文檔?

在後一種情況下,最近的TeX發行版包括命令texdoc,它可以找到並打開任何問題的文檔,例如texdoc hyperref。它有爲方便定義的別名:texdoc koma將查找並打開koma-script手冊,即使實際文件名爲scrguien.pdf