¿Por qué & es especial fuera de los entornos tabulares?

¿Por qué & es especial fuera de los entornos tabulares?

Considere los siguientes m(no)nosotros:

\documentclass{standalone}
\begin{document}
Foo & Bar
\end{document}

La construcción fallará con

! Misplaced alignment tab character &.

mientras que generará un PDF perfectamente fino al eliminar el &carácter del código.

Incluso el TeX simple se comporta así y

Foo & Bar
\bye

produce el mismo error.

Solo lo he visto &usado en entornos tabulares y de matriz, nunca fuera de él. ¿Porqué es eso?

¿No se podría definir, por ejemplo, \tabulary \endtabularque &solo es especial dentro del entorno y un carácter normal fuera de estos entornos?

¿Por qué &fuera de los entornos tabulares y de matriz tiene que romperse el documento?

Para reformular la pregunta: WTF es un carácter de tabulación de alineación y ¿dónde lo colocamos normalmente?

Respuesta1

Supongamos que el formato o el usuario no establece el código cat de & (o cualquier otro símbolo) globalmente en 4.

¿Cuáles serían las consecuencias suponiendo que todavía quieras tener localmente ese personaje (y no usar comandos como \nc"nueva columna" todo el tiempo)?

  1. CadaEl entorno tipo tabular tendría que asegurarse de establecer un carácter para que sea la pestaña de alineación, y deben acordar cuál usar. Esto implicaría muchos parches. Naturalmente, esto no es un argumento por el cual no se hizo cuando se escribió el formato.
  2. No sería posible utilizar este carácter si se utiliza el tabular en el argumento de algún comando. Por ejemplo, tendría problemas al utilizar tabulares en pies de página y encabezados, en direcciones de cartas, en listas de autores o en marcos de proyector. Naturalmente, se podría definir un comando como un reemplazo, pero los usuarios tendrían que entender cuándo se necesita este comando.
  3. Sería bastante difícil desactivar localmente la pestaña de alineación. Por ejemplo, actualmente puedes escribir fácilmente una tabla con muchos & como este:

    \documentclass{article}
    
    \begin{document}
    \begingroup
    \catcode`\&=12
    \catcode`!=4
    \begin{tabular}{ll}
    a & b ! c & d
    \end{tabular}
    \endgroup    
    \end{document}
    

    Pero si tabular restablece el código cat de & ya no funcionará. Por lo tanto, necesitaría algunos ganchos para permitir tales manipulaciones, y nuevamente en cada entorno tabular.

En general, muchas cosas se volverían mucho más difíciles para los creadores de paquetes y para los usuarios. Es más fácil aprender a escribir \&.

Respuesta2

Usted pregunta:

¿Por qué & es especial fuera de los entornos tabulares?

Creo que la pregunta no está bien planteada. yo diria que &es especialen todos lados, no sólo tabularlos entornos exteriores. El personaje &tienecódigo de categoría 4- "pestaña de alineación" - en todos los formatos TeX y LaTeX que he encontrado. Esta configuración de catcode permite que se utilice como carácter de tabulación de alineación no solo en tabularentornos similares (por ejemplo, tabular*, tabularx, longtableetc.), sino también arrayen entornos, el eqnarrayentorno obsoleto, algunos de los entornos matemáticos de visualización del amsmathpaquete, el IEEEeqnarrayentorno de IEEEtrantoolspaquete, y probablemente bastantes entornos adicionales.

La virtud de asignar catcode 4 de &forma predeterminada es que todos los escritores de paquetes pueden (y, francamente,debería) escriben su código asumiendo que &tiene catcode 4. Sin este valor predeterminado, algunos escritores de paquetes elegirían &como carácter de pestaña de alineación, mientras que otros podrían elegir @o quién sabe qué más. Un resultado así sería claramente inferior para la mayoría de los usuarios, ya que tendrían que memorizar qué personaje o personajes sirven como función de pestaña de alineación en qué entornos.

Por el contrario, si uno no quiere &ser especial y no quiere modificar su código cat, debe ingresarlo como \&.

información relacionada