Anzeige:
Ergebnis 1 bis 5 von 5

Thema: Parameter bei \newcommand

  1. #1
    Registrierter Benutzer
    Registriert seit
    11.01.2012
    Ort
    Dresden
    Beiträge
    7

    Parameter bei \newcommand

    Hallo,
    ich bin neu im Forum und auch noch recht neu, was den Umgang mit Latex betrifft.
    Ich arbeite zurzeit an einer Studienarbeit und da diese sehr aufwendig ist, wollte ich einige immer wiederkehrende Symbole mit \newcommand definieren. Dies funktioniert auch sehr gut, aber ich hänge nun an einer Stelle fest, an der ich nicht weiter weiß. Und zwar möchte ich folgende Variable definieren:

    \newcommand{\epstr}{\boldsymbol{\varepsilon_{tr}}}

    Diese taucht einfach in der Variante, aber auch als zeitliche Ableitung und dadurch mit einem "Punkt" versehen auf:

    \dot{\boldsymbol{\varepsilon}}_{tr}

    Der Punkt befindet sich aber nur über \boldsymbol{\varepsilon} und nicht auch über dem Index. Meine Frage ist nun, ob ich diesen Umstand mit den Parametern innerhalb des \newcommand Befehls definieren kann. Dass ich die Variable also mal mit Punkt und mal ohne aufrufen kann?

    Vielen Dank für eure Hilfe und ich hoffe mein Problem ist verständlich genug beschrieben!

    Mit freundlichen Grüßen
    Sebastian

  2. #2
    Registrierter Benutzer Avatar von sommerfee
    Registriert seit
    02.07.2006
    Beiträge
    1.603
    Zitat Zitat von koXx Beitrag anzeigen
    Meine Frage ist nun, ob ich diesen Umstand mit den Parametern innerhalb des \newcommand Befehls definieren kann. Dass ich die Variable also mal mit Punkt und mal ohne aufrufen kann?
    Natürlich geht das. Aber erstmal muß man sich überlegen, welche Syntax der Befehl \epstr denn letztendlich haben soll, wie soll die Ableitung im Quelltext geschrieben werden? Als \epstr. ? Als \epstr* ? Als \epstr[\dot]? Als...?

    Hier mal eine mögliche Umsetzung von \epstr*:
    Code:
    \documentclass{article}
    \usepackage{amsmath}
    
    \makeatletter
    \newcommand{\epstr}{%
      \@ifstar
        {\dot{\boldsymbol{\varepsilon}}_{tr}}%
        {\boldsymbol{\varepsilon_{tr}}}}
    \makeatother
    
    \begin{document}
    $\epstr \epstr*$
    \end{document}
    Kommandos wie \@ifstar findet man via "texdoc macros2e" auf der Kommandozeile.

    (Deine beiden Definitionen habe ich hierbei einfach mal 1:1 übernommen, zusammen mit dem Fehler, daß bei der einen Definition das "tr" fett ist und bei der anderen nicht ;-))

  3. #3
    Registrierter Benutzer
    Registriert seit
    11.01.2012
    Ort
    Dresden
    Beiträge
    7
    Vielen Dank für die Hilfe, es funktioniert wunderbar! Was
    Kommandos wie \@ifstar findet man via "texdoc macros2e" auf der Kommandozeile
    betrifft, so gehe ich davon aus, dass du Linux Benutzer bist? Denn unter Windows konnte ich dies nicht so ohne weiteres ausführen!
    Damit ich das nun noch besser nachvollziehen kann, was müsste geändert werden, wenn ich nicht die Variante mit dem "*" verwenden möchte, sondern z.B. "\epstr[\dot]" ? Würde sich dass dann nur auf das "\@ifstar" auswirken? Und die Prozentzeichen sind wohl für Leerzeichen gedacht. Wenn ich den Befehl also in eine Zeile schreiben würde, so könnte ich diese auch weglassen, oder?

    Gruß Sebastian

    Achso: Wegen dem Fehler mit dem Fettgedruckt...ist geändert, danke für den Hinweis! Ich habe vor lauter Klammern nichts mehr gesehen...
    Geändert von koXx (11-01-2012 um 10:32 Uhr)

  4. #4
    Registrierter Benutzer
    Registriert seit
    06.03.2010
    Ort
    St. Petersburg, Russland
    Beiträge
    2.468
    Bei mri funktioniert der Befehl texdoc auch unter Windows.

  5. #5
    Registrierter Benutzer Avatar von sommerfee
    Registriert seit
    02.07.2006
    Beiträge
    1.603
    Zitat Zitat von koXx Beitrag anzeigen
    Damit ich das nun noch besser nachvollziehen kann, was müsste geändert werden, wenn ich nicht die Variante mit dem "*" verwenden möchte, sondern z.B. "\epstr[\dot]" ?
    Code:
    \documentclass{article}
    \usepackage{amsmath}
    
    \newcommand{\epstr}[1][]{%
        #1{\boldsymbol{\varepsilon}}_{tr}}
    
    \begin{document}
    $\epstr \epstr[\dot]$
    \end{document}
    wäre eine mögliche Lösung.

    Und die Prozentzeichen sind wohl für Leerzeichen gedacht. Wenn ich den Befehl also in eine Zeile schreiben würde, so könnte ich diese auch weglassen, oder?
    Japp.

Lesezeichen

Berechtigungen

  • Neue Themen erstellen: Nein
  • Themen beantworten: Nein
  • Anhänge hochladen: Nein
  • Beiträge bearbeiten: Nein
  •