2010-06-21 22 views
17

¿Cuáles son las diferencias entre cómo organizan cajas CSS y Latex? (Cualquiera de los párrafos o elementos gráficos.)¿Cuáles son las diferencias entre los modelos CSS y Latex?

+3

La forma en que escribes eso, suena como una pregunta de tarea ... ¿podrías al menos poner un poco más de esfuerzo en formular una pregunta específica? –

+6

No es tarea. Solo tengo curiosidad sobre las diferencias entre los modelos de motores de diseño.La gente a menudo compara navegadores, pero Latex tiene un enfoque interesante que tiene diferentes limitaciones y tolerancias, y me gustaría ver las diferencias precisas enumeradas para facilitar la comparación formal. (Como soy un experto en ninguno de los dos, me pareció mejor preguntar a los demás.) – Steve

+3

¿Quieres papas fritas con eso? – Robusto

Respuesta

17

El esquema general, de tener una representación en cuadro jerárquica del diseño de página producido a partir del procesamiento del lenguaje de entrada, y que luego se convierte en la página representada, es básicamente similar entre los dos modelos. Las cuatro diferencias que son muy impresionado sobre mí son:

  1. El modelo de cajas CSS es una abstracción robusta, mientras que el diseño de las cajas en el modelo Tex está determinada operacionalmente: como cajas se colocan en el modelo Tex, el código puede separarse y volver a diseñar cuadros anteriores.
  2. Mientras que el modelo de diseño de Tex está orientado al texto, como el modelo de cajas CSS — y, por el contrario, para el modelo de diseño orientado a la página InDesign de Adobe que trata mucho de unir bloques para cubrir cada página — todavía tiene bastantes abstracciones orientadas a la página, como determinar la "maldad" del espacio vertical para colocar notas al pie: no hay nada como eso en el modelo de cajas de CSS que puedo ver. El contexto tiene un modelo de diseño de página más sofisticado, que permite el diseño orientado a texto y a la cuadrícula juntos.
  3. Tanto el modelo CSS como el modelo Tex tienen nociones de cuadros de nivel de bloque (vboxes) y cuadros en línea (hboxes). Sin embargo, si bien puede especificar mediante CSS que se produce un cuadro de nivel de bloque dentro de un cuadro en línea, section 9.2.1 of the CSS2 standard dice que la semántica de esto es convertir el cuadro en línea externo en un cuadro de nivel de bloque, por lo que el modelo de cuadro CSS básicamente prohíbe el bloqueo. las cajas de nivel se producen dentro de los cuadros en línea. Tex, por el contrario, está contento de tener vboxes dentro de hboxes, que ofrece la posibilidad de hacer cosas como colocar fragmentos de texto encima del texto dentro del texto de un párrafo.
  4. Lo más importante es que el modelo CSS no tiene noción de pegamento flexible, lo que hace que el diseño de página escalable sea mucho más complicado, y creo que es el motivo por el que el diseño de páginas web de ancho fijo es dominante.
+0

Gracias! ¡Gran respuesta! Sus puntos (3) y (4) son especialmente interesantes. – Steve

+0

@jfbu: el paralelo más útil es que los hboxes son más bien elementos span y vboxes como elementos div, en términos de cómo tratan sus contenidos. La semántica es definitivamente diferente, sin embargo, con Tex es bastante más simple y con más principios. He tenido la intención de escribir algo sobre esto para [Latexrefman de Karl Berry] (http://www.advogato.org/proj/latexrefman/) durante varios años. Sin duda lo abordaré. años .... –

+0

@CharlesStewart He eliminado los dos comentarios que hice el día de hoy porque contenían un gran error en mi descripción de cómo TeX maneja las vboxes cuando está en modo vertical. Me disculpo por esto. Debe haber tenido un colapso cerebral temporal. Buena respuesta tuya, por cierto ':-)'. Seguí el enlace y pareces aparecer como un potencial documentador solitario ';-)'. – jfbu

1

Las especificaciones para CSS no son difíciles de encontrar y, por supuesto, contienen a chapter on the box model.

La información es un poco más difícil de encontrar para LaTeX, pero se puede mirar here, donde se puede leer:

látex se acumula sus páginas empujando alrededor de las cajas. Al principio, cada letra es una pequeña caja, que luego se pega a otras letras para formar palabras. Estos están nuevamente pegados a otras palabras, pero con pegamento especial, que es elástico para que una serie de palabras se puedan exprimir o estirar para llenar exactamente una línea en la página.

Admito que esta es una versión muy simplista de lo que realmente sucede, pero el hecho es que TeX funciona con pegamento y cajas. Las letras no son las únicas cosas que pueden ser cajas. Puede poner prácticamente todo en una caja, incluidas otras cajas. Cada caja será manejada por LaTeX como si fuera una sola letra.

Creo que esto es muy diferente de CSS, pero para más detalles me temo que tiene que leer libros, p. El libro TeX de Knuth, o el compañero LaTeX de Mittelbach et. Alabama.

Miel.

+0

En realidad, ese capítulo de las especificaciones de CSS no contiene nada sobre el diseño; el diseño se describe en los siguientes capítulos, "Modelo de formato visual" y "Visual formatear los detalles del modelo ". Todo parece más complicado que el modelo de TeX; sería bueno encontrar a alguien que sepa lo suficiente acerca de ambos para compararlos. – ShreevatsaR

Cuestiones relacionadas