我对 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
该程序将使用强大的正则表达式引擎进行转换。