Domanda

Non sto chiedendo di convertire un documento LaTeX in HTML.

Quello che mi piacerebbe poter fare è avere un modo per usare i comandi matematici LaTeX in un documento HTML e farlo apparire correttamente in un browser. Questo potrebbe essere fatto lato server o client.

È stato utile?

Soluzione

MediaWiki può fare quello che stai cercando. Utilizza Texvc ( http://en.wikipedia.org/wiki/Texvc ) che " convalida (AMS) espressioni matematiche LaTeX e le converte in grafica HTML, MathML o PNG. " Sembra quello che stai cercando.

Consulta l'articolo di Wikipedia su come gestiscono le equazioni matematiche qui: http: //en.wikipedia. org / wiki / aiuto: Formula . Hanno anche un ampio riferimento su LaTeX e pro / contro dei diversi tipi di rendering (PNG / MathML / HTML).

  

MediaWiki utilizza un sottoinsieme del markup TeX,   tra cui alcune estensioni da LaTeX   e AMS-LaTeX, per matematica   formule. Genera PNG   immagini o markup HTML semplice,   a seconda delle preferenze dell'utente e del   complessità dell'espressione. Nel   futuro, poiché più browser sono più intelligenti,   sarà in grado di generare potenziato   HTML o persino MathML in molti casi.   (Vedi blahtex per informazioni su   lavori in corso sull'aggiunta del MathML   supporto).

     

Più precisamente, MediaWiki filtra il   markup tramite Texvc, che a sua volta   passa i comandi a TeX per il   rendering effettivo. Quindi, solo un limitato   parte dell'intero linguaggio TeX è   supportato; vedi sotto per i dettagli.   ...

     

Pro di HTML

     
      
  • Le formule HTML in linea si allineano sempre correttamente con il resto dell'HTML   testo.
  •   
  • Lo sfondo, la dimensione del carattere e la faccia della formula corrispondono al resto dell'HTML   contenuto e aspetto rispetta   Impostazioni CSS e browser.
  •   
  • Le pagine che utilizzano HTML verranno caricate più velocemente.
  •   
     

Pro di TeX

     
      
  • TeX è semanticamente superiore all'HTML. In TeX, " x " si intende   "variabile matematica x", mentre in   HTML " x " potrebbe significare qualsiasi cosa.   Le informazioni sono state irrevocabilmente perse.   Questo ha molteplici vantaggi:      
        
    1. TeX può essere trasformato in HTML, ma non viceversa. Questo significa che acceso   il lato server possiamo sempre   trasforma una formula, in base alla sua   complessità e posizione all'interno del   testo, preferenze dell'utente, tipo di   browser, ecc. Pertanto, dove   possibile, tutti i vantaggi dell'HTML possono   essere mantenuto, insieme al   vantaggi di TeX. È vero che il   la situazione attuale non è l'ideale, ma   non è una buona ragione per lasciar perdere   informazioni / contenuti. È più un   motivo per contribuire a migliorare la situazione.
    2.   
    3. TeX può essere convertito in MathML per browser che lo supportano, quindi   mantenendo la sua semantica e permettendola   essere reso come un vettore.
    4.   
  •   
  • TeX è stato specificamente progettato per le formule di composizione, quindi lo è l'input   più facile e più naturale, e l'output è   più esteticamente piacevole.
  •   
  • Durante la scrittura in TeX, gli editor non devono preoccuparsi del supporto del browser, poiché   viene reso in un'immagine dal   server. Formule HTML, dall'altro   mano, può finire per essere reso   incoerente delle intenzioni dell'editor   (o per niente), da alcuni browser o   versioni precedenti di un browser.
  •   

Altri suggerimenti

Preferisco MathJax rispetto alle soluzioni che scelgono di eseguire il rendering delle immagini (che causa problemi di aliasing).

MathJax è un motore di rendering Javascript open source per la matematica. Utilizza CSS e Webfonts invece di immagini o flash e può eseguire il rendering di LaTeX o MathML. In questo modo non hai problemi con lo zoom ed è persino compatibile con lo screen reader.

Una volta ho sviluppato un plugin jQuery che in effetti fa questo: jsLaTeX

Ecco l'esempio più semplice di come può essere utilizzato:

$(".latex").latex();


<div class="latex">  
    \int_{0}^{\pi}\frac{x^{4}\left(1-x\right)^{4}}{1+x^{2}}dx =\frac{22}{7}-\pi  
</div>

Quanto sopra genererà la seguente equazione LaTeX sulla tua pagina:

 Equazione

La Pagina dimostrativa del plugin contiene più esempi di codice e demo.

Se vuoi incorporare la matematica come immagini, puoi dare un'occhiata a MathTran .

Se preferisci che la matematica sia inserita nella pagina principalmente come testo (usando le immagini solo quando necessario), jsMath potrebbe essere quello che stai cercando.

Storicamente, il rendering di LaTeX e l'estrazione di un'immagine è stata la soluzione migliore per la matematica multi-piattaforma e cross-browser. Sempre più, il MathML sta diventando un'alternativa ragionevole. Ecco un convertitore online che emetterà MathML dal markup Tex, che tu può quindi essere incorporato nella tua pagina web. So che i browser basati su Gecko come Firefox e Camino funzionano bene con MathML, così come Opera. IE non funziona immediatamente, ma ci sono plugin disponibili (come questo ) .

Texvc è un'ottima scoperta! L'output HTML vanilla dovrebbe funzionare bene se sei principalmente interessato a apice / pedice / corsivo / simboli comuni, ma per cose più complesse, tieni presente che i siti orientati alla matematica più popolari là fuori (ad esempio Wolfram ) genera immagini, quindi potrebbero esserci solo così tante cose che puoi fare se sei interessato alla compatibilità tra browser: - (

Ho letto tutte le risposte qui e sono sorpreso che nessuno abbia menzionato la conversione da PDF a HTML. Se usi pdf2htmlEX , creerà pagine web perfette da un pdf . Devi solo compilare il tuo lattice in pdf (pdflatex).

Di default genera un singolo file html, con i contenuti del tuo PDF realizzati in CSS, javascript e html. Ho provato molti strumenti per convertire il lattice in html e questa è di gran lunga la soluzione migliore e più semplice che ho trovato .

Puoi provare LaTexRenderer . Non so se sia il migliore, ma funziona.

Sto iniziando a esaminare questo da solo e sembra che le cose si siano evolute. Mi sono imbattuto questa demo comparativa di KaTeX e MathJax .


Breve storia (al momento della stesura di questo documento) :

  • Le frazioni all'interno di una matrice si incontrano in KaTeX, ma non in MathJax (vedi "prodotto incrociato")
  • All'interno del simbolo della radice quadrata (o ennesima), esponenti e radici quadrate nidificate sembrano imbattersi nella linea superiore orizzontale (vedi " Frazioni ripetute " e " ennesima radice " ;.)
  • MathJax ha un carattere leggermente più audace e più grande, KaTeX è leggermente più magro.

Ma forse il più decisivo di tutti, ho scoperto che l'elaborazione totale di MathJax per la pagina è stata in media di 1674 ms per tre sessioni. Al contrario, KaTeX ha una media di 128 ms , che è un ordine di grandezza migliore!


Esistono altri punti di confronto da considerare quando si guardano i rispettivi siti Web:

  • Il sito Web principale di KaTeX afferma di supportare la maggior parte, ma non tutta, di LaTeX. Elencano le loro funzioni supportate qui . MathJax esprime anche alcune delle sue limitazioni . Anche se è difficile sapere da una breve scia di questi che alla fine ha "meglio" supporto. Alcuni blog che ho incontrato dicono che KaTeX ha meno supporto, ma altri hanno affermato che KaTeX ha migliorato significativamente il supporto negli ultimi anni.
  • Il sito Web MathJax pubblicizza il supporto di MathML sia per l'input che per l'output. Alcuni problemi di KaTeX sul suo github qui e qui indicano che supportano MathML per l'output, ma non per l'input (non so molto sul MathML, ma almeno sembra importante se vuoi aiutare gli utenti con disabilità visive).
  • Rendering KaTeX in modo sincrono , quindi non ridisegna la pagina (parte di ciò che la rende più veloce). Ma in cambio blocca temporaneamente il browser.
  • StackOverflow è un partner di MathJax (vedi qui ). È utilizzato su alcuni siti StackExchange, sebbene non su StackOverflow stesso a causa di rendimento del tempo di caricamento della pagina. Al contrario, KaTeX è stato sviluppato dalla Kahn Academy.

Ti incoraggio sicuramente a guardare il MathML se si adatta a quello che stai cercando, ma un po 'di lavoro con JsTeX potrebbe darti tutto il necessario.

Puoi utilizzare tex2gif . Prende uno snippet LaTeX, esegue LaTeX e produce un PNG (o GIF). Facile da incorporare, facile da scrivere. Funziona per me.

Puoi anche controllare tex2png .

Autorizzato sotto: CC-BY-SA insieme a attribuzione
Non affiliato a StackOverflow
scroll top