Neueste Tipps zu tex4ht: - Konvertierung von LaTeX nach HTML
\usepackage{tex4ht} as this statement is automatically issued by tex4ht.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)PATH c:\cygwin\bin ganz nach vorne stellen, damit convert.exe von Cygwin als erstes aufgerufen wird und nicht convert.exe von Windows.gs vs. hard-coded gswin32c.exe besteht anscheinend nicht mehr. Falls doch, dann die “echte” Win32-Binary von Ghostscript installierenc:\tex4ht\texmf muss man MiKTeX bekannt machen: c:\tex4ht\texmf auswählenc:\tex4ht\texmf ganz nach oben schiebenhttp: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>