Hello Vincent,
On 15 Feb 2018, at 7:25, Vincent Massol wrote:
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.
Could you give an example of what you mean by macro-definitions? Is
this something that exist in TeX?
Definitely. The complete TeX is based on macros.
Basic macros are created using the \def macro.
See e.g. http://www.tex.ac.uk/FAQ-whatmacros.html
Closer to the HTML world, there are the LaTeX environments. They are
nestable and extensible: see http://www.tex.ac.uk/FAQ-whatenv.html
This would be the way to create styles I think.
Paths are not transported, as far as I know (would they be called maybe
environment stack?). That would need to be carried as an extra parameter
produced by the renderer. I would also think that recognising complex
rules with such as classes would need an amount of coding before the
LaTeX is processed.
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.
Do you have a pointer? As I said in my original mail I tried to search
for an XHTML to LaTeX converter/XSLT but couldn’t. If you know of
one, I’ll gladly have a look.
The world is thinner than I thought.
The closest I could find are the TEI renderers:
http://www.tei-c.org/release/doc/tei-xsl/
https://www.tug.org/TUGboat/tb27-0/rahtz.pdf
or DocBookLaTeX
https://sourceforge.net/projects/dblatex/
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