我有以下latex 表,该表在format: pdf时会按预期呈现:

---
title: "Test Table"
format: pdf
---

\begin{center}
\begin{tabular}{|l|l|l|}
\hline
Var           & Class  & Description\\
\hline
$x $             &  numeric      &   xyz \\
$y$            &  numeric      &   xzh \\
$z $          &  integer      &   xlp \\
\hline
\end{tabular}
\end{center}

enter image description here

我寻找这个表也可以以HTML格式显示的可能性,例如format: html.我有许多(许多)LaTeX表需要转换,因此我希望有一种解决方案可以避免将它们全部编写为标价表的手动工作.如有任何帮助,我们将一如既往地感激!

推荐答案

parse-latexQuarto扩展就是考虑到这种情况而编写的.它的工作原理是使用PanDoc的LaTeX解析器来处理文档中的所有原始LaTeX片段,从而可以将这些片段转换为任意格式.

转换受到PanDoc的LaTeX解析器的限制;尤其是样式信息不会在转换中保留.

为了完整起见,而且因为它相当简短,下面是该扩展中附带的PandocLua过滤器的完整代码.它也可以通过将其保存到文件parse-latex.lua,然后在QMD文件的YAML头中与filters: [parse-latex.lua]一起使用来直接使用.

--- parse-latex.lua – parse and replace raw LaTeX snippets
---
--- Copyright: © 2021–2022 Albert Krewinkel
--- License: MIT – see LICENSE for details

-- Makes sure users know if their pandoc version is too old for this
-- filter.
PANDOC_VERSION:must_be_at_least '2.9'

-- Return an empty filter if the target format is LaTeX: the snippets will be
-- passed through unchanged.
if FORMAT:match 'latex' then
  return {}
end

-- Parse and replace raw TeX blocks, leave all other raw blocks
-- alone.
function RawBlock (raw)
  if raw.format:match 'tex' then
    return pandoc.read(raw.text, 'latex').blocks
  end
end

-- Parse and replace raw TeX inlines, leave other raw inline
-- elements alone.
function RawInline(raw)
  if raw.format:match 'tex' then
    return pandoc.utils.blocks_to_inlines(
      pandoc.read(raw.text, 'latex').blocks
    )
  end
end

Html相关问答推荐

打印pdf时100 vh迪夫有半页高

如何在不影响子列表的情况下在HTML(OL Li)上同时加数字和列表?

仅包含名为X的子元素的元素的XPath?

禁用与行分开的边框折叠span

浏览器是在调整大小还是在全屏上交换视频源?

SCSS动画错误:心脏在页面刷新时启动动画,原因是:Checked和:Not(:Checked) Select 器

有没有什么方法可以很容易地给一个SVG一个插框阴影?

如何用css在右侧创建多个半圆

从触发元素移动到有间隙的内容时 CSS 工具提示关闭

如何在 VS Code 中 Select 和删除 HTML 元素(其标签和内容)?

为什么盒子不在div中显示?

白色栏超出页面100%的右侧

防止HTML输入中出现负数但接受小数

如何使用 Bootstrap Grid 系统修复大屏幕上图片和进度条之间的空白?

Angular:从服务器下载 HTML 并打印

ul li 右侧的 Bootstrap 加载微调器

无法使用 flexbox 裁剪图像

让 Iframe 覆盖整个页面

根据百分比用多种 colored颜色 填充SVG路径

隐藏在标题后面的下拉菜单