Fußnote nur eine Zeile Lang

Redefinition von Makros, Definition eigener Befehle sowie neuer Umgebungen


dabauer82
Forum-Anfänger
Forum-Anfänger
Beiträge: 26
Registriert: Di 2. Nov 2010, 09:58

Fußnote nur eine Zeile Lang

Beitrag von dabauer82 »

Liebe Gemeinde,

ich habe mir eine eigene Funktion gebastelt, die mir erlaubt, eine verkürzte Zitierweise in der Fußnote zu verwenden. Die Funktion lautet \footshortcite[pre][post]{key} und erlaubt mir die Ausgabe von z.B.

vgl. Autor, YYYY, S.1.

in der Fußnote. Hintergrund ist, dass \footfullcite einfach zu viel Platz in Anspruch nimmt und ich daher eine verkürzte Ausgabe bevorzuge. Jetzt hatte ich aber die Idee, den Titel auch ausgeben zu lassen. Allerdings ist der Titel häufig länger als eine Zeile und das steht im Widerspruch zu meinem Ansatz, so dass ich mich frage, ob man Latex dahingehend programmieren kann, dass man den Titel nach 10 oder 20 Zeichen abbricht um sicherzustellen, dass man in einer Zeile bleibt...?


Geht das?

Danke

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

Beitrag von iTob »

Schau dir mal das Paket xstring (in der Anleitung nach gooble suchen) Damit kannst du Zeichenketten beschneiden. Vielleicht sogar unter Berücksichtigung vorhandener Leerzeichen

dabauer82
Forum-Anfänger
Forum-Anfänger
Beiträge: 26
Registriert: Di 2. Nov 2010, 09:58

Beitrag von dabauer82 »

Cool,
vielen dank für den Tipp. Leider scheint es nicht zu klappen. Der Befehl
\StrLeft{\citetitle{Key}}{10}
beschneidet leider nicht den Titel, sondern schreibt Ihn einfach vollständig hin. Das gleiche passiert auch bei \StrGobbleLeft oder ähnliches.

Allerdings klappt der Befehl unter Verwendung von Text durchaus:
\StrLeft{IchBinEinLangerText}{10}
Vermutlich wird es nicht klappen.
Grüße,
dabauer82[/code]

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

Beitrag von iTob »

Da du kein Minimalbeispiel lieferst, kann ich es nicht testen, aber versuche mal ein \expandafter vor \StrLeft zu ergänzen. Vielleicht gibt es in Abschnitt 3.1 vom xstring-Handbuch auch noch Hinweise.

dabauer82
Forum-Anfänger
Forum-Anfänger
Beiträge: 26
Registriert: Di 2. Nov 2010, 09:58

Beitrag von dabauer82 »

\RequirePackage{filecontents}
\begin{filecontents*}{Literatur.bib}

@BOOK{denz2005,
  author = {Denz, Hermann},
  title = {Grundlagen einer empirischen Soziologie: Der Beitrag des quantitativen
    Ansatzes},
  publisher = {Lit},
  location = {M\"unster},
  year = {2005}
}

\end{filecontents*}

\documentclass{scrartcl}                 

\usepackage[style=authoryear]{biblatex}
\bibliography{Literatur}
\usepackage{optparams}
\usepackage{xstring}

\def\footshortciteintern[#1][#2]#3{%
\ifx#1\empty
% Nur Autor
\footnote{\citeauthor{#3}, \citeyear{#3}.}
\else
\ifx#2\empty
% Autor und Seite
\footnote{\citeauthor{#3}, \citeyear{#3}, #1.}
\else
% Autor, Seite und vgl.
\expandafter
\footnote{#1 \citeauthor{#3}, \StrLeft{\citetitle{#3}}{10}, \citeyear{#3}, #2.}
\fi
\fi
}
\newcommand*\footshortcite{%
\optparams{\footshortciteintern}{[\empty][\empty]}
}

\begin{document} 

Hallo \footshortcite[vgl.][S.111]{denz2005}
%\footshortcite[S.111]{denz2005}
%\footshortcite{denz2005}

\end{document}
\footshortcite verwendet 3 Fälle, zur Zeite habe ich nur im dritten Fall \StrLeft eingebaut. Wie du siehst, sollte der Titel nach 10 Zeichen abgeschnitten werden, aber er wird vollständig ausgeschrieben.

Grüße,
dabauer82

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

Beitrag von iTob »

Hm … also das Problem ist offensichtlich, dass sich \citetitle nicht vollständig expandieren lässt, so dass im ersten Argument von \StrLeft nicht einfach eine Zeichenkette steht, die beschnitten werden kann :-(
Allerdings kann ich dir da jetzt auch nicht mehr weiterhelfen. Tut mir leid.

Du könntest aber mit deinem wirklich guten Minimalbeispiel (wobei man die Definition von \footshortcite noch von den ganze If-Klausen befreien könnte, denn das hat ja mir dem Problem nix zu tun) bei tex.sx nochmal nachfragen, falls hier niemand weiter weiß …

dabauer82
Forum-Anfänger
Forum-Anfänger
Beiträge: 26
Registriert: Di 2. Nov 2010, 09:58

Beitrag von dabauer82 »

Ok, das dachte ich mir auch schon. Vielen Dank für den weiteren Tipp, ich werde bei tex.sx mal sehen was ich rausfinden kann...

Grüße und Danke.

dabauer82
Forum-Anfänger
Forum-Anfänger
Beiträge: 26
Registriert: Di 2. Nov 2010, 09:58

Beitrag von dabauer82 »

Vielleicht kannst du mir bei etwas anderemhelfen.
Wenn du in meinem Minimalbeispiel den \begin{document}-Part ersetzt durch folgenden:
\begin{document} 

footfullcite\footfullcite[vgl.][S.111]{denz2005}footfullcite\footfullcite[vgl.][S.111]{denz2005}\footfullcite[vgl.][S.111]{denz2005}

footshortcite\footshortcite[vgl.][S.111]{denz2005}footshort\footshortcite[vgl.][S.111]{denz2005}\footshortcite[vgl.][S.111]{denz2005}

\end{document}
dann wird dir auffallen, dass hinter meinem selbtgeschriebenen Befehl \footshortcite ein Leerzeichen eingefügt wird. Dieses möchte ich aber nicht haben. Wo kommt es denn her? Hast du eine Idee?

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

Beitrag von iTob »

(Ohne es jetzt probiert zu haben …) Kommentiere alle Zeilenenden in deiner Definition aus, das sollte abhilfe schaffen. KOMA hat dazu mal was auf seiner Seite geschrieben.

dabauer82
Forum-Anfänger
Forum-Anfänger
Beiträge: 26
Registriert: Di 2. Nov 2010, 09:58

Beitrag von dabauer82 »

mein Held :)

Antworten