Ihor Radchenko writes: > Juan Manuel Macías <maciasch...@posteo.net> writes:
>> + (vwidth (if (not lit) >> + (if versewidth (format "\\settowidth{\\versewidth}{%s}\n" >> versewidth) "") >> + "")) > > Can just do (if (and versewidth (not lit)) (format ...) "") > >> + (linreset (if (not lit) >> + (if lin "\n\\poemlines{0}" "") >> + ""))) > > (if (and lin (not lit)) ...) Thanks for the suggestions. Yes, it's simpler that way. >> (concat >> (org-latex--wrap-label >> verse-block >> ;; In a verse environment, add a line break to each newline >> ;; character and change each white space at beginning of a line >> - ;; into a space of 1 em. Also change each blank line with >> - ;; a vertical space of 1 em. >> - (format "%s\\begin{verse}%s\n%s\\end{verse}%s" >> + ;; into a normal space, calculated with `\fontdimen2\font'. >> + ;; One or more blank lines between lines are exported as a >> + ;; single blank line. If the `:literal' attribute is used, >> + ;; CONTENTS is exported as is, with no environment, preserving >> + ;; line breaks and vertical and horizontal spaces. >> + (format (if (not lit) >> + "%s\\begin{verse}%s\n%s\\end{verse}%s" >> + "%s%s\n%s%s") > > In the case of lit vwidth and attr are always empty. So, you are > inserting an extra newline in front. Is it intentional? I used that procedure because an extra blank line before (in the LaTeX code) it has no effect in LaTeX compilation. And in case the :literal attribute is present, vertical spaces are achieved by explicit \vspace*{}. One or more empty lines before it just marks the beginning of a new paragraph. Naturally, if :literal is used the rest of attributes are meaningless because they are intended for the verse environment. They can even give some error in the compilation. So I opted to disable them with the mere presence of :literal, leaving them 'empty' (so as not to manipulate the function further). >> + (concat "\\(" >> + (regexp-quote org-latex-line-break-safe) >> + "\n\\)" >> + "\\(^[ \t]*" >> + (regexp-quote org-latex-line-break-safe) >> + "\n" >> + "\\)+") >> + (concat "^[ \t]*" (regexp-quote org-latex-line-break-safe) >> "$")) > > May also use rx for better readability. I remember that I tried rx a while ago and found it very useful and comfortable, but then I haven't done anything with it. The fact is that over time I have ended up getting used to suffering from the classic regexp and it is hard for me to get out of there :-). Of course, with rx it would be clearer but I would have to refresh my memory. -- Juan Manuel Macías https://juanmanuelmacias.com https://lunotipia.juanmanuelmacias.com https://gnutas.juanmanuelmacias.com