2014-10-18 2 views
3

Это всегда была одна из замечательных особенностей сноуборда, что она делает интеллектуальное округление, поэтому вы можете избежать обходных путей sprintf/round/paste0.Научная нотация в книжке: как улучшить типографию

После того, как один клиент пожаловался, что я дал десятичные знаки неправильно, я отметил, что очень опасно забывать $$ для чисел, которые могут быть напечатаны в научной нотации. Но тот же клиент жаловался, что мое форматирование с использованием научной нотации выглядит уродливо, потому что латексная математика не соответствует основному шрифту. Комментарий

scientific notation

Следующие @ Yihui по закрытой эмиссии (https://github.com/yihui/knitr/issues/864), то $$ требуется.

У кого-то есть разумное решение для этого? В настоящее время я вернусь к форматированию всего с помощью sprintf, как в старые времена.

--- 
output: 
    html_document: 
    theme: cosmo 
--- 

I use the cosmo theme because it shows the typographic problem more clearly. 

```{r} 
options(digits=2) 
mean = c(2.31310934, 1.23456e-7) 
std = c(0.31310934, 6.54321e-7) 
``` 

digits is `r getOption("digits")` 

The mean is `r mean[1]` with a standard deviation of `r std[1]`. 

This looks good 

The mean is `r mean[2]` with a standard deviation of `r std[2]`. 

Note that the aboves looks like "1.23510". 

The mean is $`r mean[2]`$ with a standard deviation of $`r std[2]`$. 
+0

Вы могли бы рассмотреть возможность изменения шрифта документа в соответствии с выходом mathjax? Это кажется проще. Я считаю, что вам нужно всего несколько строк css для выбора шрифтов STIX. – baptiste

+0

Брр ... вернуться к шестидесятым годам UNIX? Не то чтобы мне это понравилось. –

ответ

2

Вы всегда можете переопределить inline выходной крюк, чтобы избежать многих явно sprintf/round/paste0 ...

knitr::knit_hooks$set(inline = function(x) { 
    knitr:::format_sci(x, 'md') 
}) 

Это будет использовать синтаксис вида 1.23 × 10^-7^ для научных обозначений, которые должны хорошо работать, если ваш выход формат - это только HTML.

Это простая проблема для определенного типа выходного формата, но это трудно, если вы хотите, чтобы форматирование чисел было переносимым во всех форматах, включая HTML, Word, LaTeX и т. Д. Вот почему $ $ стал требоваться в книтре 1.7.

+0

Спасибо, Yihui, это должно быть решением. Вероятно, вы не должны скрывать это под «незначительными точками» в документации, я уверен, что на следующей неделе больше людей укусят изменение. Можно ли сделать вышеперечисленное значение по умолчанию в HTML и выдать предупреждение, когда $$ не используется в других форматах? –

+0

@ DieterMenne В какой-то степени я согласен, что это не незначительные изменения. Однако я не могу сделать вышеупомянутый хук по умолчанию в HTML, потому что это не удастся для людей, у которых есть '$ $' вокруг их чисел. Учитывая мобильность, единственным решением является требование '$ $', к сожалению ... –

Смежные вопросы