#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*}
Изменения:
- Замените среду $$ displaymath на
align*
, что даст вам лучший контроль над выравниванием влево/вправо. (*
Персонаж инструктирует Текса не нумеровать это уравнение за вас.) - Используйте
amp;
символ, чтобы управлять тем, как все должно быть выровнено слева направо. Этоqquad
добавит немного отступа, чтобы сдвинуть продолжающиеся строки вправо, что обычно делается для выражений, которые простираются на несколько строк.
Теперь еще несколько предложений, которые я не реализовал выше:
- Подумайте о замене оригинала
log
log
на хороший набор текста для этой функции. - Подумайте о том, чтобы добавить
text{...}
оболочку вокруг всех ваших имен переменных (напримерadult wage
jobs created
, и т. Д.), Чтобы они также выглядели красиво. Вы захотите удалить_
в текстовом режиме). - (Этот очень придирчивый:) Обратите внимание, что интервалы
:
, т. е.
... *log(text{adult_wage}) : \
ПРАВКА: Поразмыслив над ответом тпецольда, я понял, что мне следует изменить клавиши выравнивания: вторая и третья строки должны начинаться справа от знака равенства и должны быть немного смещены вправо для визуального различия.
Комментарии:
1. я считаю, что knitr в html использует mathjax, так что, возможно, именно поэтому он работает
2. Вот что происходит, когда вы пытаетесь научить себя. С вашей помощью я на один шаг приблизился к мастерству!
3. Отлично, три человека делают почти одно и то же параллельно, и у каждого есть какие-то дополнительные идеи. Кажется, я был самым медленным
![]()