【问题标题】:Add LaTex \def to header_includes in RMarkdown YAML将 LaTex \def 添加到 RMarkdown YAML 中的 header_includes
【发布时间】:2021-02-18 13:21:27
【问题描述】:

我是 LaTex 的新手,我想添加类似的东西

 \def\begincols{\begin{columns}}

在我的 .Rmd 文件的 header_includes 中。但我不知道这是如何工作的。 由于我们的环境情况,我不能将它包含在外部.tex 文件中。我的.Rmd 看起来像:

---
output:
  beamer_presentation: 
    keep_tex: true
params:
       dashTitle: NA
header_includes:
- \def}{\begincols}{\begin{columns}}
- \def\begincol{\begin{column}}}
- \def\endcol{\end{column}}}
- \def\endcols{\end{columns}}}
---

【问题讨论】:

  • 不要那样做。如果您不喜欢键入环境,请使用支持良好自动完成功能的编辑器或其他快捷方式。或者,如果您不喜欢该环境,beamer 还支持语法 \column,但这更容易出错。
  • 我只想要投影仪中的多个列,我可以将我的 R 块放入其中。你能给我一个建议吗?
  • Rmarkdown 有自己的添加列的语法。此类命令对您之前的问题中的帧中帧问题没有帮助。即使您在开始新帧之前手动结束前一帧,您仍然会遇到问题,即 r 块不会放置在您开始的帧中,并且您最终会将列环境拆分为多个帧当然会导致这样的错误。

标签: r yaml latex markdown


【解决方案1】:

不要那样做!这只会混淆代码而没有任何收获。不要使用此类快捷方式,而是使用具有良好自动完成功能或支持快捷方式的编辑器来更轻松地插入此类环境。

如果你坚持使用宏而不是环境,beamer 支持 \column 的语法来插入列,如果你真的必须,你可以使用底层的 tex 宏而不是 columns 环境

\documentclass{beamer}

\begin{document}
    
\begin{frame}
    \begin{columns}[onlytextwidth]
    \column{.5\textwidth}
      something
    \column{.5\textwidth}
      something else  
  \end{columns}
\end{frame} 

\begin{frame}
    \columns[onlytextwidth]
    \column{.5\textwidth}
      something
    \column{.5\textwidth}
      something else  
  \endcolumns
\end{frame} 
    
\end{document}

【讨论】:

  • 谢谢,但是使用您的宏解决方案时,我收到错误:illegal parameter number in definition of \beamer@doifinframe,当我将 R 块放入“something”时
  • @dev123 这就是为什么我说不必要的代码混淆不会解决你的帧中帧问题。如果要在列中使用 r 块,请对列使用 rmakrdown 语法
猜你喜欢
  • 2017-12-07
  • 2017-01-22
  • 2017-12-31
  • 2021-12-07
  • 1970-01-01
  • 1970-01-01
  • 2022-01-12
  • 2012-01-14
  • 1970-01-01
相关资源
最近更新 更多