Отключить функцию Old Number otf для нумерации строк в ConTeXt

Отключить функцию Old Number otf для нумерации строк в ConTeXt

Я использую функции OldNumber в своих презентациях, потому что они мне нравятся (de gustibus…). Однако они выглядят довольно странно, когда используются для нумерации строк. Что мне сделать, чтобы строки были пронумерованы стандартным способом, пока onum все еще включен в тексте? Держу пари, что с этой setuplinenumbering conversionопцией что-то связано, но я не знаю, как ее связать с featureкомандой.

%\setuplinenumbering[conversion=number]
\definefontfeature [default] [onum=yes]
\definefontfeature [f:lnum] [onum=no]
\starttext
0123456789

\feature[f:lnum] %does not have any effect, which wouldn' be exactly what I want btw
\startlinenumbering
\input dawkins
\stoplinenumbering
\stoptext

NB: onumФункция могла быть изменена и раньше startlinenumbering. Я пытался поиграть с ней, но безуспешно. И я хотел бы, чтобы текст сохранил свой старый стиль чисел, так что это было бы обходным путем.

решение1

Во-первых, вы никогда не должны полностью переопределять defaultнабор функций. Лучше расширить его с помощью:

\definefontfeature [default] [default] [onum=yes]

Затем определите f:lnumфункцию, которая отключает onumфункциюи включает lnumфункцию:

\definefontfeature [f:lnum]  [default] [onum=no, lnum=yes]

Эту функцию можно использовать следующим образом:

{\feature[+][f:lnum] 0123456789}

Чтобы включить эту функцию для нумерации строк, используйте клавишу style(я также добавил align=flushright)

\setuplinenumbering[align=flushright,style={\feature[+][f:lnum]}]

Вот полный пример:

\definefontfeature [default] [default] [onum=yes]
\definefontfeature [f:lnum]  [default] [onum=no, lnum=yes]

\setuplinenumbering[align=flushright,style={\feature[+][f:lnum]}]

\starttext

\startlinenumbering
\input dawkins
\stoplinenumbering
\stoptext

который дает

введите описание изображения здесь

Связанный контент