Seite 1 von 1
\newcommand mit \newcommand erzeugen
Verfasst: Do 31. Mär 2011, 13:30
von moe
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
Verfasst: Do 31. Mär 2011, 14:36
von KOMA
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!
Verfasst: Do 31. Mär 2011, 15:41
von moe
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
Verfasst: Do 31. Mär 2011, 16:54
von KOMA
TeXMaker ist kein Compiler, sondern ein Editor und
raten liegt mir nicht.
Verfasst: Do 31. Mär 2011, 18:48
von moe
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
Verfasst: Do 31. Mär 2011, 19:31
von Sepp99
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.-
Verfasst: Fr 1. Apr 2011, 09:54
von moe
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!