Programa para visualizar registros matemáticos en html. Formas básicas de insertar fórmulas en documentos HTML
Vlad Merzhevich
Realmente no me gusta MathML: es engorroso, inconveniente, redundante y no apto para edición manual. Intenta cambiar rápidamente un carácter en una fórmula larga y odiarás MathML. Ese es el caso de TEX, el viejo Knuth sabía lo que hacía y escribió el sistema por sí mismo; más tarde, TEX se convirtió en el estándar de facto en la comunidad científica para escribir fórmulas. Si está familiarizado con HTML y CSS, comprender TEX no será difícil, es intuitivo y tiene una sintaxis algo similar a estos lenguajes;
Sin embargo, persiste el problema de cómo mostrar la fórmula en la página para que se muestre correctamente en todos los navegadores. El método más universal sigue siendo la imagen, pero necesitamos automatizar y simplificar el proceso de creación de imágenes, para lo cual están diseñados los diferentes servicios, que se analizarán más adelante.
Editor de ecuaciones LaTEXEs mejor empezar a familiarizarse con el mundo de las fórmulas con este servicio, ya que cuenta con un pequeño editor en línea a través del cual puedes entender LaTEX: es una extensión del sistema TEX con la misma sintaxis. Una vez ingresada la fórmula, el resultado se puede ver haciendo clic en el botón "Renderizar ecuación" (Fig. 1).
Arroz. 1. Vista del editor en la página.
La fórmula se agrega a su página mediante una etiqueta. , como se muestra en el ejemplo 1.
La fórmula en formato TEX se inserta en la dirección después del signo de interrogación y se escribe en una línea. Si necesita aumentar o disminuir el tamaño de una imagen, se utilizan las siguientes palabras clave.
- \pequeño (tamaño 8pt)
- \pequeño (10pt)
- \normal (12 puntos)
- \grande (14pt)
- \enorme (20pt)
La palabra clave debe insertarse antes de la fórmula como se muestra a continuación.
En la página, una fórmula tan ampliada se ve así (Fig. 2).
Arroz. 2. Fórmula en la página.
GoogleLamentablemente Google ha dejado de dar soporte a este servicio y se desconoce su destino futuro, pero por ahora sigue funcionando con normalidad y se puede utilizar.
El principio de inserción de una fórmula es el mismo que el del servicio anterior. Usamos la etiqueta y como dirección nos referimos al servicio de Google y le pasamos la fórmula en formato TEX. La dirección en sí generalmente se escribe así.
https://chart.googleapis.com/chart?cht=tx&chl=formula
El ejemplo 2 muestra la suma de la fórmula de distribución normal.
Para cambiar el tamaño de la fórmula, podemos usar las palabras clave \tiny, \large, etc., agregándolas antes de la expresión. Google también tiene otra forma de controlar el tamaño de una imagen; para hacer esto, debes agregar el parámetro chs=x a su dirección, por ejemplo chs=200x20. Tenga en cuenta que las proporciones de la imagen pueden distorsionarse mucho si elige la relación de aspecto incorrecta. El único parámetro (chs=40) se percibe como la altura de la imagen, el ancho se calculará automáticamente (ejemplo 3).
Ejemplo 3: tamaño de imagen
En la figura se muestra una imagen de la fórmula con una altura de 40 píxeles. 3.
Arroz. 3. Fórmula con una altura determinada
MatemáticasJaxSi su sitio necesita mostrar muchas fórmulas y símbolos matemáticos diferentes, entonces tiene sentido incluir la biblioteca local MathJax. Esta biblioteca funciona en todos los navegadores, incluidas las versiones anteriores de IE, así como en iPhone, iPad y Android, y es compatible con la notación MathML, TEX y AsciiMath.
Para utilizar MathJax, necesita descargar la biblioteca y todos los archivos necesarios para su funcionamiento y copiarlos a su servidor. Puede hacerlo más fácilmente y descargar el script a través de la red, como se muestra a continuación.
El archivo JS principal ocupa unos 50 KB, pero durante el funcionamiento carga varias fuentes y otros scripts. El resultado es de unos doscientos kilobytes. Parece mucho, pero debemos tener en cuenta que la mayoría de archivos se almacenan en caché la primera vez que se descargan y la siguiente vez que no se descargan los archivos.
De forma predeterminada, las fórmulas se resaltan usando la construcción $$...$$ y \[...\], y los caracteres en minúscula y las expresiones se resaltan usando \(...\) (ejemplo 4).
Ejemplo 4: uso de MathJax
MatemáticasJax
Cuando \(a \ne 0\) obtenemos dos raíces de la ecuación \(ax^2 + bx + c = 0\), para encontrarlas utilizamos la fórmula $$(x)_(1,2) = (- b \pm \ sqrt(b^2-4ac) \over 2a).$$
El resultado de este ejemplo se muestra en la Fig. 4.
Arroz. 4. Fórmulas en la página.
Si hace clic derecho en la fórmula, se abrirá un menú a través del cual podrá configurar algunos parámetros y ver la fuente en forma de TEX o MathML (Fig. 5).
Arroz. 5. Menú contextual
Todo usuario que quiera publicar en Internet textos que contengan fórmulas matemáticas o físicas se enfrenta al problema de colocar estas fórmulas en documentos HTML.
¿Cómo hacer esto?
Veamos los 3 métodos más populares:
Método 1: insertar fórmulas en forma de imágenes. Usando Word y la ecuación de Microsoft
La mayoría de las veces, las fórmulas en las páginas HTML se presentan en forma de gráficos (rasterizados o vectoriales), pero este método tiene desventajas obvias. Por ejemplo, una fórmula de dibujo es casi imposible de editar y su calidad una vez impresa suele dejar mucho que desear.
Para fórmulas simples que no requieren el uso de signos integrales, sumas con límites, fracciones complejas, etc., puedes limitarte a las herramientas del propio Word.
Para configurar subíndices y superíndices, debe seleccionar el texto deseado y ir al elemento del menú Formato > Fuente.
Para insertar caracteres griegos y varios caracteres especiales en la fórmula, vaya al elemento de menú Insertar > Símbolo y seleccione la fuente y el símbolo deseados. Como espacio al escribir fórmulas, debe usar el llamado espacio sin separación, que se puede encontrar en el menú Insertar > Símbolo o usar un atajo de teclado especial presionando simultáneamente Ctrl+Shift+Espacio.
Para un conjunto de fórmulas complejas, existe el editor de ecuaciones Microsoft Equation, que se incluye en Microsoft Office. Tenga en cuenta que MS Equation no siempre está instalado de forma predeterminada y debe cuidar su disponibilidad al instalar el editor de Word y luego, para facilitar su uso, agregar el botón correspondiente al menú del editor de Word. Después de esto, para configurar fórmulas, simplemente haga clic en el botón o vaya al elemento de menú Insertar > Objeto > Ecuación de Microsoft. También puedes llamar al editor de fórmulas en modo fuera de línea.
Las desventajas del primer método son su complejidad, violación del orden de entrada de la fórmula (por ejemplo: primero los corchetes, luego la expresión en ellos), además, las fórmulas se perciben como una imagen separada del texto y cuando Si se cambia la fuente, ésta puede volverse desproporcionada.
Método 2: insertar fórmulas utilizando el marcado MathML.
El principio general del uso de MathML es que las construcciones matemáticas están integradas en un documento HTML normal y (si el navegador o programa especial admite esta especificación) se reproducen adecuadamente cuando el documento se carga desde Internet.
Lo primero que encontrará en MathML y lo que distingue a este lenguaje de marcado de sus análogos es el uso de dos formas de codificar expresiones. Uno de ellos se basa en la transmisión directa de la sintaxis de la fórmula (presentación), el otro, por el contrario, refleja la semántica de la expresión (contenido). En pocas palabras, el primer método implica registrar una fórmula sin conexión con su significado, el segundo, por el contrario, refleja su contenido matemático.
Ejemplo de escritura en MathML:
El resultado será la fórmula:
Desventajas: no todos los navegadores admiten "MathML"; Un estudio exhaustivo de "MathML" es engorroso y difícil para el usuario medio.
Método 3: insertar fórmulas utilizando el marcado TeX.
Su creador es Donald Knuth.
El sistema TeX es un sistema de composición tipográfica diseñado para crear libros, especialmente aquellos con muchas fórmulas matemáticas. Preparar su manuscrito en formato TeX significa que le dice a la computadora exactamente cómo convertir el texto de la página.
El sistema TeX no tiene su propio editor. Para diseñar un archivo tex, puede utilizar cualquier editor, por ejemplo, Notepad o WinEdt, especialmente orientado al conjunto de archivos TeX. El texto se formatea mediante un sistema de etiquetas similar a las etiquetas HTML.
Si escribimos la siguiente línea
MathJax le permite incluir fórmulas matemáticas en páginas web utilizando el marcado LaTeX, MathML o AsciiMath, después de lo cual las fórmulas serán procesadas por una biblioteca de JavaScript y convertidas a HTML, SVG o MathML para mostrarlas en cualquier navegador moderno.
Actualmente, MathJax le permite utilizar tanto una copia de esta biblioteca en su propio servidor como una versión de la biblioteca del CDN cdn.mathjax.org:
La configuración TeX-AMS-MML_HTMLoMML es uno de los archivos de configuración más comunes (y por lo tanto más grandes). Aunque el uso de esta configuración puede no ser efectivo, se proporciona aquí para permitirle comenzar a usar MathJax rápidamente.
Referencia rápidaDado que el marcado LaTeX me pareció más conciso, a continuación solo se describen las preguntas sobre su uso cuando se trabaja con MathJax:
Los corchetes descritos anteriormente no se ajustan a la fórmula. Es decir, si escribe (\frac(\sqrt x)(y^3)) , los paréntesis serán demasiado pequeños: \((\frac(\sqrt x)(y^3))\) . El uso de \left(y \right) ajustará automáticamente el tamaño de los corchetes al tamaño de la fórmula que rodean: \left(\frac(\sqrt x)(y^3)\right) coincide con \(\left(\ frac(\sqrt x)(y^3)\right)\) . \left y \right se aplican a todos los siguientes tipos de paréntesis: (y) \(\left(x\right)\) , [ y ] \(\left\) , \( y \) \(\left\( x\ derecha\)\) , | \(\left|x\right|\) , \langle y \rangle \(\left\langle x\right\rangle\) , \lceil y \rceil \(\left\lceil x\right\rceil\) , y \lfloor y \rfloor \(\left\lfloor x\right\rfloor\) .
También se indican corchetes invisibles. : \left.\frac12\right\rbrace coincide con \(\left.\frac12\right\rbrace\) ;
- utilice \mathbb o \Bbb en negrita para "pizarra negra": \(\mathbb(CHNQRZ)\) ;
- use \mathbf para negrita: \(\mathbf(ABCDEFGHIJKLMNOPQRSTUVWXYZ)\) \(\mathbf(abcdefghijklmnopqrstuvwxyz)\) ;
- use \mathtt para una fuente de "máquina de escribir": \(\mathtt(ABCDEFGHIJKLMNOPQRSTUVWXYZ)\) \(\mathtt(abcdefghijklmnopqrstuvwxyz)\) ;
- use \mathrm para fuente "romana": \(\mathrm(ABCDEFGHIJKLMNOPQRSTUVWXYZ)\) \(\mathrm(abcdefghijklmnopqrstuvwxyz)\) ;
- use \mathsf para una fuente sans-serif: \(\mathsf(ABCDEFGHIJKLMNOPQRSTUVWXYZ)\) \(\mathsf(abcdefghijklmnopqrstuvwxyz)\) ;
- use \mathcal para escritura "caligráfica": \(\mathcal( ABCDEFGHIJKLMNOPQRSTUVWXYZ)\) ;
- use \mathscr para una fuente "script" (como si estuviera escrita a mano): \(\mathscr(ABCDEFGHIJKLMNOPQRSTUVWXYZ)\) ;
- use \mathfrak para la fuente "Fraktur" (estilo alemán antiguo): \(\mathfrak(ABCDEFGHIJKLMNOPQRSTUVWXYZ) \mathfrak(abcdefghijklmnopqrstuvwxyz)\) ;
- \lt \gt \le \ge \neq \(\lt\, \gt\, \le\, \ge\, \neq\) . Puedes usar \not para poner una barra diagonal en casi cualquier cosa: \not\lt \(\not\lt\) , pero esto a menudo se ve feo;
- \times \div \pm \mp \(\times\, \div\, \pm\, \mp\) . \cdot corresponde al punto en el centro: \(x \cdot y\) ;
- \cup \cap \setminus \subset \subseteq \subsetneq \supset \in \notin \emptyset \varnothing \(\cup\, \cap\, \setminus\, \subset\, \subseteq \,\subsetneq \,\supset \, \in\, \notin\, \emptyset\, \varnothing\) ;
- (n+1 \elija 2k) o \binom(n+1)(2k) \((n+1 \elija 2k)\) ;
- \to \rightarrow \leftarrow \Rightarrow \Leftarrow \mapsto \(\to\, \rightarrow\, \leftarrow\, \Rightarrow\, \Leftarrow\, \mapsto\) ;
- \land \lor \lnot \forall \exists \top \bot \vdash \vDash \(\land\, \lor\, \lnot\, \forall\, \exists\, \top\, \bot\, \vdash \, \vDash\) ;
- \star \ast \oplus \circ \bullet \(\star\, \ast\, \oplus\, \circ\, \bullet\) ;
- \approx \sim \simeq \cong \equiv \prec \(\approx\, \sim \, \simeq\, \cong\, \equiv\, \prec\) ;
- \infty \aleph_0 \(\infty\, \aleph_0\) \nabla \partial \(\nabla\, \partial\) \Estoy \Re \(\Estoy\, \Re\) ;
- para comparaciones de módulos utilice \pmod , por ejemplo, a\equiv b\pmod n \(a\equiv b\pmod n\) ;
- \ldots coincide con los puntos suspensivos en \(a_1, a_2, \ldots,a_n\) ; \cdots coincide con los puntos suspensivos en \(a_1+a_2+\cdots+a_n\) ;
- Algunas letras griegas tienen una forma de escritura para representar una variable: \epsilon \varepsilon \(\epsilon\, \varepsilon\), \phi \varphi \(\phi\, \varphi\), etc. “Escrito a mano” l en minúscula: \ell \(\ell\) .
Detexify le permite dibujar un personaje en una página web y luego enumera los caracteres \(\TeX\) que se parecen al dibujado. No se garantiza que esto funcione también en MathJax, pero es un buen lugar para empezar a buscar. Para comprobar si un comando es compatible, consulte la lista actual de comandos \(\LaTeX\) compatibles en MathJax.org.
Para usar texto sin formato, use \text(...) : \(\(x\in s\mid x\text( es extra grande)\)\) ;
Antes de HTML5, usar fórmulas era un verdadero castigo. Juzgue usted mismo: en 2005 era necesario tener a mano un navegador especial o dividir el texto en HTML e insertar imágenes o PDF. La búsqueda y otras operaciones de edición y/o visualización/papel eran una tarea ambigua, a la que se dedicaban monografías enteras.
En 2012 ya era más sencillo. Ahora es posible conectar los complementos necesarios (Firemath para Firefox y Daum Equation Editor para Chrome). Pero la ambigüedad de los estándares (y el soporte) nos obligó a escribir el mismo artículo para cada uno de los navegadores (y para sus versiones). O salude a los usuarios con el saludo mágico "Su navegador debe actualizarse/agregarse con una extensión".
¿Incómodo? - ¡Sí! ¿Llevó mucho tiempo encontrar una solución universal? - ¡Sí! ¿Te hace pensar qué tipo de grabación es mejor (presentación o contenido), qué convertidor usar (y solo hay una docena de ellos que son generalmente conocidos)? - ¡SÍ! ¡SÍ! ¡SÍ!
Como resultado, el trabajo de publicación se convirtió en dominar dos o tres léxicos de marcado y estudiar el trabajo de al menos un programa de transcodificación.
Ahora, con la llegada de HTML5, todo se ha vuelto mucho más fácil. Hay un contenedor nuevo en él.
Cada instancia válida de MathML debe estar dentro de este contenedor.
No permite el anidamiento, pero puede haber una cantidad arbitraria de otros elementos secundarios en su interior.
clase, identificación, estilo
Sujeto a uso junto con hojas de estilo.
directorio
Indica la dirección de la fórmula: ltr - de izquierda a derecha o rtl - de derecha a izquierda.
árbitro
Se utiliza para establecer un hipervínculo al URI especificado.
matemáticasantecedentes
Color de fondo. Puede utilizar nombres de colores #rgb, #rrggbb y HTML.
color matematico
Color del texto. Puede utilizar #rgb, #rrggbb y nombres de colores HTML.
mostrar
Este atributo especifica el método de salida. Valores posibles:
- bloque: significa que este elemento se mostrará fuera del rango de texto actual, como un bloque, que se puede colocar en cualquier lugar sin cambiar el significado del texto;
- en línea: significa que este elemento aparecerá dentro del rango actual de texto y no se puede sacar de él sin cambiar el valor de ese texto.
El valor predeterminado está en línea.
Modo