Leerzeichen in Zitat verschwindet bei Nutzung von mathfont

Fragen und Probleme, die nicht den obigen Kategorien zugeordnet werden können


roibot
Forum-Anfänger
Forum-Anfänger
Beiträge: 30
Registriert: Di 27. Dez 2011, 16:21

Leerzeichen in Zitat verschwindet bei Nutzung von mathfont

Beitrag 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

Gast

Beitrag 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}

Benutzeravatar
u_fischer
Forum-Meister
Forum-Meister
Beiträge: 4267
Registriert: Do 22. Nov 2012, 11:09
Kontaktdaten:

Beitrag von u_fischer »


roibot
Forum-Anfänger
Forum-Anfänger
Beiträge: 30
Registriert: Di 27. Dez 2011, 16:21

Beitrag 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.

roibot
Forum-Anfänger
Forum-Anfänger
Beiträge: 30
Registriert: Di 27. Dez 2011, 16:21

Update

Beitrag 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.

Antworten