
這是我的第一個問題。我搜尋了一段時間但找不到類似的問題,也許我缺少正確的搜尋字詞。無論如何,它來了。
在撰寫論文期間,我遇到了輸入繪圖的問題:我得到了 .txt 檔案中列出的計算結果,並且我想避免每個繪圖都有自己的 tex 檔案。所以我的想法是將所有圖表放在一個檔案中,透過自己的「tikzpicture」環境來區分它們。現在我想念的是一種告訴我的主文件僅輸入該 tex 檔案中的第三個或第五個圖表的方法。有沒有辦法做到這一點?也許給每個 tikzpics 一些類似標籤的東西?
我的目標是 a) 產生更少的檔案 b) 為所有圖表定義一種格式,如果我想更改它,只需執行一次,而不是在所有圖表檔案中執行此操作。
如果它太複雜,也許你可以建議另一種方法來實現這一點?
先感謝您。
答案1
\newcommand
最簡單但也是一個草率的解決方案是為您在 .tex 檔案中製作的每個 tikzpicture定義 a , 然後將其插入到主檔案中。
你可以有一個pictures.tex
像這樣的文件:
\newcommand{\tikzI}{
\begin{tikzpicture}
<insert tikz contents here>
\end{tikzpicture}
}
\newcommand{\tikzII}{
\begin{tikzpicture}
<another tikzpicture>
\end{tikzpicture}
}
雖然您的主文件可能如下所示:
<preamble>
\begin{document}
\input{pictures}
<some text here>
\tikzI
<more text>
\tikzII
\end{document}
然而,正如 Alan Munn 所建議的那樣,將每張圖片分配給自己的文件並簡單地為每個 tikzpicture 單獨調用這些文件可能會更容易、更舒適。 (專門為 tikzpictures 建立一個目錄,這樣它們就不會弄亂您的主目錄)
答案2
我認為您不應該將所有圖像放入一個文件中。從長遠來看,管理多個文件要容易得多。
standalone
這是包和類別組合的理想用例。每個單獨的圖形都可以建立為standalone
文件並自行測試,然後可以使用該standalone
套件將它們輸入到主文件中。您可以將常用的 TikZ 樣式放入一個小包中。這是一個例子。
將常用的 TikZ 樣式打包
首先我們建立一個 TikZ 樣式包。我剛剛定義了一種樣式作為範例。
\ProvidesPackage{mytikzstyles}[2017/04/30]
\tikzset{my line/.style={red,very thick}}
將此文檔保存mytikzstyles.sty
在與您的文檔相同的資料夾中,或者如果您將它們用於許多文檔,請將其放入本地texmf
資料夾中<path-to-local-texmf>/tex/latex/mytikzstyles/
。
建立單獨的standalone
影像文檔
接下來我們standalone
為每個圖像建立類別文檔。這樣做的優點是您可以單獨測試和調整它們,因為它們是完全可編譯的文件。在每個文件中,您只需新增\usepackage{mytikzstyles}
即可存取您建立的常用樣式。
Image-1.tex
\documentclass[tikz=true,border=10pt]{standalone}
\usepackage{mytikzstyles}
\begin{document}
\begin{tikzpicture}
\draw[my line] (0,0) -- (0,3) -- (3,3) -- cycle;
\end{tikzpicture}
\end{document}
Image-2.tex
\documentclass[tikz=true,border=10pt]{standalone}
\usepackage{mytikzstyles}
\begin{document}
\begin{tikzpicture}
\draw[my line] (0,0) -- (0,3) -- (3,0) -- (3,3) -- cycle;
\end{tikzpicture}
\end{document}
使用standalone
類別輸入文件
現在我們的主文檔可以以我們喜歡的任何方式輸入文件。為了保持主文件目錄整潔,您可以將所有圖像文件放入各自的資料夾中。 (確保資料夾或檔案名稱中沒有空格。)
這是一個例子:
\documentclass{article}
\usepackage{standalone}
\usepackage{tikz}
\usepackage{mytikzstyles}
\begin{document}
\begin{figure}
\centering
\input{Image-2}
\caption{This is image 2}
\end{figure}
\begin{figure}
\centering
\input{Image-1}
\caption{This is image 1}
\end{figure}
\end{document}