Ich habe eine benutzerdefinierte Klasse für einen persönlichen Lehrplan erstellt. Sie finden sie unter
https://github.com/igormorgado/elegantcv
Es lässt sich gut mit pdlatex, XeTeX und LuaLaTeX kompilieren, aber der Versuch, htlatex
es damit zu kompilieren, schlägt mit folgendem Fehler fehl:
Error LaTeX Error: File 'email' not found
Ich weiß nicht genug, um ein MWE zu debuggen oder zu erstellen, das denselben Fehler auslöst (habe es versucht). Wenn ich alle Verweise auf meine benutzerdefinierte Klasse entferne, wird der Fehler behoben, aber das ist kein echtes MWE für das Problem selbst.
Was ich frage ist:
Wie man richtig debuggt, um den Fehler zu verstehen und das Problem richtig zu benennen (und es möglicherweise selbst zu beheben);
Wie erstelle ich eine makellose, gut geschriebene, benutzerdefinierte Dokumentklasse, die ich auch mit htlatex ausführen kann, ohne dass Warnungen oder Fehler auftreten?
Wie löse ich dieses Problem und kann eine HTML-Version meiner Latex-Klasse erstellen?
Um das Problem zu reproduzieren, gehen Sie einfach (unter der Annahme von Unix)
git clone https://github.com/igormorgado/elegantcv
cd elegantcv
make html
PS: Ich weiß, dass das Erstellen externer Referenzen nicht die beste Art ist, mit SO-Fragen umzugehen, aber wäre es besser, die ganze Klasse hier einzufügen? Wenn ja, kann ich das machen.
Antwort1
Ich habe einen weiteren Fehler mit der Beispieldatei in Ihrem Repo, der durch die Tabelle verursacht wurde. Das Problem ist, dass Memoir, das Sie als Basisklasse verwenden, \cmidrule
andere Befehle aus dem Booktabs-Paket direkt definiert, anstatt das Paket anzufordern. Aus diesem Grund tex4ht
können gepatchte Versionen dieser Befehle nicht geladen werden und es tritt ein Kompilierungsfehler auf. Ich habe das in den tex4ht
Quellen behoben, sodass es in Zukunft nicht mehr auftreten sollte. Das Problem ist, dass TeX Live derzeit eingefroren ist, sodass der Fix nur in TL 2019 enthalten sein wird.
In der Zwischenzeit können Sie die folgende Konfigurationsdatei verwenden elegantcv.4ht
:
\input booktabs.4ht
\Hinput{elegantcv}
\endinput
Die Zeile \input booktabs.4ht
muss entfernt werden, sobald TL2019 veröffentlicht wird, da sie mit dem Code in kollidieren würde memoir.4ht
.
Es ist möglich, andere Dinge in die Datei einzufügen elegantcv.4ht
, zum Beispiel Makros aus Ihrer Klasse neu zu definieren, um HTML-Code einzufügen. Sie können die Tags direkt hier einfügen oder, besser, in einer Konfigurationsdatei. Siehe meineTutorial für Details. Ich würde auf jeden Fall einige CSS-Stylings hinzufügen.
So sieht es sofort nach dem Auspacken aus: