Hello Vincent,
having some experience with TeX I would implement CSS with macro-definitions… Every
element start would be a call to a macro that would check for rules that would apply to
its element, including passing parameters of their ancestry.
However, I guess that your solution seems probably more ad hoc and more practical.
Is there any reason that you don’t use the XSL-FO renderer that use LaTeX? I thought there
were several of them.
paul
On 14 Feb 2018, at 21:01, Vincent Massol wrote:
Hi devs,
I’m currently working on improving our TeX renderer (which is really a POC ATM), in an
effort to see if it could be used to generate nice PDF exports (you generate LaTeX and
then you convert to PDF).
The main issue is that LaTeX doesn’t have any technology for applying style to it (like
CSS has for HTML). In addition I wasn’t able to find any good HTML+CSS to TeX converter
(as we have for PDFs with XSLT+FOP).
So right now my idea is to implement some default behavior in the Tex Renderer (that
could be configured globally in xwiki.properties and/or in the Admin UI) and give the
ability to override specifically in the content.
For example, imagine that you need to decide how to position table column content (left,
centered, right) or whether the rows and/or columns of your table have vertical and
horizontal lines (or other configs, autowrap, etc).
The idea is that the Tex Renderer would support some custom tex-specific parameters. For
example:
(% tex-table-spec=“c | c | c" tex-table-floating="true"
tex-table-caption="caption" %)
|=A|=B
(% tex-table-row-ending="\hline" %)|a|b
(by default the table spec would be left aligned with vertical lines, and rows would be
separated by horizontal lines).
If you have some comments or ideas, please let me know.
Inventing a CSS-like mechanism would just be too hard to implement IMO.
Thanks
-Vincent
PS: If you want to see table options in LaTeX, see
https://en.wikibooks.org/wiki/LaTeX/Tables