[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
Re: [O] Equation references in HTML export
From: |
Nicolas Goaziou |
Subject: |
Re: [O] Equation references in HTML export |
Date: |
Tue, 16 Jan 2018 19:09:09 +0100 |
User-agent: |
Gnus/5.13 (Gnus v5.13) Emacs/25.3 (gnu/linux) |
Hello,
Thibault Marin <address@hidden> writes:
>> You may be right. In this case, we may use \eqref if MathJax is
>> going to be used (like your initial patch did), and do the above
>> otherwise.
>
> OK, I think that would work. To summarize, here are the different
> outputs under MathJax and the other modes:
>
> - MathJax mode:
> - Environment:
> ,----
> | \begin{align}
> | \label{eq:org19c7f92}
> | 1 + 1 = 0
> | \end{align}
> `----
> - Link:
> ,----
> | link to \eqref{eq:org19c7f92}
> `----
> - other modes, e.g. verbatim: (it is similar for the rest: dvipng,
> imagemagick, etc).:
> - Environment
> ,----
> | <div id="org19c7f92" class="equation-container">
> | <span class="equation">
> | \begin{align}
> | 1 + 1 = 0
> | \end{align}
> |
> | </span>
> | <span class="equation-label">
> | 1
> | </span>
> | </div>
> `----
> - Link:
> ,----
> | link to equation <a href="#org19c7f92">1</a>
> `----
>
> The attached patch produces this on my test cases.
It looks good. Thank you.
> I looked at other structures:
> - for figures, the caption is in a `figcaption' tag if HTML5 is used or
> in a paragraph, both under the figure,
> - for tables, the caption is in a `caption' tag, at the top or bottom of
> the environment depending on `:html-table-caption-above',
> - As far as I can tell, source blocks get no caption.
>
> Since there does not appear to have a common convention, I think the
> proposed output (see above with "equation-container", "equation" and
> "equation-label" tags) would be fine, if nobody objects. Some CSS puts
> the label on the right side, as with LaTeX export or MathJax. This only
> applies to the non-MathJax modes.
As a first step, it sounds acceptable, indeed. However, I assume it
would be useful to make all approaches converge on a single solution.
> I think I misunderstood what the caption does in ox-latex. Here, in the
> MathJax case, just I need to insert the `\label' inside the latex
> environment, e.g. `\begin{equation}\label{org21321}' similar to what
> `org-latex-latex-environment' does. The caption itself (the equation
> number) is always on the right of the equation, regardless of the mode
> (MathJax or other), so this is variable is not needed anymore.
OK.
> I hope the patch looks better now. I have a few remaining questions:
>
> - The `org-html--is-math-environment' function relies on
> `org-latex-math-environments-re' from ox-latex for the numbering
> (numbering only equations, ignoring other environments). Is it
> acceptable?
I guess so. OTOH, I assume latex environments are always math
environments. One can use LaTex export blocks for "regular" LaTeX.
Nitpick: since this is a predicate, it should be named
`org-html--math-environment-p'.
> - In non-MathJax modes, I currently pre-process the latex environment to
> change equation environments to their * version,
> e.g. "\begin{equation}" -> "\begin{equation*}". This is to prevent
> the latex environment from adding its own labeling to the rendered
> image. This feels like a hack. Is there a better way to achieve
> this?
No idea. I hope a LaTeX expert can chime it.
Meanwhile, I think the implementation is a bit convoluted. What about
the following?
(replace-regexp-in-string
"\\`[ \t]*\\\\begin{\\([^*]+?\\)}"
"\\1*"
(replace-regexp-in-string "^[ \t]*\\\\end{\\([^*]+?\\)}[ \r\t\n]*\\'"
"\\1*"
latex-frag nil nil 1)
nil nil 1)
> - The `org-html--insert-latex-environment-label' (the function that
> inserts `\label' inside the environment also feels like a hack. I
> originally wanted to re-use the equivalent latex code, but maybe this
> is simpler. Do you think we can do better?
IMO, this doesn't deserve to be a function, you can just use something
like this:
(if (org-string-nw-p label)
(replace-regexp-in-string "\\`.*"
(format "\\&\n\\\\label{%s}" label)
latex-frag)
latex-frag)
> - In the image modes (e.g. dvipng), I removed the following comment: ";;
> Do not provide a caption or a name to be consistent with `mathjax'
> handling." I am not sure what it means and whether I should be
> concerned about it.
IIUC, so far, Mathjax doesn't provide any caption, neither does dvipng.
> - I think I have been with messing this file enough now that I should
> add tests. I didn't see any tests for ox-latex or ox-html. Is there
> a reason for that?
They are not a priority. Bugs in export back-ends are usually visible
enough. Anyway this doesn't mean you cannot write some tests. Tests are
nice. However they are not mandatory in this case.
Regards,
--
Nicolas Goaziou 0x80A93738
- [O] Equation references in HTML export, Thibault Marin, 2018/01/05
- Re: [O] Equation references in HTML export, Nicolas Goaziou, 2018/01/06
- Re: [O] Equation references in HTML export, Thibault Marin, 2018/01/07
- Re: [O] Equation references in HTML export, Nicolas Goaziou, 2018/01/09
- Re: [O] Equation references in HTML export, Thibault Marin, 2018/01/10
- Re: [O] Equation references in HTML export,
Nicolas Goaziou <=
- Re: [O] Equation references in HTML export, Thibault Marin, 2018/01/16
- Re: [O] Equation references in HTML export, Nicolas Goaziou, 2018/01/17
- Re: [O] Equation references in HTML export, Thibault Marin, 2018/01/17
- Re: [O] Equation references in HTML export, Nicolas Goaziou, 2018/01/19
- Re: [O] Equation references in HTML export, Eric S Fraga, 2018/01/17
- Re: [O] Equation references in HTML export, Thibault Marin, 2018/01/18
- Re: [O] Equation references in HTML export, Eric S Fraga, 2018/01/19