從 tex 檔案中提取多個 tikzpictures 之一

從 tex 檔案中提取多個 tikzpictures 之一

這是我的第一個問題。我搜尋了一段時間但找不到類似的問題,也許我缺少正確的搜尋字詞。無論如何,它來了。

在撰寫論文期間,我遇到了輸入繪圖的問題:我得到了 .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}

程式碼的輸出

相關內容