I cannot help more than Paul, but I'm glad you are prototyping a PDF export
using LaTeX. I've been a LaTeX user for years and I have always loved the
results. But it's a very different world than the other tools.
2018-02-15 8:46 GMT+01:00 Vincent Massol <vincent(a)massol.net>et>:
Hi Paul,
On 15 Feb 2018, at 08:24, Paul Libbrecht
<paul(a)hoplahup.net> wrote:
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.
Very useful thanks. I think this is the same as what I was mentioning
using .sty files. You would put the defiinition of new
environments/macros/etc inside this .sty file and then have the XWiki
renderer output those new environments/macros, allowing the user to tune
the .sty file he/she wants to use to get the right styling.
>> 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
This seems like the TEI XML format is meant to be used as the input and
then transformed either to XHTML (web site) or to LaTeX/PDF for publishing.
Googling quickly I couldn’t find a XHTML -> TEI XSL stylehseet.
This is interesting but we would need to have a proper DocBook renderer.
We have the start of one though but it would need to be improved a lot.
I’m a bit way of going through too many intermediate tool chain as every
time you get some mismatch impedance that gets in the way. So I have the
feeling that for the best result/control the solution would be to directly
output LaTeX using custom XWiki environments/macros.
If you don’t need this level of control, XWiki users should simply use the
PDF export.
Now, I’ve just discovered TeX (typesetting engine) and LaTeX (“standard"
macros on top of TeX) yesterday so this is still new to me and I’m likely
to miss a lot of things at this stage :)
Opinions are more than welcome!
Thanks again for your help Paul, that’s great
-Vincent
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
--
Guillaume Delhumeau (guillaume.delhumeau(a)xwiki.com)
Research & Development Engineer at XWiki SAS
Committer on the