建立使用者介面來控製文件的內容

建立使用者介面來控製文件的內容

我正在尋找最簡單的方法來允許某人(例如,可能不擅長 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) \inputs InitMain.tex,然後包含您需要的所有\toggletrues ,最後\inputsMain.tex

\input{InitMain}
\toggletrue{TheFirstDocument}
%\toggletrue{TheSecondDocument}
\input{Main}

並且Main.tex可以包含額外的\usepackages 和您需要的其他內容。當然,您可以在這裡有條件地輸入小文檔。

% 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.texMain_C.tex

答案的另一半取決於作業系統、可用的腳本語言、技能等等。您可以編寫一個腳本,該腳本讀取Main_A.tex、初始化複選框,最後編寫新增或刪除%標誌的新版本。例如:在 Windows 上,jscript 可用於建立像您展示的那樣的 GUI。在那裡,您甚至可以添加一個按鈕,例如調用 Latexmk(從未使用過它)來直接從對話框生成最終文檔,前提是計算機上安裝了 LaTeX。

相關內容