Although TeX is a well-matured technology, various derived TeX engines and related packages have been developed and they are still advancing every day. I will give an outline of the history of TeX and the features of recent TeX-related technologies. I will focus especially on Japanese typesetting and graphics generation.
7. % This program is copyright (C) 1982 by D. E. Knuth; all rights are reserved.!
% Copying of this file is authorized only if (1) you are D. E. Knuth, or if!
% (2) you make absolutely no changes to your copy. (The WEB system provides!
% for alterations via an auxiliary file; the master file should stay intact.)!
% See Appendix H of the WEB manual for hints on how to install this program.!
% And see Appendix A of the TRIP manual for details about how to validate it.!
TeXはオープンソース?
tex.webより
パッチ(change file)の形で改変することは可能
8. I have put these systems (注: TeX, METAFONT, Computer Modern) into
the public domain so that people everywhere can use the ideas freely
if they wish.
TeXはオープンソース?
終結宣言(1990)より
TeX という名前を使わなければ改変・配布自由
As stated on the copyright pages of Volumes B, D, and E, anybody can
make use of my programs in whatever way they wish, as long as they
do not use the names TeX, METAFONT, or Computer Modern. In
particular, any person or group who wants to produce a program
superior to mine is free to do so. However, nobody is allowed to
call a system TeX or METAFONT unless that system conforms 100% to my
own programs, as I have specified in the manuals for the TRIP and
TRAP tests.
10. 実は……
今我々が使っているのは TeX ではない
$ latex!
This is pdfTeX, Version 3.1415926-2.5-1.40.14 (TeX Live 2013)
$ platex!
This is e-pTeX, Version 3.1415926-p3.4-110825-2.6 (utf8.euc) (TeX Live 2013)
我々が使っているのは 派生版TeX
派生版TeX は日進月歩で進化中!
27. LuaTeX
defHeron#1#2#3{directlua{!
function Heron(a, b, c)!
local area, s!
if a+b>c and b+c>a and c+a>b then!
s = (a+b+c)/2!
area = math.sqrt(s*(s-a)*(s-b)*(s-c))!
else!
area = -1 !
end!
return area!
end!
result = Heron(#1, #2, #3)!
if result > 0 then!
tex.print("area = ".. result)!
else!
tex.print("data error")!
end!
}}!
Heron{3}{4}{5}!
%=> area = 6!
!
Heron{3}{4}{6}!
%=> area = 5.3326822519254!
!
Heron{1}{2}{3}!
%=> data error!
45. PSTricks
%% pstricks.sty / pst-3dplot.sty をロードしておく!
begin{pspicture}(-5,-5)(5,5)!
psset{Beta=20,Alpha=50,linewidth=0.1pt,linecolor=blue}!
parametricplotThreeD[xPlotpoints=500,yPlotpoints=100](80,360)(0,360){%!
! /k 2 def /k2 4 def!
! t cos k mul 3 u sin k mul add mul!
! t sin k mul 3 u sin k mul add mul!
! u cos k2 mul}!
parametricplotThreeD[yPlotpoints=200](0,360)(80,360){%!
! /k 2 def /k2 4 def!
! u cos k mul 3 t sin k mul add mul!
! u sin k mul 3 t sin k mul add mul!
! t cos k2 mul}!
parametricplotThreeD[xPlotpoints=100,yPlotpoints=2,!
linecolor=red,linewidth=2pt](0,360)(80,360){%!
! /k 2 def /k2 4 def!
! u cos k mul 3 t sin k mul add mul!
! u sin k mul 3 t sin k mul add mul!
! t cos k2 mul}!
end{pspicture}