![建立使用者介面來控製文件的內容](https://rvso.com/image/353028/%E5%BB%BA%E7%AB%8B%E4%BD%BF%E7%94%A8%E8%80%85%E4%BB%8B%E9%9D%A2%E4%BE%86%E6%8E%A7%E8%A3%BD%E6%96%87%E4%BB%B6%E7%9A%84%E5%85%A7%E5%AE%B9.png)
我正在尋找最簡單的方法來允許某人(例如,可能不擅長 LaTeX)控制特定文件的內容。為了提供更多背景信息,我希望創建一個具有相同格式的“主要”文檔集合,這些文檔幾乎完全由一組大約30 個“較小”文檔的不同組合組成(每個文檔本質上都是該文檔內部的部分或小節) “主要”文件)。需要注意的是,「較小」文件經常會進行較小的更新,因此它們會從單獨的文件中調入「主」文件(以避免在發生小更改時必須手動更改許多「主」文件)。
到目前為止,我得到的是一個通用的“主”文檔,其中包含序言中的切換開關,控制哪些“較小”文檔出現在“主”文檔中。此時一切工作正常,創建“主”文檔的人的唯一步驟是在序言中%
之前註釋“”,\toggletrue
如果他們不希望在“主”文檔中使用特定的“較小”文檔(例如下面的“TheFirstDocument”不會出現在「主」文檔中)。另外,我在下面寫的內容當然不是為了編譯(缺少檔案和套件),它只是為了展示一個一般範例。
我的問題是,有沒有一種方法可以創建一個非常友好的用戶界面,製作“主”文檔的人可能只需勾選他們想要包含的“較小”文檔的框?如果 LaTeX 本身不可能做到這一點,是否有人建議從這裡轉向最簡單的方法來實現這一目標?
\documentclass{article}
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
%%%% Select Desired Documents %%%
\newtoggle{TheFirstDocument}
%\toggletrue{TheFirstDocument}
\newtoggle{TheSecondDocument}
\toggletrue{TheSecondDocument}
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
\begin{document}
\iftoggle{TheFirstDocument}
{ExecuteMetaData[TheFirstDocument.tex]{tag}
}
{%nothing
}
\iftoggle{TheSecondDocument}
{ExecuteMetaData[TheSecondDocument.tex]{tag}
}
{%nothing
}
\end{document}
答案1
LaTeX 答案的一半:
首先,可以分為Main.tex
三個文件:
InitMain.tex
包含\documentcalss
、第二個文件的一些必需包以及\newtoggle
您需要的所有 s。
\documentclass{article}
\usepackage{etoolbox}
\newtoggle{TheFirstDocument}
\newtoggle{TheSecondDocument}
第二個檔案 ( Main_A.tex
) \input
s InitMain.tex
,然後包含您需要的所有\toggletrue
s ,最後\input
sMain.tex
\input{InitMain}
\toggletrue{TheFirstDocument}
%\toggletrue{TheSecondDocument}
\input{Main}
並且Main.tex
可以包含額外的\usepackage
s 和您需要的其他內容。當然,您可以在這裡有條件地輸入小文檔。
% additional preamble stuff
\begin{document}
\iftoggle{TheFirstDocument}
{\input{TheFirstDocument.tex}
}
{%nothing
}
\iftoggle{TheSecondDocument}
{\input{TheSecondDocument.tex}
}
{%nothing
}
\end{document}
然後只需要編譯Main_A.tex
就可以得到最終的文檔了。
這樣,用戶只需編輯小文件,Main_A.tex
就可以擁有具有不同設定的文件等。Main_B.tex
Main_C.tex
答案的另一半取決於作業系統、可用的腳本語言、技能等等。您可以編寫一個腳本,該腳本讀取Main_A.tex
、初始化複選框,最後編寫新增或刪除%
標誌的新版本。例如:在 Windows 上,jscript 可用於建立像您展示的那樣的 GUI。在那裡,您甚至可以添加一個按鈕,例如調用 Latexmk(從未使用過它)來直接從對話框生成最終文檔,前提是計算機上安裝了 LaTeX。