删除 \footcite 前面的空格

删除 \footcite 前面的空格

我正在使用来自 GitHub 的这个 LATEX 模板,但遇到了一个小问题: https://github.com/andygrunwald/FOM-LaTeX-Template

如果我没有脚注引文的 [prenote] 条目,脚注中会插入一个空格。我想删除这个空格。可惜我不知道该怎么做?

这是我的乳胶代码:

% Optionen für Biblatex
\ExecuteBibliographyOptions{%
giveninits=false,
isbn=true,
url=true,
doi=false,
eprint=false,
maxbibnames=7, % Alle Autoren (kein et al.)
maxcitenames=2, % et al. ab dem 3. Autor
backref=false, % Rückverweise auf Zitatseiten
bibencoding=utf8, % wenn .bib in utf8, sonst ascii
bibwarn=true, % Warnung bei fehlerhafter bib-Datei
firstinits=true,
skipbib=false
}%

% et al. an Stelle von u.a.
\DefineBibliographyStrings{ngerman}{
   andothers = {{et\,al\adddot}},
}

% Klammern um das Jahr in der Fußnote
\renewbibmacro*{cite:labelyear+extrayear}{% 
  \iffieldundef{labelyear} 
    {} 
    {\printtext[bibhyperref]{% 
       \mkbibparens{% 
         \printfield{labelyear}% 
         \printfield{extrayear}}}}}

\DeclareNameFormat{last-first}{%
  \iffirstinits
    {\usebibmacro{name:family-given}
        {\namepartfamily}
        {\namepartgiveni}
        {\namepartprefix}
        {\namepartsuffix}
    }
    {\usebibmacro{name:family-given}
        {\namepartfamily}
        {\namepartgiven}
        {\namepartprefix}
        {\namepartsuffix}
    }%
  \usebibmacro{name:andothers}}

% Alternative Notation der Fußnoten
% Zeigt sowohl den Nachnamen als auch den Vornamen an
% Beispiel: \fullfootcite[Vgl. ][Seite 5]{Tanenbaum.2003}
\DeclareCiteCommand{\fullfootcite}[\mkbibfootnote]
  {\usebibmacro{prenote}}
  {\usebibmacro{citeindex}%
    \printnames[sortname][1-1]{author}%
    \addspace (\printfield{year})}
  {\addsemicolon\space}
  {\usebibmacro{postnote}}
  
% TEST
\DeclareCiteCommand{\footcite}[\mkbibfootnote]
  {\usebibmacro{prenote}}
  {\usebibmacro{citeindex}%
    \printnames[sortname][1-1]{author}%
    \addspace (\printfield{year})}
  {\addsemicolon\space}
  {\usebibmacro{postnote}}

%Autoren (Nachname, Vorname)
\DeclareNameAlias{default}{family-given}
\DeclareNameAlias{sortname}{last-first}

%Reihenfolge von publisher, year, address verändern
% Achtung, bisher nur für den Typ @book definiert

%% Definiert @Book Eintrag
\DeclareBibliographyDriver{book}{%
  \printnames{author}%
  %\space
  (\printfield{year})%
  \setunit*{:\space}%  
  \printfield{title}%
  \setunit*{,\space}%
  \printfield{edition}%
  \setunit*{,\space}%
  \printlist{location}%
  \setunit*{\space}%
  \printlist{publisher}%
  \setunit*{\space}%
  \printfield{year}%
%  \setunit*{,\space}% 
%  \printfield{isbn}%
  \finentry}

%% Definiert @Online Eintrag
\DeclareBibliographyDriver{online}{%
  \printnames{author}%
  \setunit*{(}%
  \printfield{year}%
  \setunit*{):\space}%
  \printfield{title}%
  \setunit*{\space}%
  \printfield{url}%
  \setunit*{,\space Aufruf am:\space}%
  \printfield{urlday}%
  \setunit*{.}%
  \printfield{urlmonth}%
  \setunit*{.}%
  \printfield{urlyear}%
  \finentry}
  
%% Definiert @misc Eintrag --> Literaturverwaltung mit Citavi
\DeclareBibliographyDriver{misc}{%
  \printnames{author}%
  \setunit*{\space(}%
 \printfield{year}%
  \setunit*{):\space}%
  \printfield{title}%
  \setunit*{\space}%
  \printfield{url}%
  \setunit*{,\space Aufruf am:\space}%
  \printfield{urlday}%
  \setunit*{.}%
  \printfield{urlmonth}%
  \setunit*{.}%
  \printfield{urlyear}%
  \finentry}

%% Definiert @Article Eintrag
\DeclareBibliographyDriver{article}{%
  \printnames{author}%
  \setunit*{\space (}%
  \printfield{year}%  
  \setunit*{):\space}%
  \printfield{title}%
  \setunit*{\space in:\space}%
  \usebibmacro{journal}%
  \setunit*{,\space}%
  \printfield{year}%
  \setunit*{,\space}%
  \printfield{volume}%
  \setunit*{. Jg ,\space Nr. }%
  \printfield{number}%
  \setunit*{,\space}%
  \printfield{pages}%  
  \finentry}  

%% Definiert @InProceedings Eintrag
\DeclareBibliographyDriver{inproceedings}{%
    \printnames{author}%
    \setunit*{,\space (}%
    \printfield{year}\newunit{)}%
    \newunit\newblockpunct
    \printfield{title}%
    \setunit*{\space}%  
    \usebibmacro{booktitle}%
    \setunit*{,\space}%
    \printfield{isbn}%
    \setunit*{,\space}% 
    \printfield{doi}%
    \finentry}
    
%% Definiert Gesetzestext
\DeclareBibliographyDriver{gesetz}{%
  \printnames{author}%
  \setunit*{\space(}%
 \printfield{year}%
  \setunit*{):\space}%
  \printfield{title}%
  \setunit*{\space}%
  \printfield{url}%
  \setunit*{,\space Aufruf am:\space}%
  \printfield{urlday}%
  \setunit*{.}%
  \printfield{urlmonth}%
  \setunit*{.}%
  \printfield{urlyear}%
  \finentry}

%Doppelpunkt nach dem letzten Autor
\renewcommand*{\labelnamepunct}{\addcolon\addspace }

%Komma an Stelle des Punktes
\renewcommand*{\newunitpunct}{\addcomma\space}

%Autoren durch Semikolon trennen
\newcommand*{\bibmultinamedelim}{\addsemicolon\space}%
\newcommand*{\bibfinalnamedelim}{\addsemicolon\space}%
\AtBeginBibliography{%
  \let\multinamedelim\bibmultinamedelim
  \let\finalnamedelim\bibfinalnamedelim
}

%Titel nicht kursiv anzeigen
\DeclareFieldFormat{title}{#1\isdot}

以下是一个示例报价:

~\footcite[Vgl. ][S. 1-9]{Nakamoto.2009}
~\footcite[][S. 1-9]{Nakamoto.2009}

结果:

在此处输入图片描述

有什么想法吗?非常感谢。

答案1

您的示例中有两个虚假空间来源。

  1. 该定义\DeclareNameFormat{last-first}会创建一个虚假空间。但该定义与 中的定义基本相同biblatex.def,因此您可以直接删除整个块

    \DeclareNameFormat{last-first}{%
      \iffirstinits
        {\usebibmacro{name:family-given}
            {\namepartfamily}
            {\namepartgiveni}
            {\namepartprefix}
            {\namepartsuffix}
        }
        {\usebibmacro{name:family-given}
            {\namepartfamily}
            {\namepartgiven}
            {\namepartprefix}
            {\namepartsuffix}
        }%
      \usebibmacro{name:andothers}}
    
  2. Vgl.in后面有一个空格\footcite[Vgl. ][S. 1-9]{Nakamoto.2009}。应该直接写成

     \footcite[Vgl.][1-9]{Nakamoto.2009}
    

    (您也不需要明确的S.。根据当前选择的语言,页面前缀将自动添加。)

相关内容