# Re: Line breaks and brackets in LaTeX export

On 21/10/2022 10:41, Ihor Radchenko wrote:

Max Nikulin writes:


On 20/10/2022 12:07, Ihor Radchenko wrote:

When transcoding children (e.g. table rows), the sibling rows can always
be accessed using org-export-get-previous-element and
org-export-get-next-element.


Decision if escaping is necessary should be based on export result, not
on the source element.


I am not sure. The export result may originate from constructs like

#+MACRO: pagebreak @@latex:\\@@

Some paragraph {{{pagebreak}}}
src_elisp[:results raw]{(format "@@latex:[%dpt]@@" (or my-spacing-value 0))}

The point is: it can be done on purpose for some reason.



I agree that it can be done for purpose and I am not happy that due to table syntax it is not easy to emit custom code between rows.


Since you declined an idea to mark default line breaks with some unique comment to use it in search pattern in a filter, I may suggest to change custom code to either remove newline before brackets or to add a comment after \\

Some paragraph

src_elisp[:results raw]{(format "@@latex:\\\\[%dpt]@@" (or my-spacing-value 0))}

or #+MACRO: pagebreak @@latex:\\%@@

With any variant such line break will be ignored by "optimizing" filter.


Concerning element vs. exported text, consider a derived backend that ignores italics markers if a paragraph has some attribute. Usually
     Paragraph \\
\emph{[something]}
does not cause any problem, however if italics is ignored it is an error
Paragraph\\
[something]

That is why namely exported code of adjacent leaf node should be examined. Ideally there should be a possibility to add some attributes or properties to distinguish raw export snippet. Unfortunately it requires complete redesign of org-export.