Referenzierung auf Fussnote erzeugt ungewolltes Leerzeichen

Antwort erstellen


Diese Frage dient dazu, das automatisierte Versenden von Formularen durch Spam-Bots zu verhindern.
Smilies
:D :) :( :o :shock: :? 8) :lol: :-x :P :oops: :cry: :evil: :twisted: :roll: :wink: :!: :?: :idea: :arrow: :| :mrgreen:

BBCode ist eingeschaltet
[img] ist eingeschaltet
[flash] ist ausgeschaltet
[url] ist eingeschaltet
Smilies sind eingeschaltet

Die letzten Beiträge des Themas

Ich habe die Datenschutzerklärung gelesen und bin damit einverstanden.

   

Wenn du eine Datei oder mehrere Dateien anhängen möchtest, gib die Details unten ein.

Ansicht erweitern Die letzten Beiträge des Themas: Referenzierung auf Fussnote erzeugt ungewolltes Leerzeichen

von Besserwisser » Fr 9. Nov 2012, 18:17

Zu der Geschichte mit den Leerzeichen kann ich übrigens diese Seite empfehlen: http://www.komascript.de/signifikanteLeerzeichen

von cgnieder » Fr 9. Nov 2012, 16:37

Wie hoffentlich bekannt ist wird das Ende einer Zeile von TeX als Leerzeichen interpretiert. Da in der Definition mehrere Zeilenenden vorhanden sind, werden diese als Leerzeichen eingefügt. Daher müssen die Zeilenenden versteckt werden:
\newcommand{\footnoteremember}[2]{%
  \footnote{#2}% <= hier fehlte %
  \newcounter{#1}% <= hier fehlte %
  \setcounter{#1}{\value{footnote}}% <= hier fehlte %
}
\newcommand{\footnoterecall}[1]{%
  \footnotemark[\value{#1}]% <= hier fehlte %
}
Zeilenenden treten nicht auf, wenn ein Makro ohne Argument endet:
\documentclass{article}
\newcommand*\blubber{blubber}
\newcommand*\test{%
 % nach blubber braucht man kein % da nach Makros Leerzeichen ignoriert werden:
  \blubber
}

\newcommand*\Blubber[1]{#1}
\newcommand*\Test[1]{%
  \Blubber{#1}% jetzt muss versteckt werden
}
\begin{document}

Text \test{} Text \Test{bla} Text

\end{document}
Es ist übrigens keine gute Idee, für jede mehrfach referenzierte Fußnote einen neuen Zähler zu definieren. Besser wäre etwas derartiges:
\makeatletter
\newcommand{\footnoteremember}[2]{%
  \footnote{#2}%
  \@namedef{remember@fn@#1}{\arabic{footnote}}%
}
\newcommand{\footnoterecall}[1]{%
  \footnotemark[\@nameuse{remember@fn@#1}]%
}
\makeatother
Einfacher ist es aber, bestehende Lösungen zu verwenden, wie das schon erwähnte \footref von KOMA-Script:
% mindestens zweimal kompilieren
\documentclass{article}
\usepackage{scrextend}% nicht nötig mit einer KOMA-Klasse
\begin{document}

Text\footnote{blub\label{fn:bla}}
Text\footref{fn:bla}

\end{document}
oder bei vielen immer wieder kehrenden Fußnoten vielleicht das »fixfoot« Paket:
% mindestens zweimal kompilieren
\documentclass{article}
\usepackage{fixfoot}
\DeclareFixedFootnote\bla{blub}
\begin{document}

Text\bla{}
Text\bla

\end{document}
Grüße

von Sepp99 » Mo 17. Sep 2012, 06:53

Leider kein vollständiges Minimalbeispiel [4] - bei den KOMA-Script-Klassen gibt es den Befehle
\footref{Referenz}
Näheres in scrguide.pdf mit Beispiel.

Gruß, Sepp.-

von Speravir » Mo 17. Sep 2012, 01:38

Du warst ja etwas schweigsam darüber, ob das ungewollte Leerzeichen bei Verwendung von „\footnoterember“ oder „\footnoterecall“ oder bei beiden auftritt. Ohne selbst Experte zu sein, vermute ich, dass Du mindestens ein signifikantes Leerzeichen übersehen hast. Als Test noch ein paar Prozentzeichen einzufügen, hätte nichts geschadet (mit „<--“ markiert):
%---Fußnoten mehrfach referenzieren
\newcommand{\footnoteremember}[2]{%
  \footnote{#2}% <--
  \newcounter{#1}% <--
  \setcounter{#1}{\value{footnote}}% <--
}
\newcommand{\footnoterecall}[1]{%
  \footnotemark[\value{#1}]% <--
}

Es gibt übrigens auch ein LaTeX-Paket für diesen Zweck namens „savefnmark“. Da es die Dokumentation dazu in MiKTeX leider fehlt, hier eine (tex-live-basierte) Online-Quelle:

http://texdoc.net/texmf-dist/doc/latex/ ... fnmark.pdf

Referenzierung auf Fussnote erzeugt ungewolltes Leerzeichen

von Basti » Mi 29. Aug 2012, 09:39

Hi, ich habe aus dem netz folgenden Code, welcher eine Fussnote "speichert" und referenzieren lässt.
%---Fußnoten mehrfach referenzieren
\newcommand{\footnoteremember}[2]{%
  \footnote{#2}
  \newcounter{#1}
  \setcounter{#1}{\value{footnote}}
}
\newcommand{\footnoterecall}[1]{%
  \footnotemark[\value{#1}]
}
Die Commands funktionieren auch soweit, mit der Ausnahme, dass im Text selbst nach der hochgestellten Fussnote ein ungewolltes Leerzeichen auftaucht.
Weiss jemand wie ich dieses entfernen kann?

Anbei ein Bild des Phänomens.
Dateianhänge
ungewolltesLeerzeichen.jpg
ungewolltesLeerzeichen.jpg (3.94 KiB) 2077 mal betrachtet

Nach oben