Wenn ich beide Pakete zusammen verwende erhalte ich folgende Fehlermeldung: ERROR: Please use \mathaccent for accents in math mode. --- TeX said --- \add@accent ... \let \ignorespaces \relax \accent #1 #2\egroup \spacefactor ...l.11 \t1 a*a + b*b Hier ist ein Minimalbeispiel: \documentclass[12pt,zed]{article} \usepackage[T1]{fontenc} \usepackage[utf8]{inputenc} \usepackage{zed-csp} \usepackage[debug]{hyperref} \begin{document} \begin{zed} c*c = \\ \t1 a*a + b*b \end{zed} \end{document} Das Problem scheint mit \t1 zusammenzuhängen. Gibt es dafür eine Lösung? gefragt 01 Nov '21, 12:35 dordow |
Ich kenne das Paket \documentclass[12pt]{article} \usepackage[T1]{fontenc} \usepackage[debug]{hyperref} \usepackage{zed-csp} \begin{document} \begin{zed} c*c = \\ \t1 a*a + b*b \end{zed} \end{document} Der Fehler bei umgekehrter Reihenfolge deutet allerdings auf einen Konflikt hin, der ernst genommen werden sollte. Wahrscheinlich führt die gezeigte Vertauschung der Paketreienfolge zu einem anderen Problem. Potentielle Kandidaten für Probleme wären beispielsweise das Encoding von Bookmarks durch Eventuell ist die Umdefinierung eines Low-Level-Macros (das gilt eigentlich für alle Ein-Buchstaben-Makros) in Um die genannten Probleme zu entschärfen, wäre eventuell folgende Lösung vorzuziehen: \documentclass[12pt]{article} \usepackage[T1]{fontenc} \usepackage{zed-csp} \NewCommandCopy\ztab\t% Neue Bedeutung von \t in \ztab speichern. \RenewCommandCopy\t\tie% Alte Bedeutung von \t wiederherstellen. (Braucht man nicht, wenn später hyperref geladen wird.) \usepackage[debug]{hyperref} \begin{document} \begin{zed} c*c = \\ \ztab1 a*a + b*b \end{zed} \end{document} Hierbei wird die ursprüngliche Bedeutung von Um in der Umgebung \documentclass[12pt]{article} \usepackage[T1]{fontenc} \usepackage{zed-csp} \NewCommandCopy\ztab\t% Neue Bedeutung von \t in \ztab speichern. \RenewCommandCopy\t\tie% Alte Bedeutung von \t wiederherstellen. (Braucht man nicht, wenn später hyperref geladen wird.) \AddToHook{env/zed/begin}[zed-csp]{\RenewCommandCopy\t\ztab}% Neue Bedeutung von \t am Anfang von zed reaktivieren. \usepackage[debug]{hyperref} \begin{document} \begin{zed} c*c = \\ \t1 a*a + b*b \end{zed} \end{document} Ob das in jedem Fall funktioniert, kann ich nicht sagen, da – wie erwähnt – Insgesamt macht das Paket auf mich den Eindruck, dass es eine eher unzureichende Anpassung eines LaTeX-2.09-Styles an LaTeX2e ist. Eventuell wäre es besser, sich ein anderes Paket für den Zweck zu suchen. Die unbekannte Option Es sei noch einmal explizit darauf hingewiesen, dass alle hier gezeigten Lösungsmöglichkeiten lediglich üble Hacks sind. Es sei auch darauf hingewiesen, dass das Problem eher genereller Natur ist, also nicht nur im Zusammenspiel mit beantwortet 01 Nov '21, 12:53 gast3 Das Paket ist in der Tat für 2.09 geschrieben, ist aus den 90ern. Die Lösung mit der Umbenennung von \t auf \ztab funktioniert leider nicht, denn der Paketautor hat auch ein Tool für die Syntaxprüfung der Z-Spezifikationen geschrieben, das dann \ztab nicht erkennt und Fehlermeldungen ausgibt. Das Vertauschen der Paketeinbindungen hat aber funktioniert. Vielen Dank für den Hinweis mit der Paketoption und inputenc.
(01 Nov '21, 15:31)
dordow
@dordow: Falls es dich interessiert, warum ich deine Antwort in einen Kommentar umgewandelt habe. Ansonsten sei nochmals darauf hingewiesen, dass die Umdefinierung von
(01 Nov '21, 16:04)
gast3
Ich vermute dass die Einschränkung der Umdefinition von \t auf die speziellen Umgebungen nur im Paket zed-csp vorgenommen werden können, nicht aber vom Paketanwender. Wenn ich die Erklärung richtig verstehe bedeutet das, dass auf Dauer auch Konflikte mit anderen Pakete möglich sind.
(01 Nov '21, 16:25)
dordow
@dordow Ich habe die Antwort noch ein wenig erweitert, um sowohl die generelle Problematik noch einmal deutlich zu machen als auch einen Hack zu zeigen, bei dem
(02 Nov '21, 09:15)
gast3
@dordow Das Paket wirft übrigens noch mehr Probleme auf. Beispielsweise wird
(02 Nov '21, 09:25)
gast3
Ich habe mich einmal nach Alternativen umgeschaut, dem Paket und Tool ähnlich sind die Community Z Tools. Dort gibt es ebenfalls ein LaTeX Paket czt, welches aber ebenfalls \t als Tabulator definiert. Ich glaube, ich habe so etwas auch schon bei anderen Paketen gesehen. Es ist also die Frage, wie kritisch das Problem ist. Die nächste Frage ist, wie viele Fehler noch in dem Paket stecken. Gibt es denn eine Art Kodierrichtlinien für Pakete?
(07 Nov '21, 13:56)
dordow
Im Fall von zed-csp müsste man das Paket und das Tool anpassen. Der Autor pflegt diese wohl nicht mehr, ich habe ihn in anderer Sache einmal kontaktiert.
(07 Nov '21, 13:57)
dordow
@dordow Dass es immer kritisch zu sehen ist, wenn – zudem schlecht gepflegte – Pakete Kernel-Code umdefinieren, dürfte klar sein. Ich denke aus meiner Antwort und meinen Kommentaren geht auch hinreichend hervor, dass das Paket diesbezüglich reichlich problematisch zu sehen ist. Das Paket aus den Community Z Tools ist da leider nicht besser, das es entscheidende Teile, einfach aus
(07 Nov '21, 16:08)
gast3
@dordow Generell sollten Paketautoren
(07 Nov '21, 16:13)
gast3
Ergebnis 5 von 9
show 4 more comments
|
ich würde das nicht verwenden. Das Paket ist von 1995, und definiert haufenweise Befehle ohne irgendwelche Rücksicht auf existierende Definitionen zu nehmen.