Let's say I have an experimental Asymptote module that I want to make available through CTAN. I can think of several options for this:

  • Create a package that uses a filecontents* environment to install the module in the current directory.

  • Somehow find an appropriate place in the TDS(?) structure where Asymptote will automatically look for modules. This would be ideal if

    1. Such a place existed (outside the asymptote/base folder, which I am guessing is not intended for additions), and
    2. I knew anything at all about the TDS structure. (Judging from other questions, this is something that is hard to get right unless you know what you are doing.)
  • Create a package, which must be loaded after the asymptote package, that uses an asydef environment to include all my Asymptote code in all the Asymptote images throughout the tex document. This would be the easiest, but I think it's the least desirable of the three methods described. For one thing, it prevents the user from choosing which asy environments actually need the extra overhead of loading my module. For another, it can only be used for diagrams inside a tex file; I personally prefer to write all but the simplest asy code in a separate .asy file first, since it is easier to debug that way.

Are any of these reasonable? In particular, is there anything I could do for the second option?

Is CTAN even a suitable option for publishing an Asymptote module?

  • CTAN want 'flattened' packages so you do not need to create a package based on the TDS structure. The files will be placed appropriately when included in distributions according to their policies. In fact, if you upload a package in TDS structure, they will reject it. (This is a change of policy, I think. They used to either request or allow packages in TDS format. Now they won't accept them. At least, they certainly won't take them as the main package submitted. I think they might still allow one as an addition.) – cfr Feb 12 '14 at 22:24
  • 1
    i don't know whether ctan is appropriate for asymptote add-ons; we do, after all, hold asymptote itself. if asymptote has a formal "add-on" structure, then i see no need for us not to hold that structure, and your package would then fit there. (note, i've never used asymptote, and have no clear idea how it is -- or might in future be -- structured.) – wasteofspace Feb 14 '14 at 18:29
  • @wasteofspace: Asymptote has a facility for loading a module similar to the TeX facility for loading a package. However, the modules that come with the distribution are all contained in the same directory (called base) and contain a lot of code that is basic to the functioning of Asymptote. There may be modules that many would find useful, but that the developers do not think should be included in the code base--for instance, if the module is a temporary measure that is expected to be replaced, or is useful but not yet polished ("version 0.3"). – Charles Staats Feb 14 '14 at 20:43
  • @cfr: I think the answer below is addressed to you, and would be a comment if possible. – Charles Staats Feb 18 '14 at 14:04

@cfr: There is no change of CTAN policy concerning TDS-structured packages. We allow them as secondary artifacts and ask authors to make them conform to TeX Live standards. We have never requested nor endorsed them as primary artifacts. The rationale for flattened source archives is easier handling for administration, cataloguing, searching, and browsing. Remember, CTAN stores submissions not as packages, but unpacked. Joachim (CTAN Team member and TDS co-author).

  • 1
    Thanks a lot for this answer, but please make it self-contained (if possible). You may reference comments in your answer, but your answer shouldn't simply be a reply to a comment. – jub0bs Feb 18 '14 at 14:20
  • It may be that different people interpreted the policy in different ways rather than the policy changing. And the point I wanted to make is that one need not provide a package in this format, though I indicated that it might be permissible to do so as an addition. – cfr Feb 18 '14 at 15:14

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service, privacy policy and cookie policy

Not the answer you're looking for? Browse other questions tagged or ask your own question.