외부 파 모드가 아닙니다. 현재 어떤 모드에 있는지 어떻게 알 수 있나요?

외부 파 모드가 아닙니다. 현재 어떤 모드에 있는지 어떻게 알 수 있나요?

\begin{figure}를 사용 하거나 \begin{table}사용한 후에 "외부 파 모드가 아닙니다"라는 오류 메시지가 나타납니다 \footnote.

맞습니다 \footnote.

아마도 내가 사용하고 있는 패키지에 문제가 있는 것 같습니다.

이 문제가 어디서 발생했는지 알 수 있는 방법이 있나요?

\documentclass[14pt,fleqn,twoside,openright]{book}
\usepackage[square,sort,comma,numbers]{natbib}
\bibliographystyle{siam} 
\usepackage{amsmath,amsfonts}\usepackage{amssymb}
\usepackage[bottom]{footmisc} 
\usepackage{graphicx,xcolor}
\usepackage{multicol,enumerate}
\usepackage{wrapfig}
\usepackage{framed}
\usepackage{fancybox}
\usepackage{enumerate}

\usepackage{subfigure}
\usepackage[avantgarde]{quotchap} 
\usepackage{makeidx}
\makeindex
\usepackage{fancyhdr}
\usepackage[heightrounded,footskip=50pt,headheight=30pt,head=17pt,headsep=20pt,twoside,a4paper,
bindingoffset=1.4 cm,left=1.4cm,right=1.5cm,top=3cm,bottom=3.5cm]{geometry}

\usepackage{float}
\newfloat{insert}{tbh}{lop}
\floatname{insert}{insert}
\newfloat{program}{tbhp}{lop}
\floatname{program}{Program}
\begin{document}
\footnote{test}
\begin{insert}[tb]
\centering
\includegraphics[width=0.7\textwidth, angle=0]{insertion}
\end{insert}
\end{document}

답변1

\insertTeX 프리미티브입니다. 따라서 부동소수점을 정의하면 문제의 원인인 (및 )이 insert재정의됩니다 .\insert\endinsert

이 문제를 해결하려면 float를 다음과 같이 정의하십시오 insertion.

\usepackage{float}
\newfloat{insertion}{tbh}{lop}
\floatname{insertion}{insert}

%...

\begin{insertion}
  %...
\end{insertion}

답변2

float.sty위험한 정의에 대해 경고하도록 수정할 수 있습니다 . 이후 정의가 \begin{whatever}필요합니다 . \whatever귀하의 경우 패키지는 그대로 유지됩니다.재정의하다 \insert그리고 이것은 매우 나쁜 일입니다. 왜냐하면 이것은 \insert원시적이기 때문입니다(이것은 부동 소수점의 맥락에서 사용되지만 이것은 수수께끼의 오류 메시지의 이유이기는 하지만 실제로는 관련이 없습니다).

\documentclass{book}

\usepackage{float}

% fix \newfloat
\makeatletter
\let\@float@newfloat\newfloat
\renewcommand{\newfloat}[3]{%
  \expandafter\@ifdefinable\csname #1\endcsname{%
    \@float@newfloat{#1}{#2}{#3}%
  }%
}
\makeatother
% end of fix

\newfloat{insert}{tbh}{lop}
\floatname{insert}{insert}
\newfloat{program}{tbhp}{lop}
\floatname{program}{Program}
\begin{document}
\footnote{test}
\begin{insert}[tb]
\centering
\includegraphics[width=0.7\textwidth, angle=0]{insertion}
\end{insert}
\end{document}

이 수정으로 인해 오류가 발생합니다.

! LaTeX Error: Command \insert already defined.
               Or name \end... illegal, see p.192 of the manual.

See the LaTeX manual or LaTeX Companion for explanation.
Type  H <return>  for immediate help.
 ...                                              

l.16 \newfloat{insert}{tbh}{lop}

그러면 이라는 float 유형을 정의할 수 없다는 것이 분명해집니다 insert. 이제 다른 이름을 선택하십시오.

newfloat해당 기능이 필요하지 않은 경우 최신 패키지를 사용하는 것이 좋습니다 \restylefloat.

\documentclass{book}

\usepackage{newfloat}

\DeclareFloatingEnvironment[
  filext=lop,
  listname={List of Inserts},
  name=Insert,
  placement=htbp,
]{insertion}

\begin{document}
\footnote{test}

\begin{insertion}[tbp]
\centering
\includegraphics[width=0.7\textwidth, angle=0]{insertion}
\end{insertion}

\end{document}

이 패키지는 선택한 환경 이름이 이미 사용된 경우 기본적으로 경고합니다.

관련 정보