繁体   English   中英

如何在 RMarkdown 显示方程块中换行

[英]How to line break in RMarkdown Displayed Equation Chunk

我是 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} 

$$

虽然显示在此块下的显示正确地投影了换行符,但 output 文件的等式超出了边距

也许这个解决方案?

 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}

在此处输入图像描述

第二个看起来更酷;)

我认为这更像是一个 LaTeX 问题,而不是 RMarkdown 问题。

我真的很惊讶它完全按照您想要方式呈现您的显示 - LaTeX 通常不喜欢在显示数学环境中使用换行符。 我也很惊讶您的文档出于同样的原因成功编织,但我猜您正在编织到 HTML,这显然比编织到 PDF 更宽容。

无论如何,这是一个可能的解决方法:

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

变化:

  1. 将 $$ displaymath 环境替换为align* ,这将使您更好地控制左/右 alignment。 *字符指示 TeX 不要为你编号这个方程。)
  2. 使用&字符来控制事物应该如何从左到右对齐。 \qquad将添加一些填充以将连续行向右偏移,这是对跨越多行的表达式执行的典型操作。

现在,我在上面没有实施的一些进一步建议:

  1. 考虑用\log替换您的原始log ,以便对 function 进行良好的排版。
  2. 考虑在所有变量名周围添加一个\text{...}包装器(例如, adult wagejobs created等),以使它们看起来也不错。 如果你这样做,你会想要删除\间距。 当名称包含空格时,这些名称周围的括号可能有助于提高可读性,或者您可以使用下划线字符连接名称(在文本模式下为\_ )。
  3. (这个非常挑剔:)请注意,行尾+字符的间距不太正确——这是因为 LaTeX 没有识别出添加了任何内容,因为右侧没有任何内容的运营商。 我们可以通过在+\:之前添加一点空格来解决这个问题,即
... *\log(\text{adult\_wage}) \: + \\

编辑:在考虑了 tpetzold 的回答后,我意识到我应该更改 alignment 键:第二行和第三行应该从等号右侧开始,并且应该向右偏移一点以便视觉区分。

在这种情况下,我会使用align*环境,它允许对齐或多行方程。 *抑制方程编号。 此外,我在\log前面做了一个反斜杠,添加了\_并使用了\cdot而不是乘法* ,最后将+放在了=下的开头。

\begin{align*}
\log(\text{employed}) & = \beta_0 + \beta_1 \cdot \log( adult\_wage )\\  
                       & + \beta_2 \cdot jobs\_created + \beta_3 \cdot jobs\_destroyed + \beta_4 \cdot mw\\  
                       & + \beta_5 \cdot teen\_pop + \beta_6 \cdot teen\_wage \cdot \mu_i + \delta_{it} + \alpha_{it} + \kappa_{ir} 
\end{align*}

在此处输入图像描述

如果需要,您也可以考虑将多字母变量直接排版为文本或删除多余的\cdot乘法运算符。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM