[-- Attachment #1: Type: text/plain, Size: 1144 bytes --] I've modified the behavior of `org-create-formula-image' so that `\definecolor' etc do not create unnecessary whitespace in the output PDF. Here's the relevant change: ``` ... ;; remove tex \par at end of line (if (string= (substring string -1 nil) "\n") (aset string (- (length string) 1) ?%) (setq string (concat string "%"))) (with-temp-file texfile (insert latex-header) (insert "\n\\begin{document}\n" "\\definecolor{fg}{rgb}{" fg "}%\n" "\\definecolor{bg}{rgb}{" bg "}%\n" "\n\\pagecolor{bg}%\n" "\n{\\color{fg}\n" string "\n}\n" "\n\\end{document}\n")) ... ``` This is useful if you (like me) have replaced the default document class with standalone and are using dvisvgm. The change removes leading left and right space, which is especially useful when using inline math mixed with normal text. It shouldn't make a difference if using Imagemagick's convert as a backend since that can get rid of whitespace boundaries. Is anyone else interested in this modification? Should I submit it as a patch? Matt [-- Attachment #2: Type: text/html, Size: 1580 bytes --]
On Thursday, 5 Dec 2019 at 11:03, Matt Huszagh wrote:
> Is anyone else interested in this modification? Should I submit it as a
> patch?
I think so. And I am not sure all those \n's are necessary. Without
them, you can probably also remove many of the %s.
--
Eric S Fraga via Emacs 27.0.50, Org release_9.2.6-544-gd215c3
[-- Attachment #1.1: Type: text/plain, Size: 725 bytes --] Thanks for the reply Eric. The thing I like about the newlines is that the generated tex files are slightly easier to read. However, this is really minor. I've created 2 separate patches: one keeping the newlines and the other without. I'm happy to defer to you or anyone else in regard to which is preferable. On Thu, Dec 5, 2019 at 2:24 PM Fraga, Eric <e.fraga@ucl.ac.uk> wrote: > On Thursday, 5 Dec 2019 at 11:03, Matt Huszagh wrote: > > Is anyone else interested in this modification? Should I submit it as a > > patch? > > I think so. And I am not sure all those \n's are necessary. Without > them, you can probably also remove many of the %s. > -- > Eric S Fraga via Emacs 27.0.50, Org release_9.2.6-544-gd215c3 > [-- Attachment #1.2: Type: text/html, Size: 1051 bytes --] [-- Attachment #2: remove-newlines.patch --] [-- Type: application/octet-stream, Size: 1421 bytes --] From baf9812cb050c804d4d12bf3e2819bd4a5987722 Mon Sep 17 00:00:00 2001 From: Matt Huszagh <huszaghmatt@gmail.com> Date: Thu, 5 Dec 2019 23:16:39 -0800 Subject: [PATCH] org.el: Remove leading/trailing whitespace from latex fragment * lisp/org.el (org-create-formula-image): Ensure user input ends with a % character to remove trailing whitespace. Also, remove newlines from macro calls. --- lisp/org.el | 13 +++++++++---- 1 file changed, 9 insertions(+), 4 deletions(-) diff --git a/lisp/org.el b/lisp/org.el index 9b84592ba..4e3dbe4c3 100644 --- a/lisp/org.el +++ b/lisp/org.el @@ -16554,13 +16554,18 @@ a HTML file." (setq bg (org-latex-color :background)) (setq bg (org-latex-color-format (if (string= bg "Transparent") "white" bg)))) + ;; remove tex \par at end of snippet to avoid trailing + ;; whitespace + (if (string= (substring string -1 nil) "\n") + (aset string (- (length string) 1) ?%) + (setq string (concat string "%"))) (with-temp-file texfile (insert latex-header) (insert "\n\\begin{document}\n" - "\\definecolor{fg}{rgb}{" fg "}\n" - "\\definecolor{bg}{rgb}{" bg "}\n" - "\n\\pagecolor{bg}\n" - "\n{\\color{fg}\n" + "\\definecolor{fg}{rgb}{" fg "}" + "\\definecolor{bg}{rgb}{" bg "}" + "\\pagecolor{bg}" + "{\\color{fg}\n" string "\n}\n" "\n\\end{document}\n")) -- 2.24.0 [-- Attachment #3: keep-newlines.patch --] [-- Type: application/octet-stream, Size: 1399 bytes --] From bdb93a13a43d90ad6e66449797111e836a67a219 Mon Sep 17 00:00:00 2001 From: Matt Huszagh <huszaghmatt@gmail.com> Date: Thu, 5 Dec 2019 23:25:32 -0800 Subject: [PATCH] org.el: Remove leading/trailing whitespace from latex fragment * lisp/org.el (org-create-formula-image): Ensure user input ends with a % character to remove trailing whitespace. Also, add % characters between macros and newlines purely visual. --- lisp/org.el | 11 ++++++++--- 1 file changed, 8 insertions(+), 3 deletions(-) diff --git a/lisp/org.el b/lisp/org.el index 9b84592ba..ae686e330 100644 --- a/lisp/org.el +++ b/lisp/org.el @@ -16554,12 +16554,17 @@ a HTML file." (setq bg (org-latex-color :background)) (setq bg (org-latex-color-format (if (string= bg "Transparent") "white" bg)))) + ;; remove tex \par at end of snippet to avoid trailing + ;; whitespace + (if (string= (substring string -1 nil) "\n") + (aset string (- (length string) 1) ?%) + (setq string (concat string "%"))) (with-temp-file texfile (insert latex-header) (insert "\n\\begin{document}\n" - "\\definecolor{fg}{rgb}{" fg "}\n" - "\\definecolor{bg}{rgb}{" bg "}\n" - "\n\\pagecolor{bg}\n" + "\\definecolor{fg}{rgb}{" fg "}%\n" + "\\definecolor{bg}{rgb}{" bg "}%\n" + "\n\\pagecolor{bg}%\n" "\n{\\color{fg}\n" string "\n}\n" -- 2.24.0
Not really worried about which alternative is chosen. I was just exhibiting my inner compulsive nature... ;-) -- Eric S Fraga via Emacs 27.0.50, Org release_9.2.6-544-gd215c3
Hello, Matt Huszagh <huszaghmatt@gmail.com> writes: > Thanks for the reply Eric. The thing I like about the newlines is that the > generated tex files are slightly easier to read. However, this is really > minor. I've created 2 separate patches: one keeping the newlines and the > other without. I'm happy to defer to you or anyone else in regard to which > is preferable. So, has anyone settled on which one to apply? > + ;; remove tex \par at end of snippet to avoid trailing > + ;; whitespace Remove TeX \par at end of... trailing space. > + (if (string= (substring string -1 nil) "\n") Minor nitpick: (if (string-suffix-p string "\n") ...) is slightly less low-level. Thank you. Regards, -- Nicolas Goaziou
[-- Attachment #1: Type: text/plain, Size: 425 bytes --] Nicolas Goaziou <mail@nicolasgoaziou.fr> writes: > So, has anyone settled on which one to apply? My vote goes for keeping the newlines to improve readability in the generated tex file. But, again, I'm more than happy to be overuled. > Minor nitpick: > > (if (string-suffix-p string "\n") ...) > > is slightly less low-level. Appreciate the nitpick; your version is better! I've attached an updated patch. Best, Matt [-- Warning: decoded text below may be mangled, UTF-8 assumed --] [-- Attachment #2: keep-newlines.patch --] [-- Type: text/x-patch, Size: 1386 bytes --] From bdb93a13a43d90ad6e66449797111e836a67a219 Mon Sep 17 00:00:00 2001 From: Matt Huszagh <huszaghmatt@gmail.com> Date: Thu, 5 Dec 2019 23:25:32 -0800 Subject: [PATCH] org.el: Remove leading/trailing whitespace from latex fragment * lisp/org.el (org-create-formula-image): Ensure user input ends with a % character to remove trailing whitespace. Also, add % characters between macros and newlines purely visual. --- lisp/org.el | 11 ++++++++--- 1 file changed, 8 insertions(+), 3 deletions(-) diff --git a/lisp/org.el b/lisp/org.el index 9b84592ba..ae686e330 100644 --- a/lisp/org.el +++ b/lisp/org.el @@ -16554,12 +16554,17 @@ a HTML file." (setq bg (org-latex-color :background)) (setq bg (org-latex-color-format (if (string= bg "Transparent") "white" bg)))) + ;; remove tex \par at end of snippet to avoid trailing + ;; whitespace + (if (string-suffix-p string "\n") + (aset string (- (length string) 1) ?%) + (setq string (concat string "%"))) (with-temp-file texfile (insert latex-header) (insert "\n\\begin{document}\n" - "\\definecolor{fg}{rgb}{" fg "}\n" - "\\definecolor{bg}{rgb}{" bg "}\n" - "\n\\pagecolor{bg}\n" + "\\definecolor{fg}{rgb}{" fg "}%\n" + "\\definecolor{bg}{rgb}{" bg "}%\n" + "\n\\pagecolor{bg}%\n" "\n{\\color{fg}\n" string "\n}\n" -- 2.24.0
Hello, Matt Huszagh <huszaghmatt@gmail.com> writes: > My vote goes for keeping the newlines to improve readability in the > generated tex file. But, again, I'm more than happy to be overuled. [...] > I've attached an updated patch. Applied. Thank you. I added TINYCHANGE at the end of the commit message since I don't know if you have signed the FSF papers. If you did, please let me know. Regards, -- Nicolas Goaziou