Error o característica del mecanismo de flotadores.

Error o característica del mecanismo de flotadores.

Si escribo $\section{Second section}$o

\begin{enumerate}
\item first bla bla 
\item second bla bla
$\item last bla bla$
\end{enumerate}

Recibo el mensaje de error ! Missing $ inserted...o! LaTeX Error: Command \item invalid in math mode.

Pero si compilo el siguiente código, obtengo el resultado (correcto), pero digamos, un resultado de cadena.

\documentclass{article}
\usepackage{lipsum}

\begin{document}
\section{First section}
\lipsum[1]
\begin{table}
\section{Second section}
\caption{Just a table}
\end{table}
\begin{enumerate}
\item first bla bla
\item second bla bla
\begin{table}
\item last bla bla
\caption{Just a table}
\end{table}
\end{enumerate}
\section{Last section}
\lipsum[1]

\end{document}

ingrese la descripción de la imagen aquí

¿Es esto un error?Los objetos flotantes pueden ir (a cualquier lugar), por ejemplo, \itemantes de los elementos anteriores o, peor aún, dentro de los elementos de otro enumerate.

¿Es una característica?La numeración sigue siendo correcta y es posible que se necesite.

pregunta principal:por qué el látex no evita \sectionque \itemlos comandos entren en un entorno flotante y, a la inversa, sabemos que eso \captionno funciona fuera de entornos flotantes. es decir, por qué no hay

\gdef\@infloaterr#1{%
   \relax
   \ifx\@captype\@undefined
   \else
 \@latex@error{Command \protect#1  inside float}
   \fi}

Similar a \@inmatherr.

Respuesta1

Hay muchas entradas incorrectas que no generan un mensaje de error. ( \section[z]{\section{aa}}Por ejemplo).

\sectiondentro de un flotador hay un error, simplemente no está atrapado por el sistema (se habría necesitado una cantidad excesiva de memoria para hacerlo en el momento en que se diseñó el látex).

La distinción entre matemáticas y no matemáticas está integrada en tex; es mucho más fácil probar eso que probar cada comando en cada lugar donde no tiene sentido.

De manera similar, \captionnecesita saber qué tipo de subtítulo crear (almacenado internamente en \@captype) para que la prueba sea mucho más fácil ya que la definición predeterminada es que genera un error, \captionsolo funciona localmente en contextos que habilitan subtítulos.

información relacionada