
如何確保子文檔的文檔設定與主文檔相容?
今天我在引用方面遇到了很大的麻煩:
如果我在主文檔中選擇“引文樣式標準(數字)”,在子文檔中選擇“natbib”,我會在“插入引文視窗”(在子文檔中)中獲得屬於natbib 套件的選項(citet、citep 、引用作者等)。嘗試渲染文件會出現錯誤:「控制序列未定義」(顯然,因為 \citet 僅在 natbib 套件中定義,而我沒有包含該套件(至少在 master 中))。
我是否必須手動保持主設定和子設定同步?難道不能自動完成嗎?我期望像 LaTeX 一樣的行為,其中也可以有沒有任何標題的子文檔。
這個問題:帶有子文檔的 LyX BibTeX 無法正常運作 顯然是由同一問題引起的。
答案1
這可能只能部分回答您的問題:我有一個主文檔和一些子文檔。所有 lyx 檔案都具有相同的文檔類型並使用預設值。為了包含套件或定義宏,我有一個額外的 tex 檔案 (options.tex),其中包含序言中需要完成的所有內容。
在 lyx 文件的序言中我加入了一條input
指令。
\input{options}
這個解決方案並不完美,但這使我能夠編譯主文檔(這需要一些時間,因為它有 190 多頁)或僅編譯子文檔。
答案2
目前唯一的選擇似乎是手動同步設置,這很容易出錯。為了減少錯誤,我發現最可靠的工作流程是:
- 更改父文檔的設定。
- 關閉LyX
\begin_header
作為純文字文件開啟父文檔(例如使用 Emacs)並複製以 開頭和結尾的部分\end_header
。- 對於每個子文件:
- 以純文字形式開啟子文檔
- 使用父文檔標題覆寫標題。
我已經編寫了一個腳本來自動化這個過程,lyx-header-util.py
[重點.github.com](需要 python 3),這將工作流程減少到
對於每個子文檔運行
lyx-header-util.py copyheaderinplace PARENTFILE.LYX CHILDDOCUMENT.lyx
(建議在執行此操作之前進行備份;腳本會覆蓋原始檔案)。