Formatierung von cite - Probleme mit renewcommand

Erstellung eines Literaturverzeichnisses mit BibTeX, Biber, BibLaTeX und Co.


egon
Forum-Newbie
Forum-Newbie
Beiträge: 3
Registriert: Fr 24. Sep 2010, 22:14

Formatierung von cite - Probleme mit renewcommand

Beitrag von egon »

Hallo Forum,

meine Zitate sehen nicht so aus wie ich es gerne hätte.

Ich möchte die Quellenangaben in eckigen Klammern, hochgestellt, kleine Schriftart haben.
Soweit funktioniert das, aber wenn ich zuätzliche Informationen wie die Seitenangabe mit angebe, wird der falsche Stil benutzt. Warum das passiert ist mir klar (renewcommand mit nur einem Parameter, müssten dann aber zwei sein), nur wie ich das ändern kann nicht. Könnt Ihr mir ein Beispiel geben mit dem bei renewcommand auch der zweite Parameter berücksichtigt wird, und wo es auch nichts macht, wenn nur ein Parameter vorhanden ist? Ich benutze Kurz- und Langform gemischt im Dokument.

Vielen Dank schonmal vorweg
Egon

Am Beispiel sieht man vielleicht besser was ich meine,
"Zitat kurz" ist gut, "Zitat lang" macht hat zwei kleine Probleme:
1) die inneren Klammern bei [1] sind zuviel,
2) ist die Schrift zu gross.
\documentclass[a4paper,10pt]{scrartcl}
\usepackage{overcite}
\renewcommand\citeform[1]{[#1]}

\begin{document}


Zitat kurz\cite{meinzitat}

Zitat lang\cite[Seite 14]{meinzitat}

\bibliographystyle{abbrvdin}

\bibliography{meinequellen}


\end{document}

egon
Forum-Newbie
Forum-Newbie
Beiträge: 3
Registriert: Fr 24. Sep 2010, 22:14

Beitrag von egon »

Ich bin jetzt ein Stück weiter:
\newcommand{\origcite}{}
\let\origcite=\cite

\renewcommand{\cite}[2][]{%
\ifthenelse
{\equal{#1}{}}
{$^{[}$\origcite{#2}$^{]}$}
{$^{[}$\origcite{#2}$^{,\ {#1}]}$}
}
habe jetzt jedoch noch das Problem, dass es wenn ich
"bla\cite[Seite 105]{QUELLE}" benutze, aus "Seite 105" "Seite105" macht,
also die Leerstellen entfernt. Wie schütze ich die Leerzeichen bei der Übergabe?

Meine Zwischenlösung ist "bla\cite[Seite\ 105]{QUELLE}", gibts da einen besseren Ansatz?

Benutzeravatar
iTob
Forum-Meister
Forum-Meister
Beiträge: 1221
Registriert: Mo 19. Apr 2010, 22:19
Kontaktdaten:

Beitrag von iTob »

Nutze nicht den Mathemodus, um im normalen Text hochzustellen sondern \textsuperscript{blabla}. Dann werden auch die Leerzeichen nicht ignoriert.
Die Kurzform mit ^ist nur für den Mathemodus – und du benutzt es ja auch dort nämlich in $…$ –, aber im Mathemodus werden Wörter nicht als Wörter betrachtet, sondern als hintereinander Geschriebene Variablen und spätestens, wenn du versuchst einen Umlaut oder Eszett zu benutzten, bekommst du ein Problem, weil diese im Mathemodus nicht (ohne Weiteres) gehen.

Hier das angepasste Beispiel (ungetestet, weil ich jetzt nicht extra ein Dokument dafür bauen möchte. An dieser Stelle der Hinweis auf ein lauffähiges Minimalbeispiel ;-))
\newcommand{\origcite}{} 
\let\origcite=\cite 

\renewcommand{\cite}[2][]{% 
   \ifthenelse 
      {\equal{#1}{}} 
      {\textsuperscript{[\origcite{#2}]}} 
      {\textsuperscript{[\origcite{#2}, #1]}} 
   } 

egon
Forum-Newbie
Forum-Newbie
Beiträge: 3
Registriert: Fr 24. Sep 2010, 22:14

Beitrag von egon »

Danke!

Benutzeravatar
iTob
Forum-Meister
Forum-Meister
Beiträge: 1221
Registriert: Mo 19. Apr 2010, 22:19
Kontaktdaten:

Beitrag von iTob »

Kein Problem...

Antworten