Подставьте функцию и переменную в строку LaTeX с помощью latex2exp - PullRequest
1 голос
/ 15 января 2020

Как подставить переменную в строку, используя latex2expr? Я хочу включить значение переменной d1 в текст, округленный до двух знаков после запятой? Следующее не работает, но я уверен, что вы поймете идею.

require(latex2exp)
d1 = 0.30523
plot(1, 2)
text(1, 2, TeX('d_1 = {round($d1),2)}'), cex = 4)

Ответы [ 2 ]

1 голос
/ 19 марта 2020

Это не сложно сделать. Хитрость заключается в том, чтобы сначала создать правильную строку, используя функцию paste0. Следующий код должен работать.

require(latex2exp)
d1 = 0.30523
plot(1, 2, type="n")
new_text = paste0("$d_1 = ",round(d1,2),"$")
text(1, 2, TeX(new_text), cex = 4)
1 голос
/ 15 января 2020

(Этот ответ может не решить ваш вопрос напрямую. Я просто предоставляю другой способ достижения цели.)

Я не знаком с пакетом latex2exp. Я обычно представляю математику на графике с помощью встроенного синтаксиса plotmath (для более подробной информации звоните ?plotmath). Базовая функция bquote() может выполнять частичную подстановку в выражениях. Он цитирует свой аргумент за исключением того, что термины, заключенные в .().

d1 = 0.30523
plot(1, 2, type = "n")
text(1, 2, bquote(d[1] == .(round(d1, 2))), cex = 4)

Кстати, следующие два выражения эквивалентны.

bquote(d[1] == .(round(d1, 2)))
substitute(d[1] == x, list(x = round(d1, 2)))

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...