Как сделать разрыв строки в отображаемом фрагменте уравнения RMarkdown

#r #r-markdown

#r #r-уценка

Вопрос:

Я новичок в RMarkdown, и у меня есть следующее, что я вяжу в PDF

 $  log( text{employed}) = beta_0   beta_1*log( adult  wage )   \  beta_2*jobs  created  beta_3*jobs  destroyed   beta_4*mw   \  beta_5*teen  pop   beta_6*teen  wage* mu_i   delta_{it}   alpha_{it}   kappa_{ir}   $  

В то время как дисплей, отображаемый под этим фрагментом, правильно проецирует разрывы строк, в выходном файле уравнение выводится за пределы полей

Ответ №1:

Может быть, это решение?

 header-includes:  - usepackage{amsmath}  

 begin{equation} begin{split} log( text{employed}) = beta_0   beta_1*log( adult  wage )   \  beta_2*jobs  created  beta_3*jobs  destroyed   beta_4*mw   \  beta_5*teen  pop   beta_6*teen  wage* mu_i   delta_{it}   alpha_{it}   kappa_{ir}  end{split} end{equation}  

введите описание изображения здесь

или это:

 begin{gather} log( text{employed}) = beta_0   beta_1*log( adult  wage )   nonumber \  beta_2*jobs  created  beta_3*jobs  destroyed   beta_4*mw   \  beta_5*teen  pop   beta_6*teen  wage* mu_i   delta_{it}   alpha_{it}   kappa_{ir} nonumber end{gather}  

введите описание изображения здесь

Второй выглядит круче 😉

Ответ №2:

align* В этом случае я бы использовал среду, которая допускает линейные или многострочные уравнения. * Подавляет числа уравнений. Кроме того , я сделал обратную косую черту перед log , добавил _ и использовал cdot вместо умножения * и, наконец, поместил в начале под = .

 begin{align*} log(text{employed}) amp; = beta_0   beta_1 cdot log( adult_wage )\   amp;   beta_2 cdot jobs_created   beta_3 cdot jobs_destroyed   beta_4 cdot mw\   amp;   beta_5 cdot teen_pop   beta_6 cdot teen_wage cdot mu_i   delta_{it}   alpha_{it}   kappa_{ir}  end{align*}  

введите описание изображения здесь

Вы также можете подумать о том, чтобы ввести многопозиционные переменные вертикально в виде текста или удалить избыточные cdot операторы умножения, если хотите.

Ответ №3:

Я думаю, что это скорее вопрос из Латекса, чем из RMarkdown.

Я на самом деле удивлен, что он отображает ваш дисплей так, как вы вообще хотите-LaTeX обычно не любит разрывы строк в средах displaymath. Я также удивлен, что ваш документ успешно вяжется по той же причине, но я предполагаю, что вы вяжете в HTML, что, по-видимому, немного более снисходительно, чем вяжете в PDF.

Во всяком случае, вот возможное решение:

 begin{align*} log( text{employed}) amp; = beta_0   beta_1*log( adult  wage )   \ amp; qquad beta_2*jobs  created  beta_3*jobs  destroyed   beta_4*mw   \ amp; qquad beta_5*teen  pop   beta_6*teen  wage* mu_i   delta_{it}   alpha_{it}   kappa_{ir}  end{align*}  

Изменения:

  1. Замените среду $$ displaymath на align* , что даст вам лучший контроль над выравниванием влево/вправо. ( * Персонаж инструктирует Текса не нумеровать это уравнение за вас.)
  2. Используйте amp; символ, чтобы управлять тем, как все должно быть выровнено слева направо. Это qquad добавит немного отступа, чтобы сдвинуть продолжающиеся строки вправо, что обычно делается для выражений, которые простираются на несколько строк.

Теперь еще несколько предложений, которые я не реализовал выше:

  1. Подумайте о замене оригинала log log на хороший набор текста для этой функции.
  2. Подумайте о том, чтобы добавить text{...} оболочку вокруг всех ваших имен переменных (например adult wage jobs created , и т. Д.), Чтобы они также выглядели красиво. Вы захотите удалить интервал, если сделаете это. Круглые скобки вокруг этих имен могут помочь читабельности, если имя содержит пробел, или вы можете соединить имена символом подчеркивания ( _ в текстовом режиме).
  3. (Этот очень придирчивый:) Обратите внимание, что интервалы между символами в концах ваших строк не совсем правильные-это потому, что LaTeX не распознает, что что-то добавляется, потому что справа от оператора ничего нет. Мы можем исправить это , добавив немного места перед с : , т. е.
 ... *log(text{adult_wage}) :   \  

ПРАВКА: Поразмыслив над ответом тпецольда, я понял, что мне следует изменить клавиши выравнивания: вторая и третья строки должны начинаться справа от знака равенства и должны быть немного смещены вправо для визуального различия.

Комментарии:

1. я считаю, что knitr в html использует mathjax, так что, возможно, именно поэтому он работает

2. Вот что происходит, когда вы пытаетесь научить себя. С вашей помощью я на один шаг приблизился к мастерству!

3. Отлично, три человека делают почти одно и то же параллельно, и у каждого есть какие-то дополнительные идеи. Кажется, я был самым медленным 😉