tex 파일에서 여러 tikzpicture 중 하나를 추출합니다.

tex 파일에서 여러 tikzpicture 중 하나를 추출합니다.

이것이 나의 첫 번째 질문입니다. 한동안 검색했지만 아직 비슷한 질문을 찾을 수 없었습니다. 올바른 검색 문구가 부족한 것 같습니다. 어쨌든, 여기 온다.

논문을 작성하는 동안 플롯을 입력하는 데 문제가 있습니다. 계산 결과가 .txt 파일에 나열되어 있는데 각 플롯에 대해 자체 tex 파일을 갖는 것을 피하고 싶습니다. 그래서 내 생각은 모든 다이어그램을 하나의 파일에 넣고 고유한 "tikzpicture" 환경으로 구분하는 것입니다. 이제 내가 놓친 것은 내 기본 문서에 이 tex 파일의 세 번째 또는 다섯 번째 다이어그램만 입력하도록 지시하는 방법입니다. 이를 수행할 수 있는 방법이 있습니까? 각 tikzpicture에 태그 같은 것을 제공할 수도 있나요?

내 목표는 a) 더 적은 수의 파일을 생성하는 것입니다. b) 모든 다이어그램의 형식을 정의하고 이를 변경하려는 경우 이 작업을 모든 다이어그램 파일이 아닌 한 번만 수행하면 됩니다.

너무 복잡하다면 이를 실현할 수 있는 다른 방법을 제안해 주실 수 있나요?

미리 감사드립니다.

답변1

가장 쉽지만 엉성한 해결책은 \newcommand.tex 파일에서 만든 각 tikzpicture에 대해 를 정의한 다음 이를 기본 파일에 삽입하는 것입니다.

다음과 같은 파일을 가질 수 있습니다 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}

코드 출력

관련 정보