\begin{figure}
を使用した後、または\begin{table}
を使用した後に、「外部 PAR モードではありません」というエラー メッセージが表示されました\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
\insert
は TeX プリミティブです。したがって、insert
float を定義すると、\insert
(および\endinsert
) が再定義され、これが問題の原因となります。
これを解決するには、フロートを次のように定義しますinsertion
。
\usepackage{float}
\newfloat{insertion}{tbh}{lop}
\floatname{insertion}{insert}
%...
\begin{insertion}
%...
\end{insertion}
答え2
float.sty
危険な定義について警告するように修正できます。定義する\begin{whatever}
必要があるためです。あなたの場合、パッケージは現状のままでは\whatever
再定義する \insert
これは非常によくないことです。なぜなら は\insert
プリミティブだからです (これは float のコンテキストで使用されますが、これは実際には関係ありません。ただし、不可解なエラー メッセージの原因です)。
\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}
このパッケージは、選択された環境名がすでに使用されている場合、デフォルトで警告を発します。