Sie sind hier

Abkürzung für folgenden Codeschnipsel

Hallo und guten Tag,

gibt es für folgendes Konstrukt eine Abkürzung, damit der LaTeX-Code leserlich bleibt?

  {\color{blue}\emph{
    [beliebiger text]  
  }
  }

Am liebsten wäre mir, wenn ich diese Konstrukt durch so etwas wie

 \kommentar{
    [beliebiger text]
 }

ersetzen könnte. Ist das überhaupt möglich? Wenn ja wie?

Danke und Gruß,

Jan.

forum: 

Man kann mit \newcommand recht einfach irgendwo vor \begin{document} eigene Befehle erstellen (Wenn es einen Befehl mit dem Namen schon gibt und dieser geändert werden soll, \renewcommand verwenden.).

Das sieht dann so aus:

\newcommand{\"Befehl"}["Anzahl Parameter"]["Standard"]{"Definition"}

Bei "Befehl" gibst du einfach den gewünschten Befehlsnamen ein, also etwa "kommentar". Es ist möglich mehrere Parameter für einen Befehl anzugeben, deren Anzahl muss bei "Anzahl Parameter" angegeben werden. Bei "Standard" kann ein zusätzlicher Parameter angegeben werden. Wird dafür bei Verwendung des Befehls kein Wert angegeben, so wird der der eingegebene Standard verwendet. Bei "Definition" schließlich muss man die Definition des Befehls eingeben. Also alles ziemlich selbsterklärend, aber dennoch klingt das jetzt wahrscheinlich sehr abstrakt. In der Definition kann dann auf die Parameter mit "#Nummer des Parameters" zugegriffen werden.

Der Befehl wird dann wie folgt im Text angewendet:

\befehl["optionaler Parameter"]{"Parameter 1"}{"Parameter 2"}...{"Parameter 9"}

Je nachdem wieviele Parameter man eben gefordert hat, maximal aber 9 (plus dem optionalen).

Jetzt aber mal ganz konkret für dein Problem:

\newcommand{\kommentar}[1]{{\color{blue}\emph{#1}}}

tut das von dir beschriebene (natürlich musst du das Paket color oder xcolor vor der Befehldefinition eingebunden haben).

Im Text dann einfach

\kommentar{Dies ist ein Kommentar}

eingeben.

Wow, eine fantastische Erläuterung. Wie man neue Befehle definiert beziehungsweise bestehende redefiniert wusste ich bereits. Das man auch Parameter verwenden kann habe ich jetzt gelernt!

Vielen, vielen Dank für die Zeit und Hilfestellung.

Bild von Markus Kohm

Was noch fehlt ist der Unterschied zwischen \newcommand und \newcommand*. Bei \newcommand werden die neuen Anweisungen \long definiert, was nichts anderes bedeutet, als dass Argumente mehrere Absätze enthalten dürfen. Demgegenüber definiert \newcommand* die neue Anweisung nicht \long. Die Argumente dürfen deshalb keine Absätze enthalten. Es empfiehlt sich diese Form für alle Anweisungen zu verwenden, deren Argumente gar keine kompletten Absätze enthalten sollten. Der Vorteil ist nämlich, dass TeX dann eine vergessende schließende Klammer um ein Argument bereits beim nächsten Absatz meldet. Anderenfalls kann es passieren, dass TeX das gesamte Dokument als Argument der Anweisung liest und der Fehler so sehr viel schwerer auszumachen ist.

Ein Beispiel für eine Anweisung, die nicht \long definiert ist, wäre beispielsweise \textcolor wie es von color.sty und xcolor.sty definiert wird. Damit kann diese Anweisung nur verwendet werden, um einen andersfarbigen Text innerhalb eines Absatzes zu setzen, aber nicht, um mehrere andersfarbige Absätze zu setzen.

Näheres zu \newcommand und vielen anderen nützlichen Anweisungen und Umgebungen, findet sich übrigens im usrguide, der Bestandteil von LaTeX ist und somit bei jeder LaTeX-Distribution dabei sein muss. Dabei sind auch Anweisungen, die man zu kennen glaubt, die viele aber nur teilweise kennen. So wissen beispielsweise viele Anwender nicht, dass \parskip eine ganze Reihe an nützlichen optionalen Argumenten hat.

Stimmt die Sternvariante hätte ich wohl auch erwähnen sollen.

Ich dachte irgendwann, dass das Ganze schon recht lang aussieht, und ich mich vielleicht etwas kurz fassen muss und habe das dann weggelassen.

Aber man kann das alles ja, wie schon von Markus geschrieben, auch noch genauer nachlesen.

Comments for "Abkürzung für folgenden Codeschnipsel" abonnieren