외부 라텍스 파일에서 그림(여러 하위 그림 포함)을 어떻게 상호 참조합니까? 현재 xr
패키지와 cleveref
패키지를 사용하고 있는데 아래와 같이 계속해서 오류가 발생합니다.
! Argument of \@fourthoffive has an extra }.
아래는 파일에서 사용하고 있는 설정입니다 main.tex
. 사용자 정의 문서 클래스에 필요한 파일은 다음에서 찾을 수 있습니다.
http://img.mdpi.org/data/MDPI_template.zip?v=20170619
\documentclass[remotesensing,article,submit,moreauthors,pdftex,10pt,a4paper]{mdpi}
\firstpage{1}
\makeatletter
\setcounter{page}{\@firstpage}
\makeatother
\articlenumber{x}
\doinum{10.3390/------}
\pubvolume{xx}
\pubyear{2017}
\copyrightyear{2017}
\externaleditor{Academic Editor: name}
\history{Received: date; Accepted: date; Published: date}
\usepackage{mathrsfs,amsmath}
\usepackage{amssymb}
\usepackage{subfigure}
\usepackage{multirow}
\usepackage{hhline}
\usepackage{bm}
\usepackage{xr}
\externaldocument[ext-]{externaldocument}
\newcommand{\RE}[1]{\Re\left\{#1\right\}}
\newcommand{\IM}[1]{\Im\left\{#1\right\}}
\renewcommand{\vec}[1]{\mathbf{#1}}
\renewcommand{\i}{\mathrm{i}}
\let\oldhat\hat
\renewcommand{\hat}[1]{\oldhat{\mathbf{#1}}}
\newcommand{\p}{\partial}
\newcommand{\w}{\omega}
\newcommand{\FT}[1]{\mathscr{F}\{#1\}}
\newcommand{\iFT}[1]{\mathscr{F}^{-1}\{#1\}}
\usepackage{cleveref}
\Title{Title example}
\Author{author 1}
\AuthorNames{author }
\address{
$^{1}$ \quad address 1 \\
$^{2}$ \quad address 2}
\corres{Correspondence: [email protected]}
\abstract{blahblah}
\keyword{keyword1}
\begin{document}
\cref{ext-fig:example}
\end{document}
외부 라텍스 파일에서 externaldocument.tex
,
\documentclass[a4paper]{article}
\usepackage{mathrsfs,amsmath}
\usepackage{amssymb}
\usepackage{subfigure}
\usepackage{multirow}
\usepackage{hhline}
\usepackage{bm}
\usepackage[section]{placeins}
\usepackage{authblk}
\usepackage{graphicx}
\usepackage{cleveref}
\newcommand{\RE}[1]{\Re\left\{#1\right\}}
\newcommand{\IM}[1]{\Im\left\{#1\right\}}
\renewcommand{\vec}[1]{\mathbf{#1}}
\renewcommand{\i}{\mathrm{i}}
\let\oldhat\hat
\renewcommand{\hat}[1]{\oldhat{\mathbf{#1}}}
\newcommand{\p}{\partial}
\newcommand{\w}{\omega}
\newcommand{\FT}[1]{\mathscr{F}\{#1\}}
\newcommand{\iFT}[1]{\mathscr{F}^{-1}\{#1\}}
\title{external document}
\author[1]{author 1}
\author[2]{author 2}
\affil[1]{affil 1}
\affil[2]{affil 2}
\begin{document}
\maketitle
\renewcommand{\theequation}{S\arabic{equation}}
\renewcommand{\thefigure}{S\arabic{figure}}
\renewcommand{\thetable}{S\arabic{table}}
\begin{figure}[htp!]
\centering
\subfigure[example1]
{\includegraphics[width=0.4\textwidth]{example-image-a.png}}
\subfigure[example2]
{\includegraphics[width=0.4\textwidth]{example-image-a.png}}
\subfigure[example3]
{\includegraphics[width=0.4\textwidth]{example-image-a.png}}
\subfigure[example4]
{\includegraphics[width=0.4\textwidth]{example-image-a.png}}
\caption{main caption.}
\label{fig:example}
\end{figure}
\end{document}
모든 도움에 감사드립니다!!
답변1
hyperref
이전 cleverref
에 로드 중externaldocumnet.tex문제를 해결해야합니다.
이유: mdpi
클래스가 로드되고 hyperref
이로 인해 상호 참조를 위한 많은 매크로가 재정의됩니다. 여기에는 다음에 작성된 매크로가 포함됩니다..aux파일. 여기에 추가 매개변수가 추가됩니다.
cleverref
지원합니다 hyperref
. 이는 추가 매개변수가 필요하다는 것을 의미합니다. 하지만 그들은외부문서.aux파일은 하이퍼참조 없이 컴파일되었기 때문입니다.
\usepackage{hyperref}
의 서문에 추가externaldocumnet.tex이 문제를 해결합니다. 이 작업은 이전에 수행되어야 합니다 \uspackage{cleverref}
. 그렇지 않으면 정의되지 않은 참조가 생성됩니다.