Я бесплатно отправляю этот со страницы сообщества R Studio, так как это немного эзотерично.
Есть ли способ попросить Knitr преобразовать мои уравнения из R Markdown в изображения, а затем вставить полученные изображения в мой окончательный документ? Я имею в виду вариант использования, позволяющий преодолеть некоторые недостатки редактора MSFT Equation при связывании с Word / PowerPoint. Если бы уравнение было просто изображением, тогда я мог бы иметь уравнения качества LaTeX в моих документах MSFT, что было бы потрясающе!
Самое близкое, что я нашел, - это с использованием latex2exp
и вставка фрагмента R-кода, который создает фигуру, которая на самом деле является визуализированной формулой LaTeX. Мне нравится подобный хак, но у latex2exp
есть некоторые ограничения.
Однако я не могу понять, как создать сценарий для создания изображения уравнения. Вставлять изображения в документы MSFT очень просто, с этим отлично справляется R Markdown. Для этого officer
не нужен.
Не могли бы вы включить какой-нибудь пример rmd-кода с уравнением, которое нужно преобразовать в изображение?
@jaap уверен: $ x $ ... Я бы хотел сделать это изображением.
Сначала выполнить рендеринг в HTML с помощью опции webtex, а затем в docx?
Вариант webtex - отличная находка ... Я не был знаком с этим. Хотел бы я использовать этот переключатель напрямую с выводом текста!
Как упоминалось в комментариях, webtex - простое решение. Переключатель Pandoc --webtex
не действует при нацеливании на docx. Однако фильтр Lua можно использовать с тем же эффектом.
local mediabag = require 'pandoc.mediabag'
local utils = require 'pandoc.utils'
local function url_encode(str)
local encode_char = function(c)
return ("%%%02X"):format(string.byte(c))
end
return str
:gsub("\n", "\r\n")
:gsub("([^%w%-%_%.%~])", encode_char)
end
local function webtex_url(formula)
return 'https://latex.codecogs.com/png.latex?' .. url_encode(formula)
end
function Math(el)
local filename = utils.sha1(el.text) .. '.png'
local mime, contents = mediabag.fetch(webtex_url(el.text), '.')
mediabag.insert(filename, mt, contents)
local img = pandoc.Image({}, filename)
return el.mathtype == 'DisplayMath'
and {pandoc.LineBreak(), img, pandoc.LineBreak()}
or img
end
Сохраните это в файл и передайте файл в pandoc через опцию --lua-filter
. Он преобразует все уравнения в изображения PNG через webtex.
Я бы хотел, чтобы это было добавлено в pandoc!
@tarleb где сохраняются файлы png (если вообще)?
@FaridCheragi, они хранятся в памяти, но вы можете сохранить их, передав --extract-media
в pandoc.
@tarleb, вы неправильно написали мое имя, поэтому я не был уведомлен о вашем комментарии. Теперь это работает. Спасибо.
@FaridCheraghi, извини, я писал это на мобильном телефоне. Рад слышать, что это работает.
@tarleb, без проблем. Из любопытства, можно ли сгенерировать эти изображения уравнений с помощью моих локальных двоичных файлов Latex вместо переключателя --webtex
, который немного медленный? Я смотрю на этот вопрос / ответ, но предпочитаю делать это через Pandoc.
Найдено это
Возможная альтернативная стратегия: создайте изображение и вставьте его в документ Word / Powerpoint с помощью
officer
-пакет.