ddoc latex/formulas?
Andrei Alexandrescu via Digitalmars-d
digitalmars-d at puremagic.com
Thu Sep 15 04:39:13 PDT 2016
On 9/15/16 5:50 AM, Johan Engelen wrote:
> On Wednesday, 14 September 2016 at 11:36:11 UTC, Andrei Alexandrescu wrote:
>> On 9/14/16 1:50 AM, Manu via Digitalmars-d wrote:
>>> Can we produce formulas, or latex in ddoc? Are there any examples in
>>> phobos I can refer to?
>>
>> https://github.com/dlang/dlang.org/blob/master/latex.ddoc
>>
>> That's the macros file for generating the language spec in LaTeX format.
>
> I think what the man is asking for is a way to write formulas in DDoc,
> regardless of output format. Foremost, the math should display well on
> dlang.org.
I see. So he's referring to LaTeX macros as an _input_ method, not as a
_generated_ conduit. Thanks!
A good answer to that would seem www.mathjax.org. I defined the DIP1000
semantics (bunch of judgments and greeks) in a ddoc file that uses
mathjax. For a while (until crunch mode set in) I've used mathjax for
https://arxiv.org/abs/1606.00484. I have a BigO paper (not yet
published) that also uses MathJAX for producing consistent LaTeX/PDF and
HTML documents from the same source.
> If you look at https://dlang.org/phobos/std_mathspecial.html#.gamma,
> there is some math there. But then if you look at the DDoc source,
> https://github.com/dlang/phobos/blob/master/std/mathspecial.d, it's
> pretty terrible how to get it done, and it is very limited (how would
> you get "sqrt(x+y)" to display well, or probably what Manu wants, how to
> get matrix math to display well?).
Here there seems to be a mix of input syntax and rendering being
discussed. This confuses the living daylight of me again. Let me make
sure I understand matters correctly:
* ddoc has absolutely nada notion of rendering. To ask "how do I render
sqrt and aligned matrices with ddoc" does not compute. Is there
agreement on that?
* mathjax (and latex from which its input syntax is inspired) offer a
solution for both input (those \macros) and rendering.
* ddoc may be used with either mathjax or latex without interfering in
any way. It's just a macro system.
So the way you mention to get some math input in ddoc in mathspecial is:
$(GAMMA)(z) = $(INTEGRATE 0, $(INFIN)) $(POWER t, z-1)$(POWER e, -t) dt
This input can be trivially rendered as mathjax/latex by defining the
macros suitably. In LaTeX and MathJaX the input would be:
\Gamma(z) = \int_0^\infty \! t^{z-1} e^{-t} \mathrm{d}t
which... does not seem quite a day and night difference IMHO. Though I
do prefer the latter for math-intensive docs because it's a tad more
concise.
> A great addition to DDoc would be to allow LaTeX bits, like doxygen
> does, and render it nicely for both web and PDF output. You just mark a
> piece of text as <LatexStartsHere>....<LatexOut>.
We already have that. Just use latex syntax inside \( \) and import
mathjax if you want to generate HTML, or do nothing else to generate
LaTeX. I'm doing it all the time in my papers.
Andrei
More information about the Digitalmars-d
mailing list