그림과 표를 별도의 파일로 자동 내보내기

그림과 표를 별도의 파일로 자동 내보내기

몇년전에 비슷한 질문 본 적 있는데여기, 그러나 효과적인 대답은 없습니다.

문제는 특정 문서의 모든 그림과 표를 자동으로 별도의 파일로 내보낼 수 있다는 것입니다(그림/표 캡션 유무에 관계 없음). 다음은 보다 구체적인 요구 사항 목록입니다.

  1. tikz/pgfplots로 생성된 그림을 별도의 PDF 파일로 내보냅니다(캡션 포함 및 제외, 문서에서와 같이 번호 지정)
  2. tabular, tabularx 및 longtable(캡션 포함 및 제외)을 사용하는 테이블 내보내기
  3. 추출 시 해당 그림/표에 대한 참조를 유지하면서 문서에서 그림/표(및 해당 캡션)를 제거/숨기는 방법이 있습니다.

기여자들이 답변에 사용할 수 있도록 그림과 표가 포함된 샘플 문서를 아래에 만들었습니다.

암호:

\documentclass{article}
\usepackage{tikz}
\usepackage{lipsum}
\usepackage{tabularx}

\title{example}
\author{John Doe}

\begin{document}
\maketitle
\begin{abstract}
\lipsum[1]
\end{abstract}

\section{a Section}
In Figure \ref{fig:one} \lipsum[1]
\begin{figure}[ht]
    \centering
    \begin{tikzpicture}
    \node(a)[draw, rectangle, ultra thick] at (0,0) {Test};
    \node(b)[draw, rectangle, ultra thick] at (2,2) {Test};
    \draw[-latex](a)--(b);
    \end{tikzpicture}
\caption{Sample caption for figure 1}
\label{fig:one}
\end{figure}

\section{another Section}
\begin{table}
    \begin{tabularx}{\textwidth}{llX}
    \hline
    colA&colB&colC \\
    \hline
    test&test&test\\
    \hline
    \end{tabularx}
\caption{Table A}
\label{table:A}
\end{table}
\end{document}

답변1

이는 독립 실행형을 사용하여 .fff파일을 처리하는 방법을 보여줍니다.

5인치 너비는 추측이었습니다. \the\textwidth를 사용하여 각 문서에 사용해야 하는 내용을 인쇄할 수 있습니다.

\begin{filecontents*}{test2.fff}
\begin{figure}
\centering
\includegraphics{example-image}
\caption{A figure without subfigures}
\end{figure}
\efloatseparator

\begin{figure}[htb]
\centering
\begin{subfigure}{.5\textwidth}
  \centering
    \includegraphics[width=.9\textwidth]{example-image}
  \caption{first part}
\end{subfigure}%
%
\begin{subfigure}{.5\textwidth}
  \centering
    \includegraphics[width=.9\textwidth]{example-image}
  \caption{(second part)}
\end{subfigure}%
\caption{A figure with subfigures}
\end{figure}
\efloatseparator
\end{filecontents*}

\documentclass[multi={figure,table}]{standalone}
\usepackage{graphicx}
\usepackage{subcaption}

\setlength{\textwidth}{5in}
\def\efloatseparator{\relax}
\makeatletter
\renewenvironment{figure}[1][]{\minipage{\textwidth}\def\@captype{figure}}{\endminipage}
\renewenvironment{table}[1][]{\minipage{\textwidth}\def\@captype{table}}{\endminipage}
\makeatother

\begin{document}
\input{test2.fff}
\end{document}

관련 정보