[Date Prev][Date Next] [Thread Prev][Thread Next] [Date Index] [Thread Index]

Re: LaTeX & DFSG



Mark Rafn writes:
 > > > Let's take an example that will likely resonate with typesetters a bit
 > > > more: the euro.  How did you arrange to add the euro symbol to TeX and
 > > > LaTeX?  What would have happened if I would have needed a euro symbol
 > > > before it was added?
 > 
 > On Fri, 19 Jul 2002, Boris Veytsman wrote:
 > 
 > > This is a technical question, so please excuse my rather technical
 > > answer. On the other hand this answer might be instructive in the way
 > > (La)TeX works and why we do not want to change the kernel.
 > 
 > It was indeed instructive to me.  But it was based on a premise that I 
 > didn't read in Jeff's message.  
 > 
 > > Ok, suppose you want to add a euro symbol to your document. Old
 > > documents do not mention euro, so I can assume we have a new document.

I think that this premise was a resonable assumption. 

 > I don't mean to waste your time, but I think it would be equally 
 > instructive if you didn't make this assumption.  What is required for me 
 > to distribute a ltx-eurodollar such that any document that prints 
 > dollar signs (in CM) in latex instead prints euro signs when the user 
 > runs ltx-euroinsteadofdollar?

that is an interesting question as well, but i think it has nothing to do with
Jeff's. it is in fact something we probably shouldn't answer as it sounds very much
like we should tell you how to do something illegal :-)



having waited a while for someone to answer, here is my solution:

 Apply the LPPL rules (what else? :-):

technically what you want (i think) is that \$ (that prints a dollar sign as
long as you process with LaTeX (and haven't loaded a package to change LaTeX's
behaviour in a LPPL-complient way) is now printing a euro sign, right?

so somehow you would need to have

\usepackage{eurofont}  % or something else to get \euro (sign)
\renewcommand\${\euro}

but you don't want to add this to your document, instead you want this
automatically done by your processor called ltx-euroinsteadofdollar.

so ltx-euroinsteadofdollar is (for example) a modified latex kernel (and no
longer latex).  In other words what you would want is to get that into
latex.ltx instead of the \$ definition there (kernel definitions would look a
little different---but i'm not here to teach you LaTeX., definitely not at 1:45
in the morning :-).

Thus we come to the LPPL-draft section

 CONDITIONS ON DISTRIBUTION AND MODIFICATION
 ===========================================

as we assume that you are not the Maintainer of The Program (since that is me
and David, et al at the moment) that section gives you seven conditions to
meet 
[hmmm 8 i think in the draft that went to this list ... so let's use that one]

1) -- is gone (thanks to Walter) as well as the section it refers to

2) -- that doesn't apply to latex.ltx (and by now that section does nothing
      other than taking away any renaming restrictions for .cfg and .fd files)

3) -- okay so let's call the new kernel file
        euroinsteadofdollar.ltx

4) -- okay, so please add some comments on top as necessary

5) -- that's a little tricky with that file as it is a boot-trapping TeX file
      in essentially every other tex/latex file the identification stuff is on
      top but when a kernel is made Tex starts out stupid and doesn't even
      know which chars mean what, so you have to teach it like a baby.
      As result the indentification strings are a little scattered around.
      (guess we should put some comment on top how to find them)
      to be really correct the right thing is probably to search the file for
      references of the string LaTeX and replace them as needed.

6) -- This is mostly likely already done since we updated the comments in 4)

7) -- Assuming the understanding we have of this section (granted that the
      wording is wrong or at least difficult to understand) you now have to
      choose a license for your new file. No idea what you would want here (i
      would again use LPPL but choose one, say, GPL, and add the clause

       This file is distributed under GPL with the restriction that you are
       not allowed to distribute it or modified versions of it under its
       original name latex.ltx.

      [now don't shoot me if GPL doesn't allow adding clauses to it, if so
      spell GPL out, or use a different license, you may even use a completely
      unfree one for your work]

8) -- Not being stupid: if you distribute euroinsteadofdollar.ltx you choose
      option (B) ie tell people where to get latex.ltx from (or more exactly
      the whole of core latex as that is The Program in that case).

soooo. that's the legal side (a few minutes, especially in the kernel case if
you never did it before, but most definitely less than what i spend writing
this message up to here)

now what is left is actually changing the file in earnst, ie go near the end
and add

\RequirePackage{eurofont}
\renewcommand\${\euro}

or whatever you have chosen to use for the euro.

Having done that you finally have to produce your format file for the TeX
engine, eg

 initex euroinsteadofdollar.ltx  (tetex might do this differently)

which hopefully produces euroinsteadofdollar.fmt

DONE. You can now run

 tex \&euroinsteadofdollar

or symlink tex to euroinsteadofdollar (on tetex) and it loads your format in
which the command  \$ is producing euro signs by default.

================

there are completely different ways, eg doing stuff with fonts etc, but i
think the above is what you are really looking for, right?

================

note that

  euroinsteadofdollar only changes dollar sign in documents in which the
  author hasn't changed the meaning of \$ again (for example by loading a
  package that does it for him), or by saying

\renewcommand\$...

or even

\renewcomand\euro  :-)


also note that your new format works on the same package/class tree as
standard LaTeX.

Thus if you are cheating big (come to think of it, right now that would
perhaps even give you some winnings, indeed :-) and have a large number of
friends to whom you send this euroinsteadofdollar, as they all want to produce
bills with euros when dollars are specified, then LPPL is again helping you to
be assured that all your documents processed with euroinsteadofdollar will
come out exactly identical at your friends place as long as

 a) you used only LPPL licensed latex files
 b) your friends haven't modified euroinsteadofdollar.ltx after they got it from you

thus, if that is important for you, you might want to license
euroinsteadofdollar.ltx as well under LPPL ---- on the other hand you might
now as you discovered that turning \$ to \pounds would make you more money
(excerise for changing euroinsteadofdollar.ltx to do that is left to the reader)

 > > Well, as you see, this community has its own way of modifying
 > > programs. We have traditions that predate GPL, Linux and even C. We
 > > are quite happy with the way the things are.
 > 
 > Understandably so, but we're talking about the freedom of latex, and 
 > whether it can be modified, not the freedom to modify documents which may 
 > or may not have their own licenses.

well, one of the problems here is that people constantly mixing up what is
program and what is data ... and why, because we are running on a macro
language where this is at least value. i think Boris told Jeff for the
specific case quite nicely how to modify/extend LaTeX (sensibly)

there are many other ways including the one above (which is more appropriate
for your case but not really good in the example for Jeff) could have been
used for Jeff as well, but in the LaTeX community most extensions are done by
adding packages even if that means you have to go into old documents and add a
single line, ie

 \usepackage{xyz}

instead of adding functionality to the kernel or modifying it from the inside,
because the package way keeps the document portable.

But as i hope the examples make it very clear, this isn't the only way.

good night
frank


-- 
To UNSUBSCRIBE, email to debian-legal-request@lists.debian.org
with a subject of "unsubscribe". Trouble? Contact listmaster@lists.debian.org



Reply to: