Seite 1 von 1

Leerzeichen in Zitat verschwindet bei Nutzung von mathfont

Verfasst: Mo 15. Jul 2019, 23:23
von roibot
Guten Abend zusammen,

ich habe gerade ein sehr eigenartiges Problem, zu dem ich keinerlei Informationen finden konnte. Wenn ich das Paket mathfont mit einer eigenen Schrift lade, verschwindet das Leerzeichen vor dem & in Zitaten in Klammern. Ohne die Schrift wird das Leerzeichen korrekt ausgegeben.
% !TeX program = lualatex

\documentclass[12pt,a4paper]{article}
\usepackage[english]{babel}
\usepackage{csquotes}
\usepackage[style=apa, backend=biber]{biblatex}

\usepackage[no-math]{fontspec}
\setmainfont{Times New Roman}

\usepackage{mathfont}
\mathfont{Times New Roman}

\begin{filecontents}{test.bib}
@article{greenwade93,
    author  = "Greenwade, George D and Tester, Someone",
    title   = "The {C}omprehensive {T}ex {A}rchive {N}etwork ({CTAN})",
    year    = "1993",
    journal = "TUGBoat",
    volume  = "14",
    number  = "3",
    pages   = "342--351"}
\end{filecontents}
\addbibresource{test.bib}

\begin{document}
Not right \parencite{greenwade93}.
\printbibliography
\end{document}
Ich habe das Beispiel in Overleaf nicht zum Laufen bekommen, da scheint mathfont zu fehlen. Lokal mit MacTeX-2019 funktioniert es. So wie das Beispiel steht, wird der Fehler sichtbar. Wenn mathfont auskommentiert wird, ist alles korrekt.

Wieso verschwindet das Leerzeichen vor dem &, wenn ich mathfont mit einer eigenen Schrift lade?

Viele Grüße
roibot

Verfasst: Di 16. Jul 2019, 07:38
von Gast
Schon das folgende Beispiel zeigt, dass mathfont einfach an \& herumbastelt und den Befehl so umdefiniert, dass das Leerzeichen nach dem & verschwindet.
\documentclass[12pt,a4paper]{article}
\usepackage[english]{babel}
\usepackage{csquotes}

\usepackage[no-math]{fontspec}
\setmainfont{Times New Roman}

\usepackage{mathfont}
\mathfont{Times New Roman}

\begin{document}
Chuck \& Tester
\end{document}
Tatsächlich schreibt die Dokumentation von mathfont dazu
Finally, a technical point: when mathfont acts on the symbols characters, it redefines the four macros \#, \$, \%, and \& as robust commands more complicated than a single \char, so constructs like \number\# will need to be rewritten as \number`\#.
Ob dieser Nebeneffekt (im Text-Modus!) gewünscht oder vom Entwickler bewusst in Kauf genommen wird, weiß ich nicht. Da hilft nur, beim Entwickler nachzufragen und ihn auf diese sehr ungünstige Änderung des Verhaltens im Vergleich zu "Standard-LaTeX" aufmerksam zu machen.

Abhilfe schafft
\&{}
im Text oder bei biblatex
\&\addspace
statt dem sonst üblichen \&\space.
\documentclass[12pt,a4paper]{article}
\usepackage[english]{babel}
\usepackage{csquotes}
\usepackage[style=apa, backend=biber]{biblatex}

\usepackage[no-math]{fontspec}
\setmainfont{Times New Roman}

\usepackage{mathfont}
\mathfont{Times New Roman}

\DeclareDelimFormat[bib,biblist]{finalnamedelim}{%
  \ifthenelse{\value{listcount}>\maxprtauth}
    {}
    {\ifthenelse{\value{liststop}>2}
       {\finalandcomma\addspace\&\addspace}
       {\addspace\&\addspace}}}

\DeclareDelimFormat[bib,biblist]{finalnamedelim:apa:family-given}{%
  \ifthenelse{\value{listcount}>\maxprtauth}
    {}
    {\finalandcomma\addspace\&\addspace}}

\DeclareDelimFormat[parencite,nptextcite,fullcite,fullcitebib]{finalnamedelim}
  {\ifnum\value{liststop}>2 \finalandcomma\fi\addspace\&\addspace}

\addbibresource{biblatex-examples.bib}

\begin{document}
Chuck \&{} Tester \parencite{sigfridsson}.
\printbibliography
\end{document}

Verfasst: Di 16. Jul 2019, 09:38
von u_fischer

Verfasst: Di 16. Jul 2019, 12:56
von roibot
Vielen Dank für eure Antworten. Ich habe dem Autor von mathfont geschrieben und setze erstmal auf unicode-math, auch wenn ich da leider nicht genau die selbe Schrift wie für den Text verwenden kann.

Update

Verfasst: Fr 19. Jul 2019, 17:50
von roibot
Dem Autor ist das Problem bekannt und er empfiehlt folgenden Code als Fix, bis in ein paar Monaten ein Update seines Pakets erscheint.
\let\ampersand\&
\def\&{\ampersand{}}
Allerdings ist das Paket mathfont auch ohne den Fehler nur mit Bedacht zu empfehlen, wie der Link von Ulrike Fischer zeigt.