renewcommand mit einer Option

Redefinition von Makros, Definition eigener Befehle sowie neuer Umgebungen


renewcommand - [Option]

renewcommand mit einer Option

Beitrag von renewcommand - [Option] »

Hallo Experten,

ich nutze das bibleref Packet mit \ibibleverse{Genesis}(2:1).
Nun hätte ich gern, das die Stelle automatisch verlinkt wird in Internet.
Den Link kann man zusammenbauen:

http://www.bibleserver.com/text/LUT/Genesis2:1
Also dachte ich mir sowas:
\renewcommand{\ibibleverse}?? {\ibibleverse{#1}(#2)\url{http://www.bibleserver.com/text/LUT/#1#2}

Mein Problem ist nur, dass die Argumente bei ibibleverse einmal so {} und () nicht auf das neue kommando übertragen werden können.

Hat jemand zufällig eine Idee. Danke

Benutzeravatar
cgnieder
Forum-Meister
Forum-Meister
Beiträge: 730
Registriert: Fr 22. Okt 2010, 18:37
Wohnort: Herrenberg
Kontaktdaten:

Beitrag von cgnieder »

Ich schlage vor, einmal in xparse zu schauen. Das Paket erlaubt viele verschiedene Argumenttypen bei Befehlen.
\documentclass{article}
\usepackage{xparse,bibleref,hyperref}

% Definition von \ibibleverse speichern:
\let\origibibleverse\ibibleverse
% neu definieren:
\RenewDocumentCommand\ibibleverse{mr()}{%
  \origibibleverse{#1}(#2)\ (\url{http://www.bibleserver.com/text/LUT/#1#2})}
\begin{document}
\ibibleverse{Genesis}(2:1)
\end{document}
Clemens
Paketauthor

danke

Danke

Beitrag von danke »

Danke für den Tip.


ich versuche über den Weg.

Danke

Funktioniert Teilweise

Beitrag von Danke »

Vielen Dank nochmal für den Hinweis.

Es funktioniert super. Ich habe anstelle url jetzt \href{http://www.bibleserver.com/text/LUT/#1#2}{-}

genutzt, habe aber noch ein Problem, da ich vergessen hatte,
dass ich auch nur \ibibleverse{Genesis} genutzt habe um auf das Buch zu verweisen. Nun fehlt also das zweite Argument. In der Dokumentation von xparse gibt es wohl eine novalue option, aber ich habe nicht verstanden, ob ich damit was anfangen kann.....

Viele Grüße

Benutzeravatar
cgnieder
Forum-Meister
Forum-Meister
Beiträge: 730
Registriert: Fr 22. Okt 2010, 18:37
Wohnort: Herrenberg
Kontaktdaten:

Beitrag von cgnieder »

Du kannst statt
r()
(r steht für „required“)
d()
verwenden und dann mit
\IfNoValueTF{#2}{<kein Wert>}{<doch ein Wert>}
testen, ob das Argument verwendet wurde oder nicht:
\documentclass{article} 
\usepackage{xparse,bibleref,hyperref} 

% Definition von \ibibleverse speichern: 
\let\origibibleverse\ibibleverse 
% neu definieren: 
\RenewDocumentCommand\ibibleverse{md()}{%
  \IfNoValueTF{#2}{\origibibleverse{#1}}{%
    \origibibleverse{#1}(#2)\ (\url{http://www.bibleserver.com/text/LUT/#1#2})}}
\begin{document} 
\ibibleverse{Genesis}(2:1)

\ibibleverse{Genesis}
\end{document}
Gruß
Clemens
Paketauthor

Danke

Vielen Dank

Beitrag von Danke »

Vielen Dank für die Hilfe.

Damit funktioniert es bestens. Das erleichert die Arbeit ungemein.

Also vielen Dank für die Mühe. Problem gelöst, bzw. Wunsch erfüllt.

Antworten