答案1
對我來說,嘗試將此類內容建置到.sty
文件中似乎並不正確。即使允許個人樣式檔案具有一定的靈活性/寬鬆性,讓它們包含到其他資料來源的硬編碼路徑似乎也是可疑的做法。此外,正如您所指出的,對於參考書目來說,這樣做顯然很困難,因為它要加載到哪裡。
我更喜歡(按粗略順序):
使用可以插入片段的編輯器。例如,在 Emacs 中,使用 yasnippet,人們可以輕鬆定義某些內容,以便適當擴展。然後,您產生的每個文件對於它正在使用的資源都是透明的。您可以節省打字時間,但您產生的每個文件仍然相當獨立。長遠來看這是好事。雖然它似乎就像擁有一個樣式文件的好主意一樣,如果在將來的某個時候您丟失了它或更改了它並且忘記瞭如何、為什麼或何時更改它,您將陷入混亂。
將您的參考書目定義放在一個單獨的文件中,您只需將其
\input
放在適當的位置即可。但說實話……有什麼意義呢。您確實會節省一些擊鍵次數。如果您確實必須將其放入文件中
.sty
,請透過定義您自己的合適命令來實現(\makemybibliography
或其他命令),該命令將擴展為您想要的命令,最好事先進行適當的檢查,確保您需要的文件存在於您期望的位置,以及適當的錯誤(如果沒有)。正確地做到這一點可能是很多比為編輯編寫程式碼片段更多的工作。
答案2
\bibliographystyle 指令可以去任何地方,據我所知。它不必位於 \bibliography 命令之前的末尾。所以你可以把它放在你的套件或類別中。
答案3
是的,您可以將附加文件捆綁到套件中(不可能以任何有意義的方式將.bst
程式碼嵌入到.sty
文件中,因為它是用不同的語言編寫的)。
您必須以.dtx
可分發包的標準方式將其編寫為文件,以便當用戶安裝它時,它將解開您的文件.sty
文件和您包含的文件.bst
(以及更多文件,如果需要)。然後,用戶必須將這些文件放在“正確的位置”,對此進行了解釋這裡,與手動安裝的所有其他軟體包完全相同。
但...(非常大,但是),如果 BiBTeX 樣式檔案已經是 CTAN 上的標準套件(我在那裡找不到它),那麼在套件中捆綁一個私人副本確實是一個非常糟糕的主意。使用者應該以正常方式從 CTAN 安裝它(如果他們使用即時安裝的 TeX 發行版,這可能會自動為他們完成)。
這是sp.bst
來自語意與語用?如果是這樣,您應該鼓勵他們將其正確捆綁並透過 CTAN 提供(如果可以的話),這將使每個人的生活變得更輕鬆。在任何情況下,您當然可以將其添加到您的.dtx
文件中,但您需要獲得作者或版權所有者的許可才能這樣做,並且您需要正式協議來處理更新和覆蓋。
保羅·史丹利提出了一些好觀點,但是
- 恕我直言是製作正式的套件 (
.sty
) 文件是一個好主意,但僅當編寫為.dtx
具有適當文件的文件時,以便可以安裝、維護和引用; - 我不確定我明白為什麼2完全有用;
- 除了 Emacs 之外,我不知道有任何 LaTeX 編輯器支援片段,並且強迫作者使用與他們通常使用的編輯器不同的編輯器並不是一個好主意。
考慮從 BiBTeX 遷移到 biblatex(但如果該sp.bst
檔案是 S&P 的,那麼您需要說服他們這樣做)。