
子ドキュメントのドキュメント設定がマスター ドキュメントと互換性があることを確認するにはどうすればよいですか?
今日、引用に関して大きな問題がありました。
マスター ドキュメントで「引用スタイル標準 (数値)」を選択し、子ドキュメントで「natbib」を選択した場合、「引用の挿入ウィンドウ」(子ドキュメント内) に、natbib パッケージに属するオプション (citet、citep、citeauthor など) が表示されます。ドキュメントをレンダリングしようとすると、「制御シーケンスが未定義です」というエラーが発生します (明らかに、\citet は natbib パッケージでのみ定義されており、これを (少なくともマスターでは) 含めていないためです)。
マスターと子の設定を手動で同期させる必要がありますか? 自動的に実行できないのでしょうか、それとも異なる設定が便利なユースケースがあるのでしょうか? ヘッダーのないサブドキュメントも作成できる、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
(これを行う前にバックアップすることをお勧めします。スクリプトは元のファイルを上書きします)。