Rmd/Kntir:LaTeX环境中的Markdown引用

我想在Rmd / Knitr文档中创建一个三重表,并在表的底部添加一个注释。该表由一个具有结果=“asis”的块内的R函数创建。我没有将功能添加到工作示例中,因为它非常详细,并且从纯LaTeX代码可以看出问题。

这样做和结果看起来像预期。

---
title: "Untitled"
output: pdf_document
header-includes:
- \usepackage{threeparttable}
- \usepackage{booktabs}
- \usepackage{longtable}
references:
- id: rao2001basic
  title: Basic Research in Parapsychology
  author:
  - family: Rao
    given: K.R.
  issued:
    year: 2001
  publisher: McFarland
  type: book
---

\begin{table}[h]
\centering
\begin{threeparttable}
\caption{A summary table of the cars dataset.}
\begin{tabular}{lrr}
\toprule
Descriptives & speed & dist\\
\midrule
Mean & 15.4 & 42.98\\
SD & 5.29 & 25.77\\
Min & 4 & 2\\
Max & 25 & 120\\
\bottomrule
\end{tabular}
\tablenotes{\item\textit{Note.} This table was created by @rao2001basic. }
\end{threeparttable}
\end{table}

不幸的是,表中的引用不起作用。如果我把它从LaTeX环境中拿出来,但不在里面,它可以正常工作。有没有办法解析LaTeX环境中的Markdown?

这种问题本质上是一个逃脱的问题,或者是潘多克的自动乳胶块开始/结束识别的避免问题。

这种特殊情况可以直接用环境命令写入

\table[h]
\centering
\threeparttable
\caption{A summary table of the cars dataset.}
\begin{tabular}{lrr}
\toprule
Descriptives & speed & dist\\
\midrule
Mean & 15.4 & 42.98\\
SD & 5.29 & 25.77\\
Min & 4 & 2\\
Max & 25 & 120\\
\bottomrule
\end{tabular}
\tablenotes[flushleft]
\item\textit{Note.} This table was created by @rao2001basic.
\endtablenotes
\endthreeparttable
\endtable

但是如果真的需要开始{env} / end {env},那么可以像这样使用宏

\def \btable{\begin{table}}
\def \etable{\end{table}}
\def \bthreeparttable{\begin{threeparttable}}
\def \ethreeparttable{\end{threeparttable}}
\def \btablenotes{\begin{tablenotes}}
\def \etablenotes{\end{tablenotes}}

如果一个强大的通用解决方案存在于可以允许在tex块内选择性降价的begin {env} / end {env}。就像是…

\newcommand\mdbegin[2]{%
  \ifstrempty{#1}{%
    \begin{#2}
  }{%
    \begin{#1}[#2]
  }%
}

\newcommand\mdend[1]{%
  \end{#1}
}

这适用于此,使用etoolbox包,但我不认为这将是一个推荐的解决方案。

http://stackoverflow.com/questions/29242528/rmd-kntir-markdown-citations-in-latex-environments

本站文章除注明转载外,均为本站原创或编译
转载请明显位置注明出处:Rmd/Kntir:LaTeX环境中的Markdown引用