.lmath-container { display: flex; flex-direction: row; align-items: center; background-color: #1e1e1e; border-radius: 12px; overflow: hidden; border: 1px solid rgba(255, 255, 255, 0.1); min-height: 261px; margin: 16px; } .lmath-container .lmath-latex { width: 50%; display: flex; align-items: center; justify-content: center; padding: 24px; box-sizing: border-box; /* `font-size` fija la base desde la que MathJax escala la fórmula. No lleva !important: una declaración directa sobre el elemento gana a la herencia, y el prefijo `.lmath-container` sube la especificidad por si Obsidian fija un tamaño en un ancestro con selector de una sola clase. */ font-size: 24px; /* La fórmula es de solo lectura: mostramos el cursor normal (flecha) en vez del I-beam de texto que el navegador pone por defecto sobre el texto seleccionable de KaTeX. `cursor` se hereda, así que fijarlo aquí cubre todo el árbol de KaTeX y los TRES bloques (obs-graph, obs-system, obs-derivate), que comparten esta clase de panel, más cualquier bloque futuro que la use. */ cursor: default; } .lmath-container .lmath-latex .katex { font-size: 1.6em; } /* Obsidian envuelve las matemáticas de bloque ($$…$$) en un elemento con su propio overflow-x:auto + max-width:100%, que mostraba una barra de scroll NATIVA (con flechas) redundante incluso cuando la fórmula cabe de sobra. Se notaba sólo en una ventana de anchos concreta (p.ej. x^{1000}…x^{9999}), justo cuando ese bloque interno desbordaba su propia caja por unos píxeles. El scroll horizontal de la fórmula lo gestiona el contenedor del plugin (overflow controlado por JS + fades + rueda), así que anulamos por completo el overflow propio de Obsidian/MathJax: dejamos que el contenido fluya hasta el contenedor del plugin, que será el único (y sólo si desborda de verdad) en mostrar su barra fina. Especificidad: en Live Preview, Obsidian scrollea el mjx-container con `.markdown-source-view.mod-cm6 .math-block > mjx-container` (app.css) → especificidad (0,3,1) = 3 clases + el tipo `mjx-container`. La neutralización con solo `.lmath-container .lmath-latex .MathJax` (0,3,0) EMPATABA en clases pero perdía por ese tipo extra, y la barra nativa reaparecía en fórmulas anchas (p.ej. la tupla paramétrica). Para ganarle SIN `!important` (dispara css/no-important) y SIN usar `mjx-container` como selector de tipo (dispara selector-type-no-unknown de stylelint), la línea del mjx-container lleva una clase extra —`.math-block .MathJax` = (0,4,0), gana por conteo de clases 4>3—. El resto del prefijo (2 clases) basta para las demás capas: Obsidian no les fija overflow propio. */ .lmath-container .lmath-latex .markdown-rendered, .lmath-container .lmath-latex p, .lmath-container .lmath-latex .math, .lmath-container .lmath-latex .math-block, .lmath-container .lmath-latex .katex-display, .lmath-container .lmath-latex .math-block .MathJax, .lmath-container .lmath-latex .MJX-TEX { overflow: visible; max-width: none; margin: 0; } .lmath-grafica { width: 50%; height: 261px; position: relative; border-left: 1px solid rgba(255, 255, 255, 0.08); overflow: hidden; box-sizing: border-box; /* Fuente Lora SOLO para el texto de la interfaz del plugin (popovers, etiquetas, botones): el plano aloja todos esos overlays DOM. Se acota aquí a propósito para NO tocar el panel LaTeX (.lmath-latex, hermano) ni el resto de Obsidian. El LaTeX de KaTeX conserva su propia fuente aunque estuviera dentro (fija font-family en sus spans). La familia "Lora" la carga host-obsidian/fuentes.ts en runtime; var(--font-interface) es el fallback mientras carga o si falla. */ font-family: "Lora", var(--font-interface); } .lmath-info { display: none; } .lmath-aviso { width: 100%; text-align: center; font-size: 24px; }