我有一个梦想:使用 CSS 来设计 TeX 文档的样式

我有一个梦想:使用 CSS 来设计 TeX 文档的样式

我对 LaTeX 软件包开发一无所知,但我有一个梦想!考虑以下两个文件:

% A LaTeX file
\documentclass{article}
\usepackage[style.css]{css}

\begin{document}
\begin{abstract}
  This is abstract!
\end{abstract}
  This is \cls{code}{foo} and that is \cls{code}{bar}.
\end{document}

一个简单的 css.文件:

/*style.css*/
abstract{
  color:red;
}

.code{
 background:blue;
}

我希望包在渲染之前将 css 规则映射到其 latex 对应项。在此示例中:

\documentclass{article}
\usepackage{color}

\begin{document}
{\color{red}
\begin{abstract}
   This is abstract!
\end{abstract}
}
This is \colorbox{blue}{foo} and that is \colorbox{blue}{bar}.
\end{document}

我想知道如何开发一个简单的包,一开始它能够提供在 LaTeX 中使用 color/font-family/font-weight css 规则的能力。在下一阶段,我想添加 id/class 寻址。也许我们可以将源代码放在 GitHub 上,社区可以对其进行扩展。

请注意,我只想使用 CSS 语法作为 LaTeX 样式的语法糖。

作为答案,请至少提供一个最低限度的解决方案,使用提供的示例来设置摘要的颜色。谢谢大家。

有关的: 基于 CSS 的 LaTeX 格式?

答案1

TeX 是一种非常强大的排版系统。虽然 TeX 可以用于制作吐司或控制火星探测器用 TeX/LaTeX 编写复杂程序通常比 C、Perl 和 Python 等语言更难。为了解析示例 CSS

\*style.css*    abstract{
  color:red;
}

.code{
 background:blue;
}

您可能需要创建a.激活它,或者使用正则表达式处理它。正如@JosephWright 在评论中向我解释的那样回答

LaTex3 确实支持正则表达式,但它确实是“常规”的,因此 PCRE 可以做的很多事情都无法实现。如果您想将其用于大规模工作,性能也是一个问题。

我建议不要直接在 TeX 中进行转换,而是使用 Perl(或您选择的编程语言)编写一个程序,css2sty该程序将使用强大的正则表达式引擎进行转换。

相关内容