Daniel-Diaz / HaTeX

The Haskell LaTeX library.
BSD 3-Clause "New" or "Revised" License
199 stars 46 forks source link

Add all the arrow symbols in AMSSymb. #120

Closed leftaroundabout closed 5 years ago

leftaroundabout commented 5 years ago

amssymbarrows-hatex

...actually, many of these don't even require AMSSymb, only vanilla LaTeX. Not sure if those should go straight in Base.Commands?

leftaroundabout commented 5 years ago

The naming scheme could also be debated – \Rightarrow is rightarrow2, etc.. But I think it's pretty clear the way I've done it: the 2-variants have a double-struck shaft, the 3-variants a triple-struck shaft.

leftaroundabout commented 5 years ago

...hm, actually \Lsh and \Rsh break the rule; these are only single struck. Stay with lsh2 and rsh2 nevertheless?

Daniel-Diaz commented 5 years ago

Those that don't require AMSSymb should probably go in Base.Commands.

I think the naming is good, even with those two exceptions. With the comment it should be clear what it represents.

Thanks!

leftaroundabout commented 5 years ago

Regarding putting the non-AMS arrows in Base.Commands – actually quite a lot of the symbols currently in AMSMath don't require that package. And the Base.Commands module is rather big already. Perhaps it would be better to have a new module Base.Math. This could be re-exported from both Base.Commands and AMSMath, thus also ensure backwards-compatibility.

Daniel-Diaz commented 5 years ago

Regarding putting the non-AMS arrows in Base.Commands – actually quite a lot of the symbols currently in AMSMath don't require that package.

This is rather unfortunate. The idea of the Commands module is to contain commands, symbols, and environments that come by default, without having to import anything.

And the Base.Commands module is rather big already. Perhaps it would be better to have a new module Base.Math. This could be re-exported from both Base.Commands and AMSMath, thus also ensure backwards-compatibility.

It is true that the Commands module is big. I wouldn't mind splitting the math related stuff, as long as it is done in a backwards-compatible way, like the one you are describing. I also think that the split can help making the docs easier to browse.

In any case, I consider a design bug having to import Packages.AMSMath to get functions that you can use without importing the LaTeX package. The only exception being functions that are methods of a type class which requires for at least one of its methods the import of amsmath.

Daniel-Diaz commented 5 years ago

There are some conflicts here that prevent merging.