我正在使用来自 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
您的示例中有两个虚假空间来源。
该定义
\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}}
Vgl.
in后面有一个空格\footcite[Vgl. ][S. 1-9]{Nakamoto.2009}
。应该直接写成\footcite[Vgl.][1-9]{Nakamoto.2009}
(您也不需要明确的
S.
。根据当前选择的语言,页面前缀将自动添加。)