Рендеринг уравнений в виде изображений и включение их в выходные документы Word / PowerPoint с помощью R Markdown

Я бесплатно отправляю этот со страницы сообщества R Studio, так как это немного эзотерично.

Есть ли способ попросить Knitr преобразовать мои уравнения из R Markdown в изображения, а затем вставить полученные изображения в мой окончательный документ? Я имею в виду вариант использования, позволяющий преодолеть некоторые недостатки редактора MSFT Equation при связывании с Word / PowerPoint. Если бы уравнение было просто изображением, тогда я мог бы иметь уравнения качества LaTeX в моих документах MSFT, что было бы потрясающе!

Самое близкое, что я нашел, - это с использованием latex2exp и вставка фрагмента R-кода, который создает фигуру, которая на самом деле является визуализированной формулой LaTeX. Мне нравится подобный хак, но у latex2exp есть некоторые ограничения.

Возможная альтернативная стратегия: создайте изображение и вставьте его в документ Word / Powerpoint с помощью officer-пакет.

Jaap 07.09.2018 13:59

Однако я не могу понять, как создать сценарий для создания изображения уравнения. Вставлять изображения в документы MSFT очень просто, с этим отлично справляется R Markdown. Для этого officer не нужен.

JD Long 07.09.2018 14:05

Не могли бы вы включить какой-нибудь пример rmd-кода с уравнением, которое нужно преобразовать в изображение?

Jaap 07.09.2018 14:08

@jaap уверен: $ x $ ... Я бы хотел сделать это изображением.

JD Long 07.09.2018 14:09

Сначала выполнить рендеринг в HTML с помощью опции webtex, а затем в docx?

James 07.09.2018 15:29

Вариант webtex - отличная находка ... Я не был знаком с этим. Хотел бы я использовать этот переключатель напрямую с выводом текста!

JD Long 07.09.2018 18:47
Стоит ли изучать PHP в 2023-2024 годах?
Стоит ли изучать PHP в 2023-2024 годах?
Привет всем, сегодня я хочу высказать свои соображения по поводу вопроса, который я уже много раз получал в своем сообществе: "Стоит ли изучать PHP в...
Поведение ключевого слова "this" в стрелочной функции в сравнении с нормальной функцией
Поведение ключевого слова "this" в стрелочной функции в сравнении с нормальной функцией
В JavaScript одним из самых запутанных понятий является поведение ключевого слова "this" в стрелочной и обычной функциях.
Приемы CSS-макетирования - floats и Flexbox
Приемы CSS-макетирования - floats и Flexbox
Здравствуйте, друзья-студенты! Готовы совершенствовать свои навыки веб-дизайна? Сегодня в нашем путешествии мы рассмотрим приемы CSS-верстки - в...
Тестирование функциональных ngrx-эффектов в Angular 16 с помощью Jest
В системе управления состояниями ngrx, совместимой с Angular 16, появились функциональные эффекты. Это здорово и делает код определенно легче для...
Концепция локализации и ее применение в приложениях React ⚡️
Концепция локализации и ее применение в приложениях React ⚡️
Локализация - это процесс адаптации приложения к различным языкам и культурным требованиям. Это позволяет пользователям получить опыт, соответствующий...
Пользовательский скаляр GraphQL
Пользовательский скаляр GraphQL
Листовые узлы системы типов GraphQL называются скалярами. Достигнув скалярного типа, невозможно спуститься дальше по иерархии типов. Скалярный тип...
2
6
578
1

Ответы 1

Как упоминалось в комментариях, 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!

JD Long 08.09.2018 16:21

@tarleb где сохраняются файлы png (если вообще)?

Farid Cheraghi 28.03.2021 15:23

@FaridCheragi, они хранятся в памяти, но вы можете сохранить их, передав --extract-media в pandoc.

tarleb 29.03.2021 08:12

@tarleb, вы неправильно написали мое имя, поэтому я не был уведомлен о вашем комментарии. Теперь это работает. Спасибо.

Farid Cheraghi 30.03.2021 13:26

@FaridCheraghi, извини, я писал это на мобильном телефоне. Рад слышать, что это работает.

tarleb 30.03.2021 15:27

@tarleb, без проблем. Из любопытства, можно ли сгенерировать эти изображения уравнений с помощью моих локальных двоичных файлов Latex вместо переключателя --webtex, который немного медленный? Я смотрю на этот вопрос / ответ, но предпочитаю делать это через Pandoc.

Farid Cheraghi 30.03.2021 15:33

Найдено это

Farid Cheraghi 14.04.2021 22:34

Другие вопросы по теме