TeX - LaTeX Stack Exchange is a question and answer site for users of TeX, LaTeX, ConTeXt, and related typesetting systems. Join them; it only takes a minute:

Sign up
Here's how it works:
  1. Anybody can ask a question
  2. Anybody can answer
  3. The best answers are voted up and rise to the top

I have created a LaTeX class file. Can I release a class file created by me under gpl?

share|improve this question
Yes, of course. However in the TeX world the LPPL license is usually preferred; see latex-project.org/lppl – egreg Sep 18 '13 at 15:18
You can use GPL, but most people use the LPPL instead. Some reasons for this can be found in the document modguide.pdf which you can find with texdoc. – Alan Munn Sep 18 '13 at 15:20
If it's your work: Yes. But see The GPL and LaTeX packages – Martin Schröder Sep 19 '13 at 6:57
The question is not really well written. Of course you can release any software you wrote yourself under any license. Anyway, the CTAN upload page allows to select GPL as license. – Martin Scharrer Sep 19 '13 at 14:35
@MartinScharrer I asked this question because, I used to create a class based on an existing class – tex Sep 19 '13 at 18:20
up vote 22 down vote accepted

This question can't be answered with a simple yes or no (despite the comments above made by one of the most knowledgeable person on this site).

It largely depends on whether or not your class is derived from other work that is based on LPPL or not and most likely a good proportion of a real class would be of that nature (unless you done your class by loading a different class via \LoadClass + some changes/modifications).

The reason is that while both LPPL and GPL are free licenses they are incompatible with each other (and for a good reason). The main goal of LPPL is to provide freedom for change while maintaining a core feature of LaTeX which is information interchange and that requires that if you build a LaTeX document it will work not only for you but also on a different installation (provided the same packages and classes are installed).

LPPL therefore requires that you identify your work if it is derived from some other work as being different from the original in a way easily identifiable for a user of your work, e.g., that a user does not mistake your work for the original.

For example, if you take article.cls and you modify it then you have to make sure that it is not mistaken for article.cls from the official distribution. Typically this is done by changing the name (and in fact this is usually the best solution). But LPPL also requires that through further mods this requirement is not being undone.

Now if you want to distribute your myarticle.cls under GPL then you would effectively need to add a clause to GPL that says "do what you like but ensure that your changes are not being mistaken for article.cls from which it originates" but that additional clause would be incompatible with GPL as it doesn't allow its license to be further restricted.

For the same reason it is unfortunately utter nonsense if somebody claims he or she is dual-licensing some work both under LPPL and GPL, it really invalids both licenses.

A much more elaborate explanation and some information on the history of LPPL can be found in Reflections on the history of LPPL which appeared some time ago in TUGboat. In there I think (or at least I hope) you will find a good argument why GPL --- while it is a very good license for a lot of situations --- is not the best model for works in domains that deal with information interchange, i.e. that need to protect the integrity of a "language" as well as all the other freedoms we wish to have.

share|improve this answer

Your Answer


By posting your answer, you agree to the privacy policy and terms of service.

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