Anpassen des durch einen neuen Befehl hinzugefügten Abstands

Anpassen des durch einen neuen Befehl hinzugefügten Abstands

Ich schreibe ein Dokument, in dem ich eine andere Schriftart als die Standardschrift von LaTeX verwende. Ich verwende EB Garamond, zu dessen Funktionen unter anderem Kleinbuchstaben im alten Stil gehören. Ich bin mit dieser Funktion zufrieden und möchte, dass fast alle im Dokument vorhandenen Zahlen in diesem Format vorliegen.

Allerdings nicht alle Nummern. Ich nummeriere einige Absätze, indem ich ihnen Folgendes voranstelle:§ [Nummer].---[Text] (zB§ 1.---[Text].). Mir wäre es lieber, wenn die Zahlen dort in Großbuchstaben wären, was EB Garamond durch die Schriftfunktionen tnumund zulässt lnum.

Da ich die oben genannte Nummerierungsnotation oft verwenden werde, dachte ich, dass die Definition eines neuen Befehls am effizientesten wäre; eines neuen Befehls, der die obige Schriftartfunktion auf die Nummer anwendet. Ich habe den Befehl benannt \num:

\newcommand{\num}[1]{
    {\addfontfeatures{RawFeature={+tnum, +lnum}}#1}.
}

Ich bin ein absoluter Neuling, wenn es um das Erstellen neuer Befehle geht. Dieser hier hat jedoch funktioniert, wenn auch nicht ganz so, wie ich es wollte. Der neue Befehl \numhat die Zahl effektiv in Großbuchstaben geändert (siehe die zweite Textzeile im angehängten Bild) und links und rechts von der Zahl Leerraum eingefügt (verwenden Sie die hinzugefügten roten Linien, um den Abstand mit den anderen Zeilen zu vergleichen).

Vielleicht nicht die beste Idee, aber ich habe darüber nachgedacht, auf beiden Seiten ein \(„und“ hinzuzufügen \). Dadurch wurde der Abstand wie gewünscht entfernt, die Schriftart der Zahl jedoch wieder auf die Standardschriftart zurückgesetzt (siehe Zeile drei im beigefügten Bild).

Meine Frage:Was muss ich der Definition des neuen Befehls oder an anderer Stelle im Dokument hinzufügen oder ändern, um die seltsamen Leerzeichen um die Ziffer zu entfernen?UndSchriftart der Nummer beibehalten, EB Garamond?

Das MWE:

\documentclass[10pt]{memoir}
\usepackage[T1]{fontenc}
\usepackage{fontspec}

\setmainfont{EB Garamond}

\newcommand{\num}[1]{
    {\addfontfeatures{RawFeature={+tnum, +lnum}}#1}.
}

\begin{document}

§ 5.---To the left is a lowercase, oldstyle Garamond 5.

§ \num{5}---To the left is an "uppercase" Garamond 5. NB the spacing with the command.

§ \(\num{5}\)---As before, but the attempt to remove the spacing changed the font of the 5.

The above are some visual examples. Oldstyle lowercase numerals: 1234567890.

\end{document}

Und das Bild, mit hinzugefügten roten Linien, um die seltsamen Abstände hervorzuheben, auf die ich verzichten würde:

Das Produkt der MWE.

Antwort1

Wie David Carlisle in einem Kommentar anmerkte, war der Fehler ganz einfach. Davor und danach wurden Leerzeichen eingefügt, weil der neue Befehl folgendermaßen definiert war:

\newcommand{\num}[1]{
    {\addfontfeatures{RawFeature={+tnum, +lnum}}#1}.
}

Als es hätte sein sollen:

\newcommand{\num}[1]{{\addfontfeatures{RawFeature={+tnum, +lnum}}#1}.}

Die Art, wie ich den Befehl zuerst geschrieben habe, fügte das Leerzeichen davor und danach hinzu. Die letztere Art fügt keine unerwünschten Leerzeichen hinzu. Nochmals vielen Dank an Herrn Carlisle für seine Antwort!

verwandte Informationen