\newcommand mit \newcommand erzeugen

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: \newcommand mit \newcommand erzeugen

von moe » Fr 1. Apr 2011, 09:54

Super, danke für's Testen!
Ja, dann liegt es wohl an meinen alten Paketen, die neusten sind von 2009.
Ich werde die Tage mal ein Update durchführen und setze solange den Status auf gelöst. Ich denke, daran wird sich dann nämlich nichts mehr ändern ;)

Vielen Dank nochmal, euch beiden!

von Sepp99 » Do 31. Mär 2011, 19:31

Bei mir funktioniert es:
\listfiles
\documentclass{scrbook}

\usepackage[ngerman]{babel}

\usepackage[footnote]{acronym}
\newcommand{\newname}[2]{%
   \newacro{#1}{#2}%
   \expandafter\newcommand\csname Acro#1\endcsname{\ac{#1}}%
}

\newname{Max}{Max Mustermann, geb. 1980}
\newname{Mara}{Mara Mustermann, geb. 1982}

\begin{document}
Eines Tages ging \AcroMax\ mit \AcroMara\ ins Kino. \AcroMax\ wollte in StarWars, wohingegen \AcroMara\ Titanic bevorzugte.
\end{document} 
Vergleiche einmal die Versionen:
*File List*
scrbook.cls 2011/02/19 v3.08a KOMA-Script document class (book)
scrkbase.sty 2011/02/19 v3.08a KOMA-Script package (KOMA-Script-dependent basics and keyval usage)
scrbase.sty 2011/02/19 v3.08a KOMA-Script package (KOMA-Script-independent basics and keyval usage)
keyval.sty 1999/03/16 v1.13 key=value parser (DPC)
scrlfile.sty 2011/02/11 v3.08a KOMA-Script package (loading files)
tocbasic.sty 2010/10/01 v3.07a KOMA-Script package (handling toc-files)
scrsize11pt.clo 2011/02/19 v3.08a KOMA-Script font size class option (11pt)
typearea.sty 2011/02/19 v3.08a KOMA-Script package (type area)
babel.sty 2008/07/06 v3.8l The Babel package
bblopts.cfg 2006/07/31 v1.0 MiKTeX 'babel' configuration
ngermanb.ldf 2008/07/06 v2.6n new German support from the babel system
acronym.sty 2010/09/08 v1.36 Support for acronyms (Tobias Oetiker)
suffix.sty 2006/07/15 1.5 Variant command support
Ausgabe siehe Anhang.

Gruß, Sepp.-
Dateianhänge
t_acronym.pdf
(43.74 KiB) 636-mal heruntergeladen

von moe » Do 31. Mär 2011, 18:48

Ok, sry, hier das Minimalbeispiel. Ich benutze den Editor TexMaker und TexLive als Distribution.
\documentclass{scrbook}

\usepackage[ngerman]{babel}

\usepackage[footnote]{acronym}
\newcommand{\newname}[2]{%
	\newacro{#1}{#2}%
	\expandafter\newcommand\csname Acro#1\endcsname{\ac{#1}}%
}

\newname{Max}{Max Mustermann, geb. 1980}
\newname{Mara}{Mara Mustermann, geb. 1982}

\begin{document}
Eines Tages ging \AcroMax mit \AcroMara ins Kino. \AcroMax \ wollte in StarWars, wohingegen \AcroMara \ Titanic bevorzugte.
\end{document}
Output:
Eines Tages ging Mara1 mit Mara2 ins Kino. Mara wollte in StarWars, wohingegen
Mara Titanic bevorzugte.

1 Max Mustermann, geb. 1980
2 Mara Mustermann, geb. 1982

von KOMA » Do 31. Mär 2011, 16:54

TeXMaker ist kein Compiler, sondern ein Editor und raten liegt mir nicht.

von moe » Do 31. Mär 2011, 15:41

Hi Koma,

vielen Dank für deine Antwort!
Nur leider funktioniert das bei mir nicht richtig. Also die Fussnoten stimmen, aber die Namen (Akronyme) nicht. Liegt das an meinem Compiler (TexMaker)?

Code:
\newcommand{\newname}[2]{%
  \newacro{#1}{#2}%
  \expandafter\newcommand\csname Acro#1\endcsname{\ac{#1}}%
}

\newname{Max}{Max Mustermann, geb. 1980}
\newname{Mara}{Mara Mustermann, geb. 1982}

\begin{document}

\AcroMax und \AcroMara gingen ins Kino. \AcroMax wollte in StarWars, aber \AcroMara wollte lieber in Titanic.

\end{document}
Ausgabe:
Mara(1) und Mara(2) gingen ins Kino. Mara wollte in StarWars, aber Mara wollte lieber in Titanic.

(1) Max Mustermann, geb. 1980
(2) Mara Mustermann, geb. 1982

von KOMA » Do 31. Mär 2011, 14:36

In diesem eher trivialen Fall könnte man auch
\newcommand{\newname}[2]{%
  \newacro{#1}{#2}%
  \expandafter\newcommand\csname Acro#1\endcsname{\ac{#2}}%
}

\newname{Max}{Max Mustermann, geb, 1980}
...
\AcroMax% (statt \maxm)
verwenden.

BTW: Du solltest beim Definieren von Makros mit Leerzeichen etwas sparsamer umgehen!

\newcommand mit \newcommand erzeugen

von moe » Do 31. Mär 2011, 13:30

Hallo zusammen,

ich möchte in Latex eine kleine Geschichte schreiben, bei der viele Namen vorkommen. Beim ersten Aufruf des Namens soll nur der Vorname angezeigt werden und eine Fußnote, die den vollständigen Namen und vll noch ein paar Informationen zu dieser Person enthält.
Da dachte ich an das Akronym-Packet und kam erst soweit:
\newacro{Max}{Max Mustermann, geb. 1980}
\newcommand{\maxm}{ \ac{Max} }
Was dann später im Text einfach mit \maxm aufgerufen wird.
Das würde auch so gehen.
Aber um das ganze zu optimieren und leichter Namen hinzufügen zu können, habe ich mir folgendes überlegt:
\newcommand{ \newname }[3]{
       \newacro{ #2 }{ #3 }
       \newcommand{ #1 }{ \ac{ #2 } }
}

\newname{ \maxm }{ Max }{ Max Mustermann, geb, 1980 }
Wenn ich jetzt \maxm aufrufe, steht im Text Max! fettgedruckt.

Hat jemand Verbesserungsvorschläger oder vll auch eine ganz andere Idee?

Grüße,
Moe

Nach oben