Re: very strange LaTeX error

2019-12-20 Thread Fraga, Eric
On Friday, 20 Dec 2019 at 17:28, Stefan Nobis wrote:
> Hmmm... but it should be solvable. Maybe something along the lines of
> this (rough sketch, I have next to no experience with the org code
> base):

It should be solvable and something like what you have written looks
promising.  But it's beyond my elisp-fu so I hope others can chime in!

-- 
Eric S Fraga via Emacs 27.0.50, Org release_9.3-34-g2eee3c



Re: very strange LaTeX error

2019-12-20 Thread Stefan Nobis
"Fraga, Eric"  writes:

> However, it seems that simply adding \relax does not work if there
> is an \hline immediately following so the solution is not that
> straightforward.

Hmmm... but it should be solvable. Maybe something along the lines of
this (rough sketch, I have next to no experience with the org code
base):

#+begin_src emacs-lisp
(defun org-latex--table-newline (table-row info)
  (let ((next-el (org-export-get-next-element table-row info)))
(concat ""
(when (and next-el
   (not (eq (org-element-property :type next-el) 'rule)))
  "\\relax")
"\n")))
#+end_src

-- 
Until the next mail...,
Stefan.



Re: very strange LaTeX error

2019-12-20 Thread Fraga, Eric
On Friday, 20 Dec 2019 at 15:29, Stefan Nobis wrote:
> As the org-table does not support all the fancy features of LaTeX
> tables and the LaTeX row/line break is generated implicitly, I would
> say the LaTeX export should always emit the additional \relax.

I agree.  I shouldn't have to be this aware of LaTeX idiosyncrasies to
export what looks like a straightforward table!  

However, it seems that simply adding \relax does not work if there is an
\hline immediately following so the solution is not that
straightforward.

Thanks again,
eric

-- 
Eric S Fraga via Emacs 27.0.50, Org release_9.3-34-g2eee3c



Re: very strange LaTeX error

2019-12-20 Thread Fraga, Eric
On Friday, 20 Dec 2019 at 13:33, Joost Kremers wrote:
> Few people seem to realise that the double backslash `\\` in LaTeX is
> a macro that can actually take an optional argument, a measure
> specifying the height of the newline. 

Ah ha!  That makes perfect sense.  Thank you.
-- 
Eric S Fraga via Emacs 27.0.50, Org release_9.3-34-g2eee3c



Re: very strange LaTeX error

2019-12-20 Thread Stefan Nobis
"Joost Kremers"  writes:

> The solution I usually opt for is to enclose the brackets in an
> additional set of braces: `{[...]}`. Whether Org export can and
> should automate that, I can't say.

In the generated LaTeX adding a '\relax' (so each line ends with
'\\\relax') would be a another solution. The \relax ends the
macro-expansion and thus '\\' does not look further for optional
arguments.

As the org-table does not support all the fancy features of LaTeX
tables and the LaTeX row/line break is generated implicitly, I would
say the LaTeX export should always emit the additional \relax.

-- 
Until the next mail...,
Stefan.



Re: very strange LaTeX error

2019-12-20 Thread Joost Kremers
On Fri, Dec 20, 2019, at 12:56 PM, Fraga, Eric wrote:
> #+begin_src latex
>   \documentclass{scrartcl}
>   \begin{document}
>   % packages deleted, none of which is used anyway in the following
>   \tableofcontents
> 
>   \section{some results}
>   \label{sec:org4f5891c}
>   \begin{table}[hbtp]
>   \label{atable}
>   \centering
>   \begin{tabular}{lrrr}
>   \hline
>   x & z1 & z2 & g\\
>   \hline
>   [0.0005, 0.05, 0.5] & 9.0 & 0.05 & 0.0\\
>   [0.000787451, 0.0575948, 0.5] & 11.0 & 0.05759476698672508 & 0.0\\
>   \hline
>   \end{tabular}
>   \end{table}
>   \end{document}
> #+end_src
> 
> I get errors like this when compiling with pdflatex:
> 
> #+begin_example
>   ! Illegal unit of measure (pt inserted).
>
>  ,
>   l.18 [0.000787451, 0.0575948, 0.5]
>  & 11.0 & 0.05759476698672508 & 0.0\\
>   ! Missing = inserted for \ifdim.
>
> #+end_example
> 
> What am I doing wrong? 

You have `[...]` in the first cell of a table row that is not the first row. 
Few people seem to realise that the double backslash `\\` in LaTeX is a macro 
that can actually take an optional argument, a measure specifying the height of 
the newline. So when a table row ends in `\\` (which is the normal case) and 
the next row starts with an opening bracket, LaTeX assumes it is looking at an 
optional argument and expects a measure, i.e., a number followed by one of the 
supported units.

The solution I usually opt for is to enclose the brackets in an additional set 
of braces: `{[...]}`. Whether Org export can and should automate that, I can't 
say.

HTH

-- 
  Joost Kremers
  Life has its moments



very strange LaTeX error

2019-12-20 Thread Fraga, Eric
Hello all,

this may not belong in this mailing list as it's arguably a LaTeX issue
but I'm having a problem exporting a table to PDF via LaTeX.  I hope
somebody can help me out.

I've reduced my problem file to a small (hopefully minimal) example and
verified this with emacs -Q, using emacs 27.x which comes with org 9.3:

#+begin_src org
  ,* some results
  ,#+name: atable
  |+--+--+-|
  | x  |   z1 |   z2 |   g |
  |+--+--+-|
  | [0.0005, 0.05, 0.5]|  9.0 | 0.05 | 0.0 |
  | [0.000787451, 0.0575948, 0.5]  | 11.0 |  0.05759476698672508 | 0.0 |
  |+--+--+-|
#+end_src

If I export this to LaTeX, I get something that looks reasonable (elided):

#+begin_src latex
  \documentclass{scrartcl}
  \begin{document}
  % packages deleted, none of which is used anyway in the following
  \tableofcontents

  \section{some results}
  \label{sec:org4f5891c}
  \begin{table}[hbtp]
  \label{atable}
  \centering
  \begin{tabular}{lrrr}
  \hline
  x & z1 & z2 & g\\
  \hline
  [0.0005, 0.05, 0.5] & 9.0 & 0.05 & 0.0\\
  [0.000787451, 0.0575948, 0.5] & 11.0 & 0.05759476698672508 & 0.0\\
  \hline
  \end{tabular}
  \end{table}
  \end{document}
#+end_src

I get errors like this when compiling with pdflatex:

#+begin_example
  ! Illegal unit of measure (pt inserted).
   
 ,
  l.18 [0.000787451, 0.0575948, 0.5]
 & 11.0 & 0.05759476698672508 & 0.0\\
  ! Missing = inserted for \ifdim.
   
#+end_example

What am I doing wrong?  If LaTeX cannot handle [...] in a table (it has
no problem with similar text in a normal paragraph), the LaTeX exporter
should do something about this.  But I do not see why LaTeX should have
a problem in any case.  Any pointers welcome!

Note: LaTeX does not complain about the first line in the table, only
the second (and following ones in the original org file from which I
took this code snippet).

Thank you.
-- 
Eric S Fraga via Emacs 27.0.50, Org release_9.3-34-g2eee3c