
Я использую функции 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
который дает