Neueste Tipps zu tex4ht: - Konvertierung von LaTeX nach HTML

Installation

  • Wichtig ist, dass MiKTeX in c:\MiKTeX installiert ist. Leerstellen im Pfad funktionieren nicht (bzw. man muss dann PROGRA~1 usw. nutzen, was unter Windows 7 schwierig zu sein scheint)
  • Ghostscript und ImageMagick installieren
    • Am besten geht's unter Cygwin. Hier dann im Windows-PATH c:\cygwin\bin ganz nach vorne stellen, damit convert.exe von Cygwin als erstes aufgerufen wird und nicht convert.exe von Windows.
      • Das Problem mit gs vs. hard-coded gswin32c.exe besteht anscheinend nicht mehr. Falls doch, dann die “echte” Win32-Binary von Ghostscript installieren
    • Ansonsten: GhostScript und ImageMagick
      • Hier auch auf die Pfade achten (s.o.)
  • Den Pfad c:\tex4ht\texmf muss man MiKTeX bekannt machen:
    1. Das MiKTeX “Settings” Programm starten
    2. Reiter “Roots” wählen
    3. “Add…”
    4. c:\tex4ht\texmf auswählen
    5. “OK”
    6. Den Pfad c:\tex4ht\texmf ganz nach oben schieben
    7. “OK”
  • Profis checken http:svn.gnu.org.ua/sources/tex4ht/trunk nach c:\tex4ht aus. * Die Variante für Normalos geht derzeit nicht: Von der tex4ht-update-site tex4ht.tar.gz herunterladen und nach c:\tex4ht entpacken, so dass c:\tex4ht\bin existiert. * In c:\tex4ht\texmf\tex4ht\base\win32\tex4ht.env tc:\path\tfm! durch c:\MikTeX\fonts\tfm! ersetzen. * In der Windows-PATH-Variable ganz vorne c:\tex4ht\bin;c:\tex4ht\bin\ht\win32 hinzufügen. Diese Anleitung basiert auf der Anleitung von Joachim Schlosser ==== Anpassungen von tex4ht.env ==== tex4ht.env editieren und die Zeilen wie folgt ersetzen: (jeweils die 1. Zeile sollte ohne % in der tex4ht.env vorkommen) ca. Zeile 175 innerhalb von <convert> <code> %Gconvert -trim +repage -density 110×110 -transparent ”#FFFFFF” zz4.ps 3 % 4-times oversampling, resizing is done in word using a simple macro (resize all pictures to 25%) Gconvert -trim +repage -density 360 -transparent ”#FFFFFF” zz4.ps 3 </code> und später ca. Zeile 207 (vor </dvipng>) <code> %Gconvert -crop 0x0 -density 110×110 -transparent '#FFFFFF' zz4.ps 3 % 4-times oversampling, resizing is done in word using a simple macro (resize all pictures to 25%) Gconvert -crop 0x0 -density 360 -transparent '#FFFFFF' zz4.ps 3 </code> ====== Anpassungen im Dokument ====== * Super- und subscripts im Mathemodus sind mit {} geschrieben. Also z.B.$a_{i}$ statt $a_i$. * Für TikZ/PGF muss man \def\pgfsysdriver{pgfsys-tex4ht.def} setzen. Allerdings kann Word nicht mit SVGs umgehen. * floatrow and varioref do not work together with tex4ht. ====== Ergänzungen im Dokument ====== In document.tex folgende Zeilen einfügen: <code tex> % tell tex4ht to create picures also for formulas starting with '$' % WARNING: a tex4ht run now takes forever! \Configure{$}{\PicMath}{\EndPicMath}{} %$ % ← syntax highlighting fix for emacs \Css{body {text-align:justify;}} </code> Zusätzlich noch: http://tex.stackexchange.com/questions/46156/pdf-image-files-and-htlatex ===== Parallelbetrieb tex4ht und pdflatex ===== Preambel: <code latex> \makeatletter \@ifpackageloaded{tex4ht}{\def\iftex4ht{\iftrue}} {\def\iftex4ht{\iffalse}} \makeatother </code> Dokument: <code latex> \iftex4ht % tell tex4ht to create picures also for formulas starting with '$' % WARNING: a tex4ht run now takes forever! \Configure{$}{\PicMath}{\EndPicMath}{} %$ % ← syntax highlighting fix for emacs \Css{body {text-align:justify;}} \fi </code> ====== Aufruf ====== ===== Mit Extensions bei Graphiken ===== * Hier funktioniert tex4ht weitgehend ohne Probleme. Evtl. muss man als Vorbereitung noch *.aux *.out löschen. Die .bbl solte erhalten bleiben, damit das Literaturverzeichnis funktioniert. * htlatex.bat file.tex * Falls es Schwierigkeiten gibt: .aux löschen und nochmal starten. ===== Ohne Extensions bei Graphiken ===== * Annahmen: * Bisher wird pdflatex verwendet * Es werden keine Erweiterungen bei den Bildern verwendet (also \includegraphics{diagrams/test} anstatt \includegraphics{diagrams/test.pdf} * latex <Dokument> erzeugt ein .dvi-File. Falls nicht, evtl. folgendes probieren: * \usepackage{graphicx}, also graphicx-Paket ohne weitere Parameter. Falls pdflatex als Parameter angegeben ist, erzeugt latex kein dvi, sondern ein pdf. * Falls latex immer noch ein .pdf erzeugt, \pdfoutput=0 direkt nach documentclass verwenden. - eps Datei zu jedem pdf-Bild erstellen * Im Acrobat: File/Save As…. Nun unter “Save as type” “Encapsulated PostScript (*.eps)” auswählen. - rm <Dokument>.aux - latex <Dokument> - bibtex <Dokument> - htlatex <Dokument> “html,word” ==== Makefile ==== html: clean pdf rm $(AUX) htlatex.bat $(SRC) ===== oolatex ===== Folgendes TeX-File (das wirklich mit LaTeX durchrennt), erzeugt foolatex.bat, dass das Verhalten von htlatex <doc> “html,word” “symbol/!” nachbildet <code> \def\script{bat} \input mkht.4ht \one{,html,word} %-ic:\tex4ht\texmf\tex4ht\ht-fonts\#1 -ic:\tex4ht\texmf\tex4ht\ht-fonts \two{\symbol\!} \three{#1} \make{foo} \end{document} </code> ===== Experimente ===== * “C:\MiKTeX 2.6\scripts\tex4ht\bat\htlatex.bat” <Dokumentname> “html,word” ”'symbol/!'” * LuaTex and tex4ht: http://tex.stackexchange.com/questions/27519/text4ht-and-luatex ====== Formeln ====== Formeln als Bild: * Falls man Formeln mittels \(\) statt $$ umschliesst, dann werden sie als Bild gerendert, was Problemen bei Tricks mit \mkern vorbeugt… * Ansonsten kann auch html,pic-m,pic-align als Option verwendet werden. Da werden jedoch alle Formeln als Graphik gerendert und kein Unicode-Zeichensatz mehr verwendet. * Alle Formeln als Graphik schafft auch \Configure{$}{\PicMath}{\EndPicMath}{} am Anfang vom Dokument * Siehe auch: http://tex.stackexchange.com/questions/46248/converting-all-math-to-graphics-with-tex4ht * In Ergänzungen im Dokument bereits aktiviert. ====== Graphiken ====== * htlatex.bat is capable to deal with png graphics. There is no need to convert png to eps. The pngs are directly embedded in the resulting html. * Siehe auch: http://tex.stackexchange.com/questions/43391/tex4ht-reuse-png-images-instead-of-creating-new-ones und http://tex.stackexchange.com/questions/46156/pdf-image-files-and-htlatex ===== Bessere Graphikqualität ===== * Laut Trouble Shooting/Bad Quality of Pictures: -density 220×220 -geometry 50% * Laut General Configuration Files muss dies in eine tex4ht.usr eingefügt werden. (Fast) überall 110 durch 440 ersetzen. Ab und an noch -geometry 25%'' hinzufügen. <code> Gdvips -Ppdf -mode ibmvga -D 440 -f 1 -pp 2 > zz4.eps Gdvips -E -Ppdf -mode ibmvga -D 440 -f 1 -pp 2 > zz4.ps Gconvert -trim +repage -density 440×440 -geometry 25% -transparent ”#FFFFFF” zz4.ps 3 Gdvips -Ppdf -mode ibmvga -D 440 -f 1 -pp 2 > zz4.ps Gmgs -sDEVICE=ppm -r440 -sOutputFile=zz4.ppm -q -dbatch -dTextAlphaBits=4 -dGraphicsAlphaBits=4 -dNOPAUSE zz%%4.ps -c quit </code> * Andere Variante bereits bei Anpassungen von tex4ht.env beschrieben. ====== von HTML nach Word ====== Sobald man es geschafft hat, mittels tex4ht das HTML zu generieren, dann sollte man folgendes tun: - HTML mit Word öffnen - Verknüpfungen entfernen - Word 2003: Bearbeiten / Verknüpfungen / dort alle aufgeführten Verknüpfungen aufheben. - Word 2007: Schaltfläche Office / Vorbereiten / Verknüpfungen mit Datei bearbeiten / dort alle aufgeführten Verknüfungen aufheben - Word 2010: Datei / Informationen / Verknüpfungen mit Dateien bearbeiten / dort alle aufgeführten Verknüfungen aufheben - Speichern unter… - “Extras” / Speicheroptionen / Speichern / Truetype Schriftarten einbetten / OK - Die Stylesheetfehlermeldung ignorieren. - Speichern ===== Makro für Word ===== <code vb> Attribute VB_Name = “NewMacros” Option Explicit Sub bild25() Attribute bild25.VB_ProcData.VB_Invoke_Func = “Normal.NewMacros.bild25” Dim PercentSize As Integer Dim oIshp As InlineShape Dim oshp As Shape PercentSize = 25 'InputBox(“Enter percent of full size”, “Resize Picture”, 75) On Error Resume Next 'embedd figures For Each oIshp In ActiveDocument.InlineShapes If Not oIshp.LinkFormat Is Nothing Then oIshp.LinkFormat.SavePictureWithDocument = True oIshp.LinkFormat.BreakLink DoEvents End If Next oIshp DoEvents 'resize figures Dim i As Long For i = 1 To ActiveDocument.InlineShapes.Count Set oIshp = ActiveDocument.InlineShapes.Item(i) oIshp.ScaleHeight = PercentSize 'DoEvents '#try that if some shapes are not resized properly oIshp.ScaleWidth = PercentSize DoEvents Next i '# maybe also iterate over the Shapes collection? '# –> no effect 'For Each oshp In ActiveDocument.Shapes ' With oshp ' .ScaleHeight Factor:=(PercentSize / 100), RelativeToOriginalSize:=msoCTrue ' .ScaleWidth Factor:=(PercentSize / 100), RelativeToOriginalSize:=msoCTrue ' End With 'Next oshp End Sub </code>
 
latex/tex4ht.txt · Last modified: 2012/04/20 17:48 by koppor
Recent changes RSS feed Donate Powered by PHP Valid XHTML 1.0 Valid CSS Driven by DokuWiki