physics und tippuni

Antwort erstellen


Diese Frage dient dazu, das automatisierte Versenden von Formularen durch Spam-Bots zu verhindern.
Smilies
:D :) :( :o :shock: :? 8) :lol: :-x :P :oops: :cry: :evil: :twisted: :roll: :wink: :!: :?: :idea: :arrow: :| :mrgreen:

BBCode ist eingeschaltet
[img] ist eingeschaltet
[flash] ist ausgeschaltet
[url] ist eingeschaltet
Smilies sind eingeschaltet

Die letzten Beiträge des Themas

Ich habe die Datenschutzerklärung gelesen und bin damit einverstanden.

   

Wenn du eine Datei oder mehrere Dateien anhängen möchtest, gib die Details unten ein.

Ansicht erweitern Die letzten Beiträge des Themas: physics und tippuni

Re: physics und tippuni

von Stefan Kottwitz » Mi 29. Okt 2025, 11:53

Dann kennst Du vllt. eine Alternative zu \let, die mit \NewDocumentCommand funktioniert?

Dass \NewDocumentCommand robuste Befehle definiert, ist mir bekannt (z.B. aus der xparse-Doku, Josephs Blog und Artikel, was jetzt nicht irgendwo \let erwähnt, man kann es halt schlussfolgern). Wenn Du eine ltnews-Nummer kennst, die das direkt sagt und vllt. Alternative nennt, poste gern mal den Link.

\LetLtxMacro könnte sich evtl. eignen, das verträgt robuste Makros, ist aber nur für \DeclareRobustCommand, \newrobustcmd, \renewrobustcmd und \robustify (und natl. \newcommand, \newenvironment, \renewcommand, \renewenvironment) dokumentiert, jetzt nicht explizit für \NewDocumentCommand.

Stefan

Re: physics und tippuni

von latex3 » Mi 29. Okt 2025, 11:17

\let sollte man in LaTeX eher nicht mehr verwenden, weil es beispielsweise mit allen per \NewDocumentCommand definierten Befehle rasch schief geht. Tipp: ltnews.pdf regelmäßig lesen!

Re: physics und tippuni

von Stefan Kottwitz » Di 28. Okt 2025, 13:42

Ja, wenn zwei Pakete den gleichen Befehl definieren, gibt es eine Kollision. Entweder sie machen es fehlerfrei, und entscheiden sich zwischen Redefinition oder es bei Existenz nicht neu zu definieren, oder sie definieren es einfach naiv und dann kommt ein Fehler.

Ja, die naheliegendste Lösung ist, die Reihenfolge zu vertauschen. Auch kommt es im Grunde an, dass, wenn Du das doppelt definierte Makro verwenden möchtest (oder das Paket es braucht), die Reihenfolge so zu wählen, dass man das Gewünschte kriegt. Oder man "rettet" es mit \let auf einen anderen Makro-Namen, bevor man das zweite Paket lädt. Zurückschreiben (mit \let) geht danach auch noch.

Stefan

physics und tippuni

von elijahbaley » Di 28. Okt 2025, 12:33

Moin,

ich bin auf ein interessantes Problem gestoßen:

Wenn ich physics (wird in meinem allgemeinen style geladen) lade und dann tipauni (ja, ich möchte tatsächlich Lautschrift setzen) gibt es einen Fehler.

Sowohl physics als auch tipauni definieren den Befehl \tr
physics \DeclareDocumentCommand\tr{}{\trace}
tippuni \tipaunicmd{\tr}{Ëž} mit \tipaunicmd

Die Reihenfolge scheint wichtig zu sein.
tippuni - physics -> kein Fehler, \tr habe ich nicht getestet, weil ich in physics mit der Alternative \Tr arbeiten könnten.
physics - tipauni _> Fehler.

Ich habe auch versucht, das Command \tr auf undefined zu setzen, dies ergibt aber einen Fehler, dass assoziierte Command nicht mit gelöscht wurden.

Grüße
LP

MWE 1 : ursprünglicher Fehler
\documentclass{article}

\usepackage{siunitx}
\usepackage{physics}

\usepackage{tipauni}

\begin{document}
	test

\end{document}
MWE 2: Scheinbar funktioniert es
\documentclass{article}

\usepackage{tipauni}%
	
\usepackage{siunitx}
\usepackage{physics}

\begin{document}
	test

\end{document}
MWE 3: löschen geht nicht.
\documentclass{article}

\usepackage{siunitx}
\usepackage{physics}


\IfPackageLoadedTF{physics}{%
	\typeout{Undefine tr}
	\let\tr\undefined%
	\usepackage{tipauni}%
}{%
	\typeout{load direct}%
	\usepackage{tipauni}%
}

\begin{document}
	test

\end{document}

Nach oben