Use of \@ doesn't match its definition.
Wenn du in \myword \myword selbst umdefinierst, kann es ja wohl nicht funktionieren, danach \myword wieder mit der ursprünglichen Bedeutung zu verwenden. Du hast da irgendwie seltsame oder gar keine Vorstellungen davon, wie Makros bei TeX funktionieren. Ansonsten wurde dir oben bereits erklärt, wie das mit dem @ im Makronamen funktioniert. Du kannst natürlich stattdessen auch einen Buchstaben verwenden. Allerdings erinnert mich dein Vorgaben eher an die Variablen von scrlttr2. Mit scrletter kann man diese auch mit scrartcl (nicht jedoch mit article) verwenden.
Natürlich weiß ich, dass der Code so nicht funktionieren kann und auch warum. Wollte damit nur verdeutlichen, was ich mir vorstelle.
Wie ich diese @-Geschichte hier sinnvoll einsetzen kann, ist mir allerdings nicht klar. Habe das offensichtlich noch nicht ausreichend verstanden.
Wie ich diese @-Geschichte hier sinnvoll einsetzen kann, ist mir allerdings nicht klar. Habe das offensichtlich noch nicht ausreichend verstanden.
XeLaTeX, TeX Live, vim-latexsuite
@ in einem Befehlsnamen ist ein (leichter) Schutz vor umbeabsichtigter Umdefinition. Diesen Schutz brauchst du eigentlich erst dann, wenn du Befehle schreibst, die "innere" Befehle benutzen, auf deren Verhalten du dich verlassen musst.MoonKid hat geschrieben: Wie ich diese @-Geschichte hier sinnvoll einsetzen kann, ist mir allerdings nicht klar. Habe das offensichtlich noch nicht ausreichend verstanden.
Es ist übrigens eines der Probleme von LaTeX, dass diverse wichtige Befehle (wie \def, \hbox, usw) zu leicht von einem normalen Benutzer verändert werden können. Auf tex.sx hat gerade jemand versucht \fi umzudefinieren -- mit ziemlich interessanten Folgen. http://tex.stackexchange.com/questions/ ... i-possible.
In LaTeX3 werden diese wichtigen Befehle deutlich besser versteckt.
Ulrike Fischer
www.troubleshooting-tex.de
www.troubleshooting-tex.de
"Versteckt" ist der richtige Ausdruckt. Wobei auch das nur durch Namenskonvention und catcode geschieht, weil eben echte Kapselung o. ä. in TeX nicht realisierbar ist. Die Einhaltung bleibt damit Sache des Anwenders, Programmierers etc.u_fischer hat geschrieben:In LaTeX3 werden diese wichtigen Befehle deutlich besser versteckt.
@MoonKid: Du liest wieder zu oberflächlich. Ich hatte nicht umsonst Alternativen für @ erwähnt, die für dich eher sinnvoll wären. Eventuell wären auch Pakete wie acro oder ein schlichtes \newcommand{\meinWort}{Wort} ausreichend, um dann an entsprechender Stelle \meinWort zu verwenden. Das kommt eben sehr darauf an, was du wirklich willst.