Fußnote automatischer Punkt bei ebd. doppelt Thema ist als GELÖST markiert

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


MoeWe
Forum-Meister
Forum-Meister
Beiträge: 802
Registriert: Fr 30. Aug 2019, 15:35
Kontaktdaten:

Re: Fußnote automatischer Punkt bei ebd. doppelt

Beitrag von MoeWe »

In der Tat ist es auf lange Sicht nie ganz "ungefährlich", an internen Befehlen herumzudoktern. LaTeX bemüht sich zwar, stabil zu sein, aber wo gehobelt wird, fallen Späne: Wenn man neue Funktionen will, dann muss man eben auch hinnehmen, dass sich mal etwas ändert. In dem Fall hier ist es mir leider nicht gelungen, mit den vorhandenen KOMA-Script-Hooks die richtige Ausgabe zu erzeugen und auch die anderen involvierten Makros eigneten sich nicht gut zum Anpassen. Es blieb mir dann die Wahl, ob ich den internen Befehl \@footnotetext umdefiniere oder wie ursprünglich in deinem Code "von außen" \footnote umbastele. Beides ist meiner Meinung nach nicht optimal. Letztlich habe ich mich für die Variante entschieden, die mein ästhetisches Empfinden weniger verletzt. Auch wenn sie auf lange Sicht riskanter ist (und ich weiß, dass im Allgemeinen kürzerer Code präferiert wird).

Das Problem mit \AtBeginDocument{\let\normalsfcodes\frenchspacing} ist, dass es (wegen des French-Spacings) nun ungewollte Punkte hinzufügt, wenn die Fußnote mit einem nicht von biblatex erzeugten Satzzeichen endet.
\documentclass{scrartcl}
\usepackage[ngerman]{babel}

\usepackage{ifthen}

%Automatische Punktierung der Fußnoten
\let\orgfootnote\footnote
\newcommand\myautodot{%
\ifthenelse{\the\spacefactor>\sfcode`,}{}{.}%
}
\renewcommand\footnote[2][\empty]{%
\ifx#1\empty%
\orgfootnote{\normalsfcodes#2\myautodot}%
\else%
\orgfootnote[#1]{\normalsfcodes#2\myautodot}%
\fi%
}

\AtBeginDocument{\let\normalsfcodes\frenchspacing}

\begin{document}
Lorem\footnote{Ein Text ohne Punkt}
ipsum\footnote{Ein Satz mit Punkt.}
dolor\footnote{Wie bitte?}
\end{document}
Bei \frenchspacing haben ja alle Satzzeichen Space-Factor 1000, sodass \the\spacefactor>\sfcode`, bei keinem Zeichen wahr ist. Nur von biblatex erzeugte Zeichen haben einen höheren Space-Factor. Daher geht es in diesem Kontext dann doch. Aber das ist dann eher Zufall, da der Test in einem anderen Space-Factor-Regime ausgeführt wird und gar nichts über biblatexs Einstellungen weiß.

Die ganze Sache ist also äußerst frickelig. Bei LaTeX gibt es so viele Möglichkeiten, wie andere Pakete und Befehle an Dingen herumspielen können, dass Du Dir bei so einer Automatik wie hier nie ganz sicher sein kannst, dass alles wie erwartet funktioniert. Ich bin bei meinem Code relativ zuversichtlich, dass es mit einem LaTeX-System auf heutigem Stand für Fußnoten, in denen der Text entweder manuell eingegeben oder von biblatex erzeugt wird, das Richtige tut. Ich möchte aber keinesfalls meine Hand dafür ins Feuer legen, dass der Code auch das tut, was Du gerne hättest, wenn Du den Text der Fußnote mit Befehlen eines anderen Pakets beendest. Es hindert diesen hypothetischen Befehl nämlich rein gar nichts daran, die Space-Factor-Werte so zu ändern, dass die Detektion nun nicht mehr wie erwartet funktioniert. Außerdem kann ich nicht garantieren, dass der Code in Zukunft dasselbe tut. Denn Definitionen können sich ändern (siehe Ulrikes Hinweis - und sie muss es wissen). So oder so musst Du also alle Deine Fußnoten manuell nachprüfen. Es ist dann zwar ein zusätzlicher Aufwand, bei jeder Prüfung den Punkt manuell hinzuzufügen, aber dennoch würde ich eher dazu raten, auf so eine Automatik zu verzichten, als sich dauerhaft darauf zu verlassen.

Texian
Forum-Newbie
Forum-Newbie
Beiträge: 6
Registriert: Sa 6. Mai 2023, 16:03

Re: Fußnote automatischer Punkt bei ebd. doppelt

Beitrag von Texian »

Vielen lieben Dank für eure Rückmeldungen und Ausführungen – für das aktuelle Projekt nehme ich einen eurer Vorschläge und werde in Zukunft dann einfach die Punkte manuell setzten; das sollte insgesamt wohl Stress ersparen, weil man ja sowieso nochmal die Fußnoten überprüft. Vielen Dank für eure Mühe :)

Antworten