Leerzeichenproblem aus einer Vorlage

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: Leerzeichenproblem aus einer Vorlage

von MoeWe » Fr 20. Sep 2019, 23:25

In der Definition von cite fehlten zwei %s, jeweils nach den Klammern mit dem \printnames{labelname}.

Ich würde übrigens dazu raten, die Einrückung vom Code zu übernehmen oder - wenn Dir die Einrückung nicht gefällt - sie sinnvoll umzuarbeiten. So war der Code extrem schwer zu lesen, da die Einrückung fast völlig gegen die Struktur ging.
\documentclass{article}
\usepackage[ngerman]{babel}

\usepackage[
style=ext-authortitle-ibid,
backend=biber,
ibidtracker=constrict,
idemtracker=constrict,  
loccittracker=constrict,
]{biblatex}

\usepackage{filecontents}
\begin{filecontents*}{\jobname.bib}
@book{test2019,
Author    = {Max Mustermann and Maria Musterfrau and Peter Pan},
title = {Test},
pages ={123-234},
series = {Eine Reihe von Buechern}
}
@book{test2018,
title = {Test},
pages ={123-234},
series = {Eine Reihe von Buechern}
}

\end{filecontents*}
\addbibresource{\jobname.bib}

\makeatletter
\def\blx@loccit@stricttracker#1{%
  \global\csundef{blx@lastnote@#1@\abx@field@entrykey}%
  \blx@ifcitesingle
    {\blx@imc@iffieldundef{postnote}
       {\@firstoftwo}
       {\expandafter\blx@imc@ifpages
        \expandafter{\abx@field@postnote}}
       {\global\cslet{blx@lastnote@#1@\abx@field@entrykey}\abx@field@postnote
        \xifinlistcs\abx@field@entrykey{blx@trackkeys@#1}
          {}
          {\listcsxadd{blx@trackkeys@#1}\abx@field@entrykey}}
       {}}
    {}}

\def\blx@loccit@numcheck#1{%
  \blx@imc@iffieldundef{postnote}
    {\ifcsundef{blx@lastnote@#1@\abx@field@entrykey}}
    {\expandafter\blx@imc@ifpages
     \expandafter{\abx@field@postnote}
       {\blx@imc@iffieldequalcs{postnote}{blx@lastnote@#1@\abx@field@entrykey}}
       {\@secondoftwo}}}
\makeatother

\newtoggle{cbx:droppageprefix}

\renewbibmacro*{cite:ibid}{%
  \ifloccit
    {\printtext[bibhyperref]{\bibstring[\mkibid]{ibidem}}%
     \global\booltrue{cbx:loccit}}
    {\printtext[bibhyperref]{\bibstring[\mkibid]{loccit}}%
     \global\toggletrue{cbx:droppageprefix}}}

\renewbibmacro*{cite}{%
  \global\boolfalse{cbx:loccit}%
  \global\togglefalse{cbx:droppageprefix}%
  \iffieldundef{shorthand}
    {\ifthenelse{\ifciteibid\AND\NOT\iffirstonpage}
       {\usebibmacro{cite:ibid}}
       {\ifthenelse{\ifciteidem\AND\NOT\iffirstonpage}
          {\bibstring[\mkibid]{idem\thefield{gender}}}
          {\printnames{labelname}}%
        \setunit*{\printdelim{nametitledelim}}%
        \usebibmacro{cite:title}}}%
    {\ifthenelse{\ifciteibid\AND\NOT\iffirstonpage}
       {\usebibmacro{cite:ibid}}
       {\ifthenelse{\ifciteidem\AND\NOT\iffirstonpage}
          {\bibstring[\mkibid]{idem\thefield{gender}}}
          {\printnames{labelname}}%
        \setunit*{\printdelim{nametitledelim}}%
        \usebibmacro{cite:shorthand}}}}

\begin{document}
Test.\footcite[123]{test2019}

Test.\footcite[123]{test2019}\footcite[125]{test2019}\footcite[123]{test2018}

Test.\footcite[123]{test2018}
\printbibliography
\end{document}

Leerzeichenproblem aus einer Vorlage

von Gast » Fr 20. Sep 2019, 20:57

Ich habe von einem netten Community-Member einen Code erstellt bekommen, mit dem ebd., a.a.O. sowie ders. beim zitieren. Der Code in einem Minimalbeispiel sieht wie folgt aus:
\documentclass{article} 
\usepackage[ngerman]{babel} 

	\usepackage[
style=ext-authortitle-ibid, 
backend=biber, 
ibidtracker=constrict, 
idemtracker=constrict,  
loccittracker=constrict,
]{biblatex} 

\usepackage{filecontents} 
\begin{filecontents*}{\jobname.bib} 
@book{test2019, 
Author    = {Max Mustermann and Maria Musterfrau and Peter Pan}, 
title = {Test}, 
pages ={123-234},
series = {Eine Reihe von Buechern}
}
@book{test2018, 
title = {Test}, 
pages ={123-234},
series = {Eine Reihe von Buechern}
}

\end{filecontents*} 
\addbibresource{\jobname.bib} 

	\makeatletter 
\def\blx@loccit@stricttracker#1{% 
	\global\csundef{blx@lastnote@#1@\abx@field@entrykey}% 
	\blx@ifcitesingle 
	{\blx@imc@iffieldundef{postnote} 
		{\@firstoftwo} 
		{\expandafter\blx@imc@ifpages 
			\expandafter{\abx@field@postnote}} 
		{\global\cslet{blx@lastnote@#1@\abx@field@entrykey}\abx@field@postnote 
			\xifinlistcs\abx@field@entrykey{blx@trackkeys@#1} 
			{} 
			{\listcsxadd{blx@trackkeys@#1}\abx@field@entrykey}} 
		{}} 
	{}} 

\def\blx@loccit@numcheck#1{% 
	\blx@imc@iffieldundef{postnote} 
	{\ifcsundef{blx@lastnote@#1@\abx@field@entrykey}} 
	{\expandafter\blx@imc@ifpages 
		\expandafter{\abx@field@postnote} 
		{\blx@imc@iffieldequalcs{postnote}{blx@lastnote@#1@\abx@field@entrykey}} 
		{\@secondoftwo}}} 
\makeatother 

\newtoggle{cbx:droppageprefix} 

\renewbibmacro*{cite:ibid}{% 
	\ifloccit 
	{\printtext[bibhyperref]{\bibstring[\mkibid]{ibidem}}% 
		\global\booltrue{cbx:loccit}} 
	{\printtext[bibhyperref]{\bibstring[\mkibid]{loccit}}% 
		\global\toggletrue{cbx:droppageprefix}}} 

\renewbibmacro*{cite}{% 
	\global\boolfalse{cbx:loccit}% 
	\global\togglefalse{cbx:droppageprefix}%
	\iffieldundef{shorthand}	{\ifthenelse{
			\ifciteibid\AND\NOT\iffirstonpage} 
		{\usebibmacro{cite:ibid}} 
		{\ifthenelse{\ifciteidem\AND\NOT\iffirstonpage} 
			{\bibstring[\mkibid]{idem\thefield{gender}}} 
			{\printnames{labelname}} 
			\setunit*{\printdelim{nametitledelim}}% 
			\usebibmacro{cite:title}}}% 	
	{\ifthenelse{
			\ifciteibid\AND\NOT\iffirstonpage} 
		{\usebibmacro{cite:ibid}} 
		{\ifthenelse{\ifciteidem\AND\NOT\iffirstonpage} 
			{\bibstring[\mkibid]{idem\thefield{gender}}} 
			{\printnames{labelname}} 
			\setunit*{\printdelim{nametitledelim}}% 
			\usebibmacro{cite:shorthand}}}
}% 

\begin{document} 
Test.\footcite[123]{test2019} 

Test.\footcite[123]{test2019}\footcite[125]{test2019}\footcite[123]{test2018} 

Test.\footcite[123]{test2018}
\printbibliography 
\end{document}
Nun ist das Problem, was dabei aufgetaucht ist, dass im Falle von keinem Autor ein Leerzeichen vor dem Titel steht in der Fußnote. Da ich leider nicht so bewandert bin, versteh ich den erstellten Code nicht und kann daher auch nicht nachvollziehen, woher dieses Leerzeichen kommt. Wenn ich den Code lösche, gibt es kein Problem mit dem Leerzeichen, also muss es an irgendeiner Stelle im Code liegen.

Danke schon mal im Voraus.

Nach oben