Все ответы, кроме одного, используют n.to_s
. @ MrMorphe's этого не делает, но он создает массив для редактирования. Вот способ, который не использует ни Fixnum # to_s , ни Array # join .
def separate(n,c=' ')
m = n
str = ''
loop do
m,r = m.divmod(1000)
return str.insert(0,"#{r}") if m.zero?
str.insert(0,"#{c}#{"%03d" % r}")
end
end
separate(1) #=> "1"
separate(12) #=> "12"
separate(123) #=> "123"
separate(1234) #=> "1 234"
separate(12045) #=> "12 045"
separate(123456) #=> "123 456"
separate(1234000) #=> "1 234 000"
Хммм. Этот столбец справа наклонен?
Другой способ, который использует to_s
, но не join
:
def separate(n, c=' ')
str = n.to_s
sz = str.size
(3...sz).step(3) { |i| str.insert(sz-i, c) }
str
end
Вы можете использовать sectsty
пакет LaTeX .
Поместите это в преамбулу:
\usepackage{sectsty}
\allsectionsfont{\sffamily}
Для людей, которые хотят знать, почему это должно быть сделано иначе, чем, например, обычный текст. Это происходит из-за различия между надежными и хрупкими командами. Заголовки не допускают хрупких команд,
Первая возможность, которая приходит мне в голову, - это использовать класс документа из пакета KOMA-script, у них это установлено по умолчанию.
Вы также можете использовать пакет titlesec, который обеспечивает большую гибкость настройки, чем sectsty.
\usepackage[sf]{titlesec}