Re: [PATCH] Re: Inconsistent use of \ref and \eqref in ox-latex and ox-html
Hello, Brian Powell writes: > Thanks again. Please find attached patch addressing issues below. Perfect. Applied. Thank you! I forgot to add TINYCHANGE at the end of the commit message, but I added you to the list of contributors. Regards, -- Nicolas Goaziou
Re: [PATCH] Re: Inconsistent use of \ref and \eqref in ox-latex and ox-html
Thanks again. Please find attached patch addressing issues below. Cheers, Brian On Mon, Apr 20 2020, Nicolas Goaziou wrote: >> Subject: [PATCH] add org-html-equation-reference-format to customize MathJax >> ref command > > The commit message should reference the file being modified. I suggest > something along the lines: > > Add customizable format string for equations > > * lisp/ox-html.el (org-html-equation-reference-format): New variable. updated >> +(defcustom org-html-equation-reference-format "\\eqref{%s}" >> + "MathJax command to use when referencing equations. This is a >> +format controls string, expecting a single argument, the equation >> +being referenced that is generated on export. > > Small nit here. The first line of a docstring must contain complete > sentences only. Therefore you need to move "This is a" part to the line > below. > > Also : controls -> control > > Otherwise, it looks good! Could you provide an entry in ORG-NEWS about > it? I think Version 9.4 > Miscellaneous is a fine place for it. Done and done. >From f3a8e7d99a390c6dd965f347d95f35780e7d3a77 Mon Sep 17 00:00:00 2001 From: Brian Powell Date: Mon, 20 Apr 2020 09:49:12 -1000 Subject: [PATCH] Add customizable format string for equations in HTML export * lisp/ox-html.el (org-html-equation-reference-format): New variable. * doc/org-manual.org update to reference new variable --- doc/org-manual.org | 1 + etc/ORG-NEWS | 9 + lisp/ox-html.el| 25 ++--- 3 files changed, 32 insertions(+), 3 deletions(-) diff --git a/doc/org-manual.org b/doc/org-manual.org index 6d5a34e56..4b1a14ef4 100644 --- a/doc/org-manual.org +++ b/doc/org-manual.org @@ -15851,6 +15851,7 @@ Settings]]), however, override everything. | ~:html-link-use-abs-url~ | ~org-html-link-use-abs-url~ | | ~:html-mathjax-options~| ~org-html-mathjax-options~| | ~:html-mathjax-template~ | ~org-html-mathjax-template~ | +| ~:html-equation-reference-format~ | ~org-html-equation-reference-format~ | | ~:html-metadata-timestamp-format~ | ~org-html-metadata-timestamp-format~ | | ~:html-postamble-format~ | ~org-html-postamble-format~ | | ~:html-postamble~ | ~org-html-postamble~ | diff --git a/etc/ORG-NEWS b/etc/ORG-NEWS index f6f806b8f..fbee0124d 100644 --- a/etc/ORG-NEWS +++ b/etc/ORG-NEWS @@ -384,6 +384,15 @@ now. E.g., This bug [[https://lists.gnu.org/archive/html/emacs-orgmode/2013-08/msg00072.html][originally reported]] by Matt Lundin and investigated by Andrew Hyatt has been fixed. Thanks to both of them. +*** Format of equation reference in HTML export can be specified + +By default, HTML (via MathJax) and LaTeX export equation references +using different commands. LaTeX must use \ref{%s} because it is used +for all labels; however, HTML (via MathJax) uses \eqref{%s} for equations +producing inconsistent output. New option +~org-html-equation-reference-format~ sets the command used in +HTML export. + * Version 9.3 ** Incompatible changes diff --git a/lisp/ox-html.el b/lisp/ox-html.el index e70b8279b..266467345 100644 --- a/lisp/ox-html.el +++ b/lisp/ox-html.el @@ -121,6 +121,7 @@ (:html-link-home "HTML_LINK_HOME" nil org-html-link-home) (:html-link-up "HTML_LINK_UP" nil org-html-link-up) (:html-mathjax "HTML_MATHJAX" nil "" space) +(:html-equation-reference-format "HTML_EQUATION_REFERENCE_FORMAT" nil org-html-equation-reference-format t) (:html-postamble nil "html-postamble" org-html-postamble) (:html-preamble nil "html-preamble" org-html-preamble) (:html-head "HTML_HEAD" nil org-html-head newline) @@ -761,6 +762,24 @@ The function should return the string to be exported." LaTeX +(defcustom org-html-equation-reference-format "\\eqref{%s}" + "The MathJax command to use when referencing equations. + +This is a format control string that expects a single string argument +specifying the label that is being referenced. The argument is +generated automatically on export. + +The default is to wrap equations in parentheses (using \"\\eqref{%s}\)\". + +Most common values are: + + \"\\eqref{%s}\"Wrap the equation in parentheses + \"\\ref{%s}\" Do not wrap the equation in parentheses" + :group 'org-export-html + :package-version '(Org . "9.4") + :type 'string + :safe t) + (defcustom org-html-with-latex org-export-with-latex "Non-nil means process LaTeX math snippets. @@ -3113,9 +3132,9 @@ INFO is a plist holding contextual information. See (eq 'latex-environment (org-element-type destination)) (eq 'math (org-latex--environment-type destination))) ;; Caption and labels are introduced within LaTeX -
Re: [PATCH] Re: Inconsistent use of \ref and \eqref in ox-latex and ox-html
Hello, Brian Powell writes: > Nicolas, thank you for the feedback, and I apologize for my errors. No need to apologize! Peer review is about catching the mistakes we all do. > I have corrected the issues below and generated a commit patch attached. > Please let me know if there are any problems. Thank you! I have some more work for you, if you don't mind ;) > Subject: [PATCH] add org-html-equation-reference-format to customize MathJax > ref command The commit message should reference the file being modified. I suggest something along the lines: Add customizable format string for equations * lisp/ox-html.el (org-html-equation-reference-format): New variable. > +(defcustom org-html-equation-reference-format "\\eqref{%s}" > + "MathJax command to use when referencing equations. This is a > +format controls string, expecting a single argument, the equation > +being referenced that is generated on export. Small nit here. The first line of a docstring must contain complete sentences only. Therefore you need to move "This is a" part to the line below. Also : controls -> control Otherwise, it looks good! Could you provide an entry in ORG-NEWS about it? I think Version 9.4 > Miscellaneous is a fine place for it. Regards, -- Nicolas Goaziou
[PATCH] Re: Inconsistent use of \ref and \eqref in ox-latex and ox-html
Nicolas, thank you for the feedback, and I apologize for my errors. On Sun, Apr 19 2020, Nicolas Goaziou wrote: > > You need to provide a commit message, using git format-patch > mechanism. > Apologies while I learn the procedure. I have corrected the issues below and generated a commit patch attached. Please let me know if there are any problems. > However, it would be nice to reference that variable in > > Publishing > Configuration > Options for the exporters > HTML specific > properties > It is now listed in this section and removed from the others. > > It might be useful to explicitly state this is a format control string, > expecting a single argument, the actual reference. > > > It should be "9.4". > Both are corrected. > > Indentation problem? > The indentation problem is in the original org code. Thank you for all of your help and efforts. Cheers, Brian >From a7c078e4b5f3d97fa7db0e1df192e26e6953ef71 Mon Sep 17 00:00:00 2001 From: Brian Powell Date: Sun, 19 Apr 2020 12:59:53 -1000 Subject: [PATCH] add org-html-equation-reference-format to customize MathJax ref command --- doc/org-manual.org | 1 + lisp/ox-html.el| 23 --- 2 files changed, 21 insertions(+), 3 deletions(-) diff --git a/doc/org-manual.org b/doc/org-manual.org index 6d5a34e56..4b1a14ef4 100644 --- a/doc/org-manual.org +++ b/doc/org-manual.org @@ -15851,6 +15851,7 @@ Settings]]), however, override everything. | ~:html-link-use-abs-url~ | ~org-html-link-use-abs-url~ | | ~:html-mathjax-options~| ~org-html-mathjax-options~| | ~:html-mathjax-template~ | ~org-html-mathjax-template~ | +| ~:html-equation-reference-format~ | ~org-html-equation-reference-format~ | | ~:html-metadata-timestamp-format~ | ~org-html-metadata-timestamp-format~ | | ~:html-postamble-format~ | ~org-html-postamble-format~ | | ~:html-postamble~ | ~org-html-postamble~ | diff --git a/lisp/ox-html.el b/lisp/ox-html.el index e70b8279b..0565d47f0 100644 --- a/lisp/ox-html.el +++ b/lisp/ox-html.el @@ -121,6 +121,7 @@ (:html-link-home "HTML_LINK_HOME" nil org-html-link-home) (:html-link-up "HTML_LINK_UP" nil org-html-link-up) (:html-mathjax "HTML_MATHJAX" nil "" space) +(:html-equation-reference-format "HTML_EQUATION_REFERENCE_FORMAT" nil org-html-equation-reference-format t) (:html-postamble nil "html-postamble" org-html-postamble) (:html-preamble nil "html-preamble" org-html-preamble) (:html-head "HTML_HEAD" nil org-html-head newline) @@ -761,6 +762,22 @@ The function should return the string to be exported." LaTeX +(defcustom org-html-equation-reference-format "\\eqref{%s}" + "MathJax command to use when referencing equations. This is a +format controls string, expecting a single argument, the equation +being referenced that is generated on export. + +Default is to wrap equations in parentheses (using \"\\eqref{%s}\)\". + +Most common values are: + + \"\\eqref{%s}\"Wrap the equation in parentheses + \"\\ref{%s}\" Do not wrap the equation in parentheses" + :group 'org-export-html + :package-version '(Org . "9.4") + :type 'string + :safe t) + (defcustom org-html-with-latex org-export-with-latex "Non-nil means process LaTeX math snippets. @@ -3113,9 +3130,9 @@ INFO is a plist holding contextual information. See (eq 'latex-environment (org-element-type destination)) (eq 'math (org-latex--environment-type destination))) ;; Caption and labels are introduced within LaTeX - ;; environment. Use "eqref" macro to refer to those in - ;; the document. - (format "\\eqref{%s}" + ;; environment. Use "ref" or "eqref" macro, depending on user + ;; preference to refer to those in the document. + (format (plist-get info :html-equation-reference-format) (org-export-get-reference destination info)) (let* ((ref (org-export-get-reference destination info)) (org-html-standalone-image-predicate -- 2.26.0