Mathematica ノートブックインターフェース
The Mathematica Notebook Interface

V4.1 for Japan

Theodore W. Gray（テオ グレイ）
Wolfram Research, Inc

ノートブックインターフェースって何？
What is the Notebook interface?

カーネルが計算を行い，
ノートブックインターフェースが他のすべてを行います．
The kernel does calculations.
The Notebook interface does everything else.

ノートブックドキュメント
Notebook Documents

ノートブックを使うと，フォント，スタイルシート，アウトライン機能をもつワープロ的な環境でテキスト，計算式，グラフィックス等を組み合わせることができます．例えば，今，皆さんがご覧になっているものもノートブックインターフェースです．
Notebooks allow you to combine text, calculations, and graphics in a word-processor-like environment complete with fonts, style sheets, and outlining features.  For example, you are seeing a notebook document right now.

一般的な計算はすべてノートブックドキュメント上で行われます．例えば，
Notebook documents are where all ordinary calculations are done, for example:

皆さんはすでに計算の実行，テキストの入力などの基本的なノートブックの機能についてはお分かりだと思います．この講演では今までに知られていないノートブックの機能を中心に話を進めて行きます．
You've already seen the basics of what notebooks are about: Doing calculations and writing text.  So, we will talk about some of the more unexpected things the notebook interface is capable of.

ノートブックは，ただ計算を行う場ではありません．本一冊をすべてノートブックを使って作成することができます．実際，今までに多数の本がノートブックを使って書かれています．
Notebooks are more than just places to do a few calculations: Entire books can be created as Notebooks.   In fact, many have been.

ノートブックインターフェースで作成した本はヘルプブラウザに組み込むことができます．以下に例を示します．
Books created with the Notebook interface can be incorporated into the Help Browser.  Here are some examples.

ヘルプブラウザにインストールされた本のインデックスは自動的にマスターインデックスと統合されます．
The indices of any books installed in the Help Browser are automatically combined into a master index.

数式のタイプセット
Math Typesetting

Mathematica のタイプセットシステムは今までのシステムにない画期的なものです．
The typesetting system in Mathematica is truly revolutionary, and still unmatched by any other system.

• 自由な形式　 WYSIWYG編集
• パレット機能：標準的なものに加え，ユーザ定義のものも可能．簡単にプログラム可能
• リアルタイム改行
• 入力，出力ともに選択，編集，評価可能
• 入出力に複数のスタイルをサポート：StandardForm（標準形）， TraditionalForm（慣用形）, ユーザ定義のスタイル
• 検索可能な式
• タイプセットされた式はデータとしてカーネルが扱うことが可能

• Free form, WYSIWYG editing
• Palettes, standard and user-defined, simple and programmable
• Real-time linebreaking
• Input and output fully selectable, editable, and evaluatable
• Multiple styles of input and output: StandardForm, TraditionalForm, and user defined notations
• Structure-searchable expressions.
• Typeset expressions as data you can manipulate in the kernel

現在市場に出ている他のシステムと違いMathematica は，直観的に処理ができるWYSIWYG(what-you-see-is-what-you-get)の入力環境に加え，出版品質のタイプセットと高速な処理を提供します．この機能は単なる表面的なセールスポイントではありません．これによってシステム全体が使いやすくなっています．
Unlike any other system on the market, Mathematica combines intuitive what-you-see-is-what-you-get input with production-quality typesetting and production-efficient input for touch typists.  This last feature is what makes it a truly useful system, instead of just a flashy sales point.

Unicode

Mathematicaはすべての記号を表すのにUnicode規格をカーネル，ノートブックインターフェースともに使っています．
Mathematica uses the Unicode standard to represent all symbols both in the kernel and in the notebook interface.

このノートブック上の日本語もすべてUnicodeとして保管されており，別のプラットフォームへの移行に何の問題もありません．
When you see Japanese characters in this notebook, they are all stored in the file as Unicode characters, so the file is absolutely portable across all platforms, with no character encoding problems.

カーネルも同じようにUnicodeを使っているために Mathematica では他のシステムでは考えられないようなことができます．
Because Mathematica uses Unicode in the kernel as well, we are able to do things only imagined by other systems:

\(∫\(\(a + β + ℘ + \[KlingonB]\^2 + 로\^4 + 烽\^2\)\/\(π\^4 + 溫渡\^3×ℷ\)\) \[DifferentialD]溫渡\)

\(∫\(\(a + β + ℘ + \[KlingonB]\^2 + 貴\^4 + 若\^2\)\/\(π\^4 + 曙\^3×ℷ\)\) \[DifferentialD]曙\)

\(\(Plot[Sin[変数], {変数, 0, 2  Pi}, \ 
        PlotLabel -> "変数"];\)\)

\(\(Plot[Sin[溫渡], {溫渡, 0, 2  Pi}, 
        PlotLabel -> "溫渡"];\)\)

完全な日本語バージョン
Full Localization

Mathematica の日本語バージョンが完成しました．可能な限りすべてを日本語化したため少々時間がかかってしまいました．最新版には以下のものが付け加えられています．
We have finished the complete Japanese localization of Mathematica.  One reason it took so long was because we wanted to translate everything we possibly could.  The newest additions are:

V4.0
すべてのカーネルメッセージに対する警告メッセージ
フロントエンドオプションのドキュメント

V4.0
Warning Messages for all kernel messages.
FrontEnd Option documentation.


V4.1
オンライン日本語版SystemAdministratorsGuide（ネットワークシステム管理者ガイド）
デモパレット：多面体エクスプローラ，周期表

V4.1
Online Japanese SystemAdministrators Guide.
Several Demo palettes: PolyhedronExplorer, PeriodicTable

お気付きの通り，現在は最終の調整段階です．システムのその他すべてはV3.0以降日本語化されています．
As you can see, we are at this point just finishing the last few details: Everything else in the system has been
localized to Japanese since V3.0.

Mathematica 式としてのドキュメント
Documents as Mathematica expressions

ノートブックドキュメント自体が Mathematica 式として表現されています． これにより，Mathematica はノートブックドキュメントを柔軟にしかも容易に取り扱うことができます．
The Notebook document format is itself a Mathematica expression.  This allows Mathematica programs to manipulate documents in very flexible, powerful ways.

FullOptions[SelectedNotebook[], Background]

SetOptions[SelectedNotebook[], 
      Background -> RGBColor[1, 0, 0]]

SetOptions[SelectedNotebook[], Background -> Inherited]

ノートブックインターフェース上のすべてが Mathematica 式となっています．次の式もその一例です．
Everything in the Notebook interface is a Mathematica expression, including these cells.

CellPrint[
      Cell[TextData[
          Table[StyleBox[ToString[n], FontSize -> n], {n, 1, 
              50}]], "Text", Background -> RGBColor[0, 0, 1], 
        FontColor -> GrayLevel[1]]]

プログラミング可能なノートブックインターフェース
The Programmable Notebook Interface

式としての構造を持ったノートブックドキュメントとプログラミング可能なノートブックインターフェースを組み合わせると通常の Mathematicaでは考えられなかったような全く新しいユーザインターフェースを作ることができます．
The expression structure of Notebook documents and the programmability of the Notebook interface can be used to implement entirely new user interfaces, which may look nothing like the ordinary Mathematica.

ここにその例を2つ紹介します．
Here are two examples of how far this can be taken.

Demo Maker はインタラクティブに探求できる環境を作成するプログラムです．このプログラムとこれによって作成される環境の双方が，Mathematica プログラミングがノートブックインターフェースに適応された例となっています．
Demo Maker is a program that creates interactive exploratory environments.  Both the program and the resulting environments are examples of Mathematica programming applied to the Notebook interface.

Patent Office Systemは Mathematica内のモジュールとして米国特許商標局で数式をタイプセットするために使われるカスタマイズされたシステムです．通常の Mathematicaとしてではなく，特別な業務目的に合うようにデザインされています．但し，これも Mathematica プログラミングがノートブックインターフェースに対して作用している一例にすぎません．
The Patent Office System is a module that, when installed in Mathematica, turns it into a highly customized system for typesetting mathematical formulas for the US Patent and Trademark Office.  Instead of working like Mathematica, it is designed to fit into their production process.  Yet, it is nothing more than a Mathematica program that uses the Notebook interface.

画像処理
Image Processing

画像処理はフロントエンドとカーネルのやり取りを示すよい例です．画像処理を行う作業環境には高い計算能力と優れたユーザインターフェースが必要です．
Image processing is a good example of the interaction between the front end and kernel.  A great image processing work environment requires both deep computational capability and good user interface.

このコマンドで画像が Mathematica に取り込まれます．
This command imports an image into Mathematica:

puppyImage = Import["Puppy.JPG"];

Show[puppyImage];

次にこれをグレースケールの値を含んだ行列に変換してみましょう．
Next we convert it into a simple matrix of grayscale values:

makeGraylevel[{r_, g_, 
            b_}] := ((0.3  r + 0.59  g + 0.11  b)/255);

grayscalePuppy = 
        Transpose[
          Map[makeGraylevel, puppyImage[[1, 1]], {2}]];

ここでちょっと面白いことをします．これを連続する関数に変換します．
The clever part: We turn it into a continuous function:

puppyFunction = ListInterpolation[grayscalePuppy]

では，これをいつも行うようにプロットしてみましょう．
Now we can plot it, just like any other function:

DensityPlot[
        puppyFunction[x, y], {x, 1, 200}, {y, 1, 238}];

おそらくもっとプロット点が必要でしょう．
Maybe a few more plot points:

DensityPlot[
        puppyFunction[x, y], {x, 1, 200}, {y, 1, 
          238}, 
PlotPoints -> 50, 
        AspectRatio -> Automatic];

網状になってしまいました．
That mesh is getting in the way:

DensityPlot[
        puppyFunction[x, y], {x, 1, 200}, {y, 1, 
          238}, 
PlotPoints -> 50, Mesh -> False, 
        AspectRatio -> Automatic];

しかしまだ粗いようです．もう少しプロット点を増やしたらどうでしょう．
Still a bit blocky.  How about some more plot points:

DensityPlot[
        puppyFunction[x, y], {x, 1, 200}, {y, 1, 
          238}, 
PlotPoints -> 200, 
        Mesh -> False, AspectRatio -> Automatic];

これで子犬が見えました．
Ah, there's the puppy.

ここで小さい範囲を拡大してみます．この例では，元の画像の解像度に合うようにプロット数を選んだので，元の画像と同じようにはっきりと見ることができます．
Here's a small area magnified.  In this example, we choose the number of plot points to match the original resolution of the image, so we see the exact values that were in the original image:

DensityPlot[
        puppyFunction[x, y], {x, 65, 85}, {y, 150, 
          170}, 
PlotPoints -> 20, Mesh -> False, 
        AspectRatio -> Automatic];

しかし，画像が連続関数として表現されているので，単にプロットする点を増やすだけで，解像度の高い補間された画像を得ることができます．
But because the image is represented as a continuous function, we can simply increase the number of plot points and synthesize a higher resolution, interpolated image:

DensityPlot[
        puppyFunction[x, y], {x, 65, 85}, {y, 150, 
          170}, 
PlotPoints -> 200, 
        Mesh -> False, AspectRatio -> Automatic];

また，等間隔にサンプリングしないことで，画像を変形させることもできます．
We can also distore the image by sampling the image non-linearly:

Off[InterpolatingFunction::dmval]

DensityPlot[puppyFunction[(x^2), (y^2)], {x, 1, (Sqrt[200])}, {y, 1, (Sqrt[238])}, 
        PlotPoints -> 200, Mesh -> False, 
        AspectRatio -> Automatic, Frame -> None];

bl = 10;

DensityPlot[
        puppyFunction[2 bl Floor[(x/bl)] - x + bl, 
          2 bl Floor[(y/bl)] - y + bl], {x, 1, 200}, {y, 1, 238}, 
        PlotPoints -> 200, Mesh -> False, 
        AspectRatio -> Automatic, Frame -> None, 
        PlotRange -> {0, 1}];

デフォルトでは，ListInterpolationはデータが間隔1のグリッド上のサンプル点を表していると仮定します．このため先程の例ではプロットの範囲が元の画像のピクセルの数に対応していたのです．解像度に依存しない数学的画像ということをより強調するために，最初のデータがxの範囲を(-1,1)，yを画像の縦横比に合わせた値を表すようにスケールすることもできます．
By default, ListInterpolation assumes the data represents sample points on a grid with a grid spacing of one (so the plot ranges in the examples above correspond to the number of pixels in the original image.  To further emphasize the resolution-independent, mathematical nature of the image, we can instead scale it so the original data represents values over a range from (-1, 1) in the x direction, and an appropriate range in the y direction to match the aspect ratio of the original image:

puppyFunction = 
        ListInterpolation[
          grayscalePuppy, {{-1, 1}, {-1.19, 1.19}}];

DensityPlot[
        puppyFunction[x, y], {x, -1, 1}, {y, -1.19, 1.19}, 
        PlotPoints -> 200, Mesh -> False, 
        AspectRatio -> Automatic];

これにより，原点を画像の中心に置くことができ，座標を使いやすい範囲に得るために複雑なスケーリングを行う必要はなくなります．
This places the origin at the center of the image, and avoids the use of complicated scaling to get the coordinate values into reasonable ranges.

DensityPlot[
        puppyFunction[Sign[x] (x^2), Sign[y] (y^2)], {x, -1, 
          1}, {y, -(Sqrt[1.19]), (Sqrt[1.19])}, PlotPoints -> 200, 
        Mesh -> False, AspectRatio -> Automatic, 
        Frame -> None];

DensityPlot[(E^(-2 ((x^2) + (y^2)))) 
          puppyFunction[x, y], {x, -1, 1}, {y, -1.19, 1.19}, 
        PlotPoints -> 200, Mesh -> False, 
        AspectRatio -> Automatic, Frame -> None, 
        PlotRange -> {0, 1}];

roundedSquare[x_] := (((Sin[x]^2))^(1/4)) 
        Sign[Sin[x]]

DensityPlot[
        roundedSquare[10  x] roundedSquare[10  y] 
          puppyFunction[x, y], {x, -1, 1}, {y, -1.19, 1.19}, 
        PlotPoints -> 200, Mesh -> False, 
        AspectRatio -> Automatic, Frame -> None];

座標値のリストに作用する関数を定義しておくと便利です．次にその例を示します．
It's convenient to define the function as a function that applies to a vector (list) of coordinates, as we will see in the next few examples.

puppyFunctionV[{x_, y_}] := puppyFunction[x, y]

rotationMatrix[θ_]:=(({{Cos[θ], Sin[θ]}, {-Sin[θ], Cos[θ]}}))

DensityPlot[
        puppyFunctionV[rotationMatrix[1] . {x, y}], {x, -1, 
          1}, {y, -1, 1}, 
PlotPoints -> 200, 
        Mesh -> False, AspectRatio -> Automatic, 
        Frame -> None, PlotRange -> {0, 1}];

DensityPlot[
        puppyFunctionV[rotationMatrix[(x^2) + (y^2)] . {x, y}], {x, -1, 
          1}, {y, -1, 1}, 
PlotPoints -> 200, 
        Mesh -> False, AspectRatio -> Automatic, 
        Frame -> None, PlotRange -> {0, 1}];

DensityPlot[
        puppyFunctionV[(1 + 0.15  Sin[10  Arg[x + y I]]) {x, 
              y}], {x, -1, 1}, {y, -1, 
          1}, 
PlotPoints -> 200, Mesh -> False, 
        AspectRatio -> Automatic, Frame -> None, 
        PlotRange -> {0, 1}];

InterpolatingFunctionが式として表現されているので，その微分をとることができます．
Because InterpolatingFunctions are true mathematical objects, we can take their derivative:

derivativePuppyFunctionX = Derivative[1, 0][
          puppyFunction];
derivativePuppyFunctionY = Derivative[0, 1][
          puppyFunction];
derivativePuppyFunctionXY = Derivative[1, 1][
          puppyFunction];

DensityPlot[
        derivativePuppyFunctionX[x, y], {x, -1, 1}, {y, -1.19, 1.19}, 
        PlotPoints -> 200, Mesh -> False, 
        AspectRatio -> Automatic, 
        Frame -> None];
DensityPlot[
        derivativePuppyFunctionY[x, y], {x, -1, 1}, {y, -1.19, 1.19}, 
        PlotPoints -> 200, Mesh -> False, 
        AspectRatio -> Automatic, 
        Frame -> None];
DensityPlot[
        derivativePuppyFunctionXY[x, y], {x, -1, 1}, {y, -1.19, 
          1.19}, PlotPoints -> 200, Mesh -> False, 
        AspectRatio -> Automatic, Frame -> None];

DensityPlotだけではなくて他のプロット関数を使うこともできます．
We can use other plotting functions, not just DensityPlot:

ContourPlot[
        puppyFunction[x, y], {x, -1, 1}, {y, -1.19, 1.19}, 
        PlotPoints -> 50, AspectRatio -> Automatic, 
        Frame -> None];

ContourPlot[
        puppyFunction[x, y], {x, -1, 1}, {y, -1.19, 1.19}, 
        PlotPoints -> 100, AspectRatio -> Automatic, 
        Frame -> None, ContourShading -> False];

<< RealTime3D`

Plot3D[
        puppyFunction[x, y], {x, -1, 1}, {y, -1.19, 
          1.19}, 
PlotPoints -> 100, 
        Lighting -> False, Mesh -> False];

DensityPlot[((x + 1)/2) 
            puppyFunction[-x, y] + ((1 - x)/2) 
            puppyFunction[x, y], {x, -1, 1}, {y, -1.19, 
          1.19}, 
PlotPoints -> 200, 
        Mesh -> False, AspectRatio -> Automatic, 
        Frame -> None];

DensityPlot[
        puppyFunction[x, y] + puppyFunction[1 - x, y], {x, 0, 
          1}, {y, -1.19, 1.19}, 
PlotPoints -> 
          200, Mesh -> False, AspectRatio -> Automatic, 
        Frame -> None];

InterpolatingFunctionは，3次元目に色情報を加えることにより，カラーイメージを処理することも同様に可能です．勿論，これにはより多くの時間とメモリが必要ですが，この程度の大きさのイメージの場合，現実的な処理が可能です．これについては「The Beginner's Guide to Mathematica V4.0」で詳しく説明する予定です．
InterpolatingFunction can be used in a similar way with color images, by adding color as the third dimension.  Of course it requires more time and memory, but is quite practical for images of this size.  The Beginner's Guide to Mathematica V4.0 will demonstrate how to do this.

ドキュメントのエキスポート
Exporting Documents

HTML/MathML

ノートブックをHTMLドキュメントに変換することが可能です．今までは，数式はGIFイメージとして保存することが必要でした．なぜなら，Web上では，それが唯一数式を表記できる方法だったからです．しかし，この方法には多くの問題がありました．
Notebooks can be exported as HTML documents.  In the past, it has always been necessary to export any mathematical expressions as GIF images, because this was the only way to represent math on the web.  There were many problems with this method.

MathMLはWeb上での数学のための新しい規格です．現在使われているブラウザは今年の後半より，これをサポートするようになるでしょう． Mathematicaは，すでにこの規格を完全にサポートしています．実際，MathML規格は弊社のタイプセットシステムの開発者であるNeil Soifferを中心にまとめらました．ですから，MathMLと Mathematicaのタイプセットには多くの類似点があります．

MathML is the new standard for math on the Web.  Browsers will begin to support this standard later this year, and Mathematica fully support it now.  In fact, Neil Soiffer, our typesetting developer, was a principle author of the MathML standard, as can be seen by the similarity of MathML to our own typeset expression representation.

ToBoxes[(((x + y))^2)]

ExportString[(((x + y))^2), "HTML", 
      ConversionOptions -> {"MathOutput" -> "MathML"}]

TeX

Mathematicaはノートブックドキュメントを TEXに変換することができます．私たちは今個々の学会誌（例：AMS TEXなど）の特殊なスタイルをサポートするという作業も行っています．例として次の数式とテキストを含んだセルをご覧になってください．
Mathematica can export complete notebooks in TEX form.  We are working on implementing specific journal styles (e.g. AMS TEX, etc).  For example, here are a few cells with text and math:

Proof of an Inequality

Michael Trott

Let a, b, c be the lengths of the sides of a non-degenerate triangle. Then the following inequality holds (M. Bjelica. FILOMAT 9, 117 (1995)).

(a/(Sqrt[2  (b^2) + 2  (c^2) - (a^2)])) + 
        (b/(Sqrt[2  (c^2) + 2  (a^2) - (b^2)])) + 
        (c/(Sqrt[2  (a^2) + 2  (b^2) - (c^2)])) ≥ (Sqrt[3])

We will use Mathematica to prove this inequality in a straightforward way.

次のコマンドでこれらのセルを TEX ファイルにエキスポートします．
The following command will export these cells as a TEX file:

ExportString[NotebookOpen["proof.nb"],  "TeX",  
      ConversionOptions  ->  {"DisplayMathPageWidth"  -> 
            6.5 72}]

これが TEX ドキュメントのイメージです．
Here is an image of the resulting TEX document:

各バージョンの新機能
New Features in V4.0/V4.1/V4.2

V4.0

日本語モードからシンタックス記号が入力できる便利な機能
Convenient input of syntax characters from Japanese input method

日本語入力モードから， [，]，{，}，などの記号を入力しようとすると，それらは 2バイト（全角）記号として扱われます．このため，日本語とこれらの記号を含んだ式を入力するためには日本語入力モードと英語入力モードを切り換える必要がありました．
When using a kanji input method, characters such as [, ], {, }, etc, are normally represented by the input method as 2-byte characters.  This makes entering expressions that mix kanji characters with these characters difficult, because you have to keep switching between roman and kanji input methods.

V4.0からはこれらの2バイト記号を認識して，それに対応する1バイトの記号に自動的に変換します．但し，これは入力セルに入力されたときのみで，テキストセルには影響しません．
Mathematica now automatically recognizes and translates the 2-byte versions of these characters into their single-byte equivalents, when they are being entered into input cells, but not when they are being entered into text cells.
jyunnretu[{ringo,orenji,remonn}]

\(\(順列 = Permutations;\)\)

スペルチェッカー
Spell checker

このバージョンにはProximityのスペリングシステムが導入されています．また，数理科学用の辞書が無料でバンドルされています．しかし，これはただの一般的なスペルチェッカーではありません．
We include the Proximity spelling system, and we bundle a math/science dictionary at no charge.  But, it's not just a generic spell checker.

「Dictionary harvester」プログラムにより， Mathematica関連書籍，パッケージから5000もの単語が付け加えられています．  
5000 word supplementary dictionary built from Mathematica books and packages, using a "Dictionary harvester" program.

また，ここに Mathematicaのリストフォーマットか一行ごとに単語を書くフォーマット（Unix のspell dictionaryから移植）を使って，ご自分の辞書を付け加えることができます．
You can add your own dictionary in either Mathematica list format, or one-word-per-line format (e.g., taken from a unix spell dictionary, etc).

このスペルチェッカーはコンピュータでよく使われる単語の書き方を理解しています．例えば，一単語内で大文字が使われたときは，単語に区切って処理します．具体的にはRotationalApproximationは他のスペルチェッカーでは引っかかりますが，Mathematicaではパスします．また，アンダースコア(_)は単語の区切りとして理解されます．（例：count_Integer)
Spell checker knows about conventions used in computerese: Checks internally capitalized words as separate entities (e.g. RationalApproximation) will pass, unlike in any other program.  Also understands _ (underscore) as word separator (e.g. count_Integer will pass).

各セルごとに言語設定を行うことも可能です．英語と日本語が混在している場合，英語だけをチェックして日本語は無視します．
It is possible to specify the language for individual cells, so if you have English mixed with Japanese, you can have it spell check the English while skipping the Japanese.

\(畑賀[x_] := x^2\)

ハイフン
Hyphenation

Proximityシステムは自動的にハイフンを付けるシステムも提供しています．
The Proximity system also provides sophisticated automatic hyphenation.

しかし，ここで問題になることがあります． Mathematica の関数にハイフンが付け加えられると数式のマイナス記号と区別がつかなくなるのです．
But, there's a problem!  Hyphenating Mathematica function names can be very confusing, because the hyphen may be misinterpreted as a minus sign in math.

解決策はハイフン記号以外の記号をこの用途に設定することです．デフォルトスタイルシートではInputスタイルにMathematica の連続記号 ()が使われます．次の例では，普通の英単語にはハイフン記号が使われ，関数では， がハイフンの役目をしています．
The solution: You can specify any character to be used as the hyphen character, and the default style sheet uses the Mathematica continuation character () in Input style.  Example, in the following paragraph english words are hyphenated with - while function names are hyphenated with

When pig farming collectives switch to using Mathematica based semi-quantitative methods, functions such as the powerful yet easy to use FractionalPorcineQuantification are very useful.

スペルチェッカーのように大文字が一単語内で使われた場合，単語は分けて考えられ，ハイブリッドテーブル／アルゴリズミックハイフネータはハイフンを置く場所をより正しく設定できます．
As with spell checking, internally capitalized words are split so the hybrid table/algorithmic hyphenator has the best chance of picking correct hyphenation points.

インラインセル
Inline cells

インラインセルが完成しました．テキストやグラフィックスセルを数式のセルにはめ込む（またはその逆を行う）ことがどのレベルでも可能になりました．
Completed implementation of inline cells.  Now Text and graphics cells can be embedded in
math cells and vice-versa to any depth.

({{Unit, Status, Productivity, Photo}, {Larry, This unit has been showing consistantly climbing productivity. Analysis indicates a curve approximating (e^x)., , }, {Moe, This unit has been showing consistantly climbing productivity. Analysis indicates a curve approximating (1/(e^x))., , }, {Curly, We have high hopes for the future of this unit.  There is no reason to believe the productivity is following a curve similar to this bell curve: )., , }, {Neil, Inconsistancy is the name of the game with this unit.  , , }})

勿論， Mathematica ではドキュメントはデータとして扱われます．従って，プログラムを使ってインラインセル構造を作成することができます．
Of course, since in Mathematica documents are data, you can use programs to generate inline cell structures:

makePlot[i_, j_] := 
      Plot[i Sin[j x], {x, 0, 2  π}, PlotRange -> {-5, 5}, 
        Ticks -> None, DisplayFunction -> DisplayString]

makeCell[s_, size_] := 
        Cell[GraphicsData["PostScript", s], "Text", 
          ImageSize -> N[{size, (size/GoldenRatio)}], 
          CellMargins -> {{0, 0}, {0, 0}}];

\(CellPrint[
      Cell[BoxData[
          GridBox[
	
            Table[makeCell[makePlot[i, j], 60], {i, 5}, {j, 
                5}]]], "Text"]]\)

カッコの対応
Bracket Matching

カッコで混乱することはありませんか？
Confused about brackets?  We can help:

Plot  [ Sin[x],  {x, 0, 2  π

Plot[Sin[x],  {x, 0, 2  π

ユーザ定義のエイリアス
Keyboard short names

記号だけではなく式にも適応できるエイリアス（簡略名）を定義することが可能になります．オプション，InputAliasesはグローバル，ノートブック，セルレベルでキーボードショートカットを可能にするオプションです．
You can now define your own input short names, which can expand to any expression structure, not just a character.  The option InputAliases, which can be set globally, for a particular notebook, or for a particular cell, lets you specify an open ended list of new keyboard shortcuts.

パッケージを開発されている場合，作成されたパレットや記号への簡略名を定義するとよいでしょう．
If you are developing a package, you might want to consider adding some short name equivalents for any palettes or notation that you develop.

InputAutoReplacements

デフォルトでは少数の記号や言葉だけが自動的に別の言葉に変換されます．例えば，->は→に自動的に変換されます．混乱を避けるためにこの数はできるだけ少なくしてあります．
By default, a very small number of common sequences now auto-convert.  For example -> turns into -> automatically.  The number is kept small to avoid annoyance.

変換される記号や言葉は Mathematica で理解されるものでなくてはなりません． 
The characters to be converted must be a Mathematica token.

変換は次の文字を入力したときに起こります．
The conversion happens on the next character.

\(\(CreateSubscriptedVariables[bases_, subscripts_] := 

        Module[{basesStrings, 
            subscriptsStrings}, 
basesStrings = 
            Map[ToString, 
              Flatten[{bases}]]; 
subscriptsStrings = 
            Map[ToString, 
              Flatten[{subscripts}]]; 

SetOptions[SelectedNotebook[], 
            InputAutoReplacements -> 
              Union[InputAutoReplacements /. 
                  Options[SelectedNotebook[], InputAutoReplacements], 
                Flatten[
                  Outer[StringJoin[#1, #2] -> SubscriptBox[#1, #2] &, 
                    basesStrings, 
                    subscriptsStrings]]]];
];\)\)

({{"  Setup Subscripted Variables  "}, {({{"Variables:", x, y}, {"Subscripts:", 1, 2, 3, 4, 5}})}, {Create}})

SetOptions[SelectedNotebook[], 
        InputAutoReplacements -> {Inherited}];

V4.1

カーネルベースのヘルプ機能が改善
Improved kernel-based help system

例えば，’?Plot*’を評価すると，ヘルプブラウザにリンクする関数のボタンが表示されます．
For example, evaluating '?Plot*' gives you a grid of buttons for matching functions which accesses the help browser.

MathMLをサポート
MathML support

MathMLはXMLシンタックスにおいて数式表現をエンコードする新しい規格です．これは主なブラウザメーカがWebブラウザで将来的にサポートする予定で，Webページに数式を載せるための現在の主な手段であるGIFに取って代ることが期待されます．
MathML is a new standard for encoding mathematical expressions in XML syntax.  Major browser makers are working on supporting it in future versions of their web browsers.  This will hopefully replace the use of GIFs as the main way of including math in web pages.

Wolfram Researchの一員であるNeil SoifferはMathML規格の推進に関わっている主要メンバーです．
Wolfram Research employee Neil Soiffer is the primary author of the MathML standard.

J/Link

J/LinkはJavaプログラムへの完全で洗練されたリンクを提供します．Mathematica からJavaルーチンを呼び出し，また JavaからMathematica ルーチンを呼び出すことが可能です．また，J/LinkはwebMathematica の基礎にもなっています．
J/Link provides a very complete and sophisticated link to Java programs.  It's possible to call Java routines from inside Mathematica, and to call Mathematica routines from inside Java.  J/Link is also the basis of the webMathematica product.

V4.2

XMLをサポート
XML support

Mathematica は任意のXMLシンタックスファイルを読み書きし，内容に対する任意の記号処理を行うことができます．
Mathematica will be able to read and write arbitrary XML syntax files, and do arbitrary symbolic processing on their contents.

また，ノートブックドキュメントをXMLフォーマットで書くことも可能です．これにより，XMLベースのドキュメント管理システムでノートブックドキュメントを処理することができます．
It will also be possible to write Notebook documents in XML format, which will allow them to be processed by XML-based document management systems.

Windows XPをサポート
Windows XP support

現行バージョンはWindows XP（今年末に発売予定の新しいWindowsオペレーティングシステム）で動作しますが，デスクトップテーマのような新しい機能は利用できないことがあります．
Current versions should work in Windows XP (the new Windows operating system due out later this year), but won't take advantage of some new features like themed desktop

アップデートにより最新のMathML 2およびUnicode 3.2をサポート
Updates to support latest MathML 2 and Unicode 3.2 standards

MathMLがカーネルを通してサポートされます．
MathML is now supported via the kernel.

MathML 2の新しいタグがサポートされています．
The new tags in MathML 2 are supported.

V4.2はUnicode 3.2に含まれる約500の新しいUnicodeの記号を認識し表示します．
V4.2 will recognize and display the approximately 500 new unicode math symbols going into Unicode 3.2.

webMathematica

webMathematica により，HTMLをインタラクティブに生成するMathematica カーネルを用いてダイナミックなWebサイトを作ることができます．
The webMathematica system allows you to create dynamic websites using the Mathematica kernel to generate HTML interactively.

日本ではwebMathematica は正規代理店でお求めになれます．
It is available from distributors in Japan.

Macintosh OS X

お気付きの通り，ここではMacintosh OS Xを用いています．
As you may have noticed, this talk is being given using Macintosh OS X.

今年の4月にOS X用のプレビュー版，Mathematica V4.1の配布を開始しました．このバージョンはMacintoshユーザとしてご登録のプレミアサービスのお客様に無料でお送りしました．これは完成版ではありませんが，十分に動作し，皆様にも気に入っていただけると思っております．
In April we started shipping a Preview version of Mathematica V4.1 for OS X.  This version was sent free to all Premier Service customers registered as Macintosh users.  It is not perfect, but it's good enough to use and we thought people would like to get it as soon as possible.

この夏には皆様がアップグレードできる完成版をご提供できると思います．
We expect to have a finished version that anyone can upgrade to some time this summer.

日本語バージョンもほぼ同時に完成します．
Japanese localization will be available immediately.

OS X版にはいくつかの大きな利点があります．
The OS X version has several important advantages:

完全にネイティブ
Fully Native

Mathematica のOS X版は完全にネイティブなOS Xアプリケーションです．ノートブックのインターフェースはCarbon/mach-oアプリケーションで，カーネルは標準Unixの実行可能ファイルです．ターミナルツールからカーネルを動作させることもできます．
The OS X version of Mathematica is a completely native OS X application.  The Notebook Interface is a Carbon/mach-o application and the kernel is a standard Unix executable.  You can run the kernel from the terminal tool if you like.

より速い
Faster

ノートブックインターフェースとカーネルの間のコミュニケーションはOS X版では非常に速くなっています．またそれらの切換えにも時間がかからなくなりました．その結果，計算時間が10%ほど短縮されました．
Communication between the Notebook Interface and the kernel is much faster in the OS X version, and less time is wasted switching between them.  As a result, calculations run about 10% faster.

もうメモリの問題はありません
No More Memory Problems!

Appleはメモリ不足が発生しにくいオペレーティングシステムをついに完成しました．特にカーネルに関しては，計算にどのくらいのメモリが必要であるかを推測するのが基本的に不可能なので，これはとても有意義です．
Finally, after many years of waiting, Apple has made an operating system where you can't easily run out of memory.  For the kernel especially, this is very helpful since it is basically impossible to predict in advance how much memory a calculation is likely to take.

日本語の文字をより強力にサポート
Better Support for Japanese Characters

OS XではAppleは非常に高品質な拡張日本語フォントを使用しています．これらはShift-JISに含まれる文字数を超える数千文字を含んでいます．
In OS X Apple has included a set of very high quality extended Japanese fonts.  They include several thousand characters beyond those in Shift-JIS.

Mathemathica の以前のバージョンでは，Unicodeの日本語はShift-JISに限定して使用してきました．しかしOS XではUnicodeのサポートにより，インストールされているすべてのフォントのすべての文字をMathematica 上で表示することができます．
In earlier versions of Mathematica we were limited to using only Shift-JIS characters for the Japanese range of Unicode, but we are now able to use the Unicode support in OS X to allow Mathematica to render all the characters in all the fonts you have installed.