
Beim Verwenden linguex
der Beispielnummerierungspackung \defaultfontfeatures{Numbers=OldStyle}
mit xetex oder luatex gibt es bei bestimmten Beispielnummern über 99 keinen Abstand zwischen der Beispielnummer und dem Text:
Minimalbeispiel (mit Auslassungspunkten für tatsächlich wiederholte Beispiele, die notwendig sind, um die Nummerierung über 99 zu erhöhen):
\documentclass{article}[12pt]
\usepackage{fontspec}
\defaultfontfeatures{Numbers=OldStyle}
\setmainfont{Junicode}
\usepackage{linguex}
\begin{document}
\ex. Hello, world! Quit. Lorem ipsum dolor sit amet, consectetur adipiscing elit, sed do eiusmod tempor incididunt ut labore et dolore magna aliqua.
\ex. Hello, world! Lorem ipsum dolor sit amet, consectetur adipiscing elit, sed do eiusmod tempor incididunt ut labore et dolore magna aliqua.
\ex. Hello, world! Lorem ipsum dolor sit amet, consectetur adipiscing elit, sed do eiusmod tempor incididunt ut labore et dolore magna aliqua.
\ex. Hello, world! Lorem ipsum dolor sit amet, consectetur adipiscing elit, sed do eiusmod tempor incididunt ut labore et dolore magna aliqua.
\ex. Hello, world! Lorem ipsum dolor sit amet, consectetur adipiscing elit, sed do eiusmod tempor incididunt ut labore et dolore magna aliqua.
....
\ex. Hello, world! Lorem ipsum dolor sit amet, consectetur adipiscing elit, sed do eiusmod tempor incididunt ut labore et dolore magna aliqua.
\end{document}
Gibt es eine Möglichkeit, dies zu umgehen, außer keine Oldstyle-Nummern zu verwenden? Ich habe versucht, mit verschiedenen Werten für Linguex zu experimentieren \Exlabelwidth
, aber keiner der Werte schien einen Unterschied zu machen.
Antwort1
Die Ursache des Problems
Das Problem wird dadurch verursacht, dass die Schriftart Junicode echte proportionale Mediävalnummern hat, während einige andere Schriftarten sowohl Mediävalnummern mit fester Breite als auch proportionale Mediävalnummern haben. Das linguex
Paket legt eine interne Länge fest, die ein Vielfaches der Ziffer mit der kleinsten Breite in der aktuellen Schriftart ist. Die Ziffer mit der kleinsten Breite in der Schriftart Junicode ist die 1
, und diese erweist sich im Verhältnis zu einigen anderen Zahlenbreiten in der Schriftart als zu klein, sodass die Berechnung des Beschriftungsabstands durcheinander gerät.
Wir können dies in Aktion sehen, indem wir die Breite der alten Junicode-Zahlen mit der Linux Libertine-Schriftart vergleichen, die beide Sorten hat. Bei den proportionalen alten Zahlen tritt das Problem auf, bei den alten Zahlen mit fester Breite jedoch nicht. (Danke an Jason für den Hinweis.)
\documentclass[varwidth]{standalone}
\usepackage{fontspec}
\newfontfamily\Junicode[Numbers=OldStyle]{Junicode}
\newfontfamily\LibertineFixed[Numbers=OldStyle]{Linux Libertine O}
\newfontfamily\LibertineProportional[Numbers={OldStyle,Proportional}]{Linux Libertine O}
\usepackage{linguex}
\usepackage{pgffor}
\newlength{\tmplen}
\newcommand{\displaywidthof}[1]
{\settowidth{\tmplen}{#1}\parbox{.8in}{#1: \the\tmplen}}
\begin{document}
\foreach \x in {Junicode,LibertineProportional,LibertineFixed}{
\csname\x\endcsname
\x
\foreach \y in {0,...,9}{
\displaywidthof{\y}
}
\setcounter{ExNo}{99}
\ex. XXX.
\ex. YYY.
}
\end{document}
Die Lösung des Problems
Glücklicherweise gibt es eine Möglichkeit, dies zu beheben: Einige nicht dokumentierte Befehle im Paket ermöglichen es Ihnen, Breiten für den Beschriftungsabstand festzulegen. Der Autor von linguex
weist in der Dokumentation auf das Problem hin.
Ich hoffe, dass die Schriftarten kooperativ sind und den Unterschied zwischen der Breite der Ziffern minimal halten. Andernfalls kann es zu einem seltsamen Verhalten kommen.
\Exlabelwidth
Tatsächlich habe ich dabei geholfen, ein ähnliches Problem mit einer anderen Schriftart zu lösen, das der ursprüngliche Grund für diesen Code war. Der Befehl:
\philabeldefault
bewirkt Folgendes:
\renewcommand{\philarge}{4\mindigitwidth}
\renewcommand{\philmiddle}{3\mindigitwidth}
\renewcommand{\philsmall}{2\mindigitwidth}}
Dabei sind die Zahlen hier die Multiplikatoren für 100er, 10er und 1er. Beachten Sie, dass die Multiplikatoren für jeden Satz unterschiedlich sind, was zu einer ungleichmäßigen Abstufung führt.
\philarge
Eine Möglichkeit, das Problem zu beheben, besteht darin, einfach den Multiplikator für die Länge zu ändern :
\renewcommand{\philarge}{4.5\mindigitwidth}
funktioniert gut.
Sie können jedoch auch für alle drei Längen eine feste Länge angeben, und zwar mit dem folgenden Befehl:
\phlabelwidth
Dies ist vielleicht eine bessere Lösung.
\phlabelwidth{1.4em}
löst das Problem gut.
\documentclass{article}[12pt]
\usepackage{fontspec}
\defaultfontfeatures{Numbers=OldStyle}
\setmainfont{Junicode}
\usepackage{linguex}
\phlabelwidth{1.4em}
\begin{document}
\ex. Hello, world! Quit. Lorem ipsum dolor sit amet, consectetur adipiscing elit, sed do eiusmod tempor incididunt ut labore et dolore magna aliqua.
\ex. Hello, world! Lorem ipsum dolor sit amet, consectetur adipiscing elit, sed do eiusmod tempor incididunt ut labore et dolore magna aliqua.
\ex. Hello, world! Lorem ipsum dolor sit amet, consectetur adipiscing elit, sed do eiusmod tempor incididunt ut labore et dolore magna aliqua.
\setcounter{ExNo}{9}
\ex. Hello, world! Lorem ipsum dolor sit amet, consectetur adipiscing elit, sed do eiusmod tempor incididunt ut labore et dolore magna aliqua.
\ex. Hello, world! Lorem ipsum dolor sit amet, consectetur adipiscing elit, sed do eiusmod tempor incididunt ut labore et dolore magna aliqua.
\ex. Hello, world! Lorem ipsum dolor sit amet, consectetur adipiscing elit, sed do eiusmod tempor incididunt ut labore et dolore magna aliqua.
\setcounter{ExNo}{99}
\ex. Hello, world! Lorem ipsum dolor sit amet, consectetur adipiscing elit, sed do eiusmod tempor incididunt ut labore et dolore magna aliqua.
\ex. Hello, world! Lorem ipsum dolor sit amet, consectetur adipiscing elit, sed do eiusmod tempor incididunt ut labore et dolore magna aliqua.
\ex. Hello, world! Lorem ipsum dolor sit amet, consectetur adipiscing elit, sed do eiusmod tempor incididunt ut labore et dolore magna aliqua.
\ex. Hello, world! Lorem ipsum dolor sit amet, consectetur adipiscing elit, sed do eiusmod tempor incididunt ut labore et dolore magna aliqua.
\ex. Hello, world! Lorem ipsum dolor sit amet, consectetur adipiscing elit, sed do eiusmod tempor incididunt ut labore et dolore magna aliqua.
\end{document}