Re: very strange LaTeX error
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
"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
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
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
"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
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
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