### Graphical Output

#### PostScript and PDF

- The marker size between the screen output and the output file formats was not consistent.
- Implement the text kerning. The effect is clearly illustrated with the following script. Without kerning the red X is overlaped by the the rest of the text.

           {
              TCanvas *c = new TCanvas;
              TLatex *l = new TLatex(0.5, 0.5, "AVAVAVAVAVAVAVAVAVA#color[2]{X}");
              l->Draw();
              c->SaveAs("c1.eps");
           }

  The original idea came from Oleksandr Grebenyuk. It has been implemented in a such way that the kerning mechanism is activated only when needed. If not needed the old way of text rendering is used. It was done that way because most of the time kerning is not needed and text rendered using the kerning mechanism takes more space in the PS/PDF files.
- Very long text strings made wrong PS files.
- PDF also allows to define table of contents. Now, this facility can be used in ROOT. The following example shows how to proceed:

           {
              TCanvas* canvas = new TCanvas("canvas");
              TH1F* histo = new TH1F("histo","test 1",10,0.,10.);
              histo->SetFillColor(2);
              histo->Fill(2.);
              histo->Draw();
              canvas->Print("plots.pdf(","Title:One bin filled");
              histo->Fill(4.);
              histo->Draw();
              canvas->Print("plots.pdf","Title:Two bins filled");
              histo->Fill(6.);
              histo->Draw();
              canvas->Print("plots.pdf","Title:Three bins filled");
              histo->Fill(8.);
              histo->Draw();
              canvas->Print("plots.pdf","Title:Four bins filled");
              histo->Fill(8.);
              histo->Draw();
              canvas->Print("plots.pdf)","Title:The fourth bin content is 2");
           }

  Each character string following the keyword "Title:" makes a new entry in the table of contents.
- `TPostScript::Text`: Inside a string, the backslash itself is now escaped. The PS file generated by the two following lines did not work.

           TText t(.5,.5,"\\t\\");
           t.Draw();

- Small fix regarding line width in TPDF.
- In some cases there was some extra blanck page at the beginning of the PDF files. In particular when generated using the "[]" mechanism.

#### SVG

- The character `#pm` was not correct.
- Long polyline were not drawn correctly.

#### TASImage

- In the following macro the histogram drawing was done with wrong margins:

           {
              TImage *img = TImage::Open("$ROOTSYS/tutorials/image/rose512.jpg");
              img->Draw("x");
              gPad->Update();
              TH1F *h1f = new TH1F("h1f","Test random numbers",100,-5,5);
              h1f->FillRandom("gaus",10000);
              h1f->Draw();
              gPad->Update();
           }

- Improve the palette placement in `TASImage::Paint` (cf $ROOTSYS/tutorials/image/galaxy_image.C)
- `GetWidth()` and `GetHeight()` returned the size of the scaled image (if it exist) instead of the real size of the image.
- Initialize the `Visual` in `TASImage::ReadImage`. This fix a long standing problem with THtml: Without this fix all the embeded macros generating GUI output did not work in THtml.

#### TImageDump

- Small boxes (less than one pixel width) were not drawn properly.
- Line width for hollow boxes was always 1 (in batch mode).

### Graphics Primitives

#### New text font: Symbol italic

- A new text font "Symbol Italic" has been implemented. It is working for all possible outputs: screen, PS, PDF,SVG, gif etc ... It has the font number 15.
  The following macro gives an example:

           {
              TCanvas c("c","c",0,0,400,100);
              TLatex t0(.05,.45,"Symbol: #font[122]{abc} - Symbol Italic #font[152]{abc}");
              t0.SetTextSize(0.36);
              t0.Draw();
              c.Print("symbolitalic.ps");
              c.Print("symbolitalic.pdf");
              c.Print("symbolitalic.gif");
              c.Print("symbolitalic.svg");
           }

  The PostScript implementation was done thanks to the help of Pierre Juillot and Benoit Speckel (IPHC Strasbourg)

#### New markers

- Three new marker's styles are now available (32, 33, 34). They complement the markers' list making sure each marker has a solid and an hollow version.

#### TLatex

- The `#int` and `#sum` symbols had wrong limits placement if the character just before started with "#". There was an atempt to fix this problem in the previous release but it produced very bad side effects therefore the fix was reverted. This new fix does not have this sidecw effect. It causes, in the case of the "^" or "_" preceded by "sum" or "int", to break off and process everything before "sum" or "int" first. After that, when processing the rest, the "^" kicks in first according to the order of precedence, and takes the "int" (only!) as its base.
  Fix done by: Oleksandr Grebenyuk `<ogrebenyuk@lbl.gov>`.
- Four new commands: `#kern`, `#lower`, `#it` and `#bf`.
  The two commands `#kern` and `#lower` enable a better control over characters placement. The command `#kern[(Float_t)dx]{text}` moves the output string horizontally by the fraction `dx` of its length. Similarly, `#lower[(Float_t)dy]{text}` shifts the text up or down by the fraction `dy` of its height.
  Text can be turned italic or boldface using the commands `#it` and `#bf`.
  Example:

           {
              gStyle->SetTextFont(132);
              (new TLatex(0.01, 0.9, "Positive k#kern[0.3]{e}#kern[0.3]{r}#kern[0.3]{n}#kern[0.3]{i}#kern[0.3]{n}#kern[0.3]{g} with #^{}kern[0.3]"))->Draw();
              (new TLatex(0.01, 0.7, "Negative k#kern[-0.3]{e}#kern[-0.3]{r}#kern[-0.3]{n}#kern[-0.3]{i}#kern[-0.3]{n}#kern[-0.3]{g} with #^{}kern[-0.3]"))->Draw();
              (new TLatex(0.01, 0.5, "Vertical a#lower[0.2]{d}#lower[0.4]{j}#lower[0.1]{u}#lower[-0.1]{s}#lower[-0.3]{t}#lower[-0.4]{m}#lower[-0.2]{e}#lower[0.1]{n}t with #^{}lower[-0.4...+0.4]"))->Draw();
              (new TLatex(0.01, 0.3, "Font styles: #^{}bf{#bf{bold}}, #^{}it{#it{italic}}, #^{}bf{#^{}it{#bf{#it{bold italic}}}}, #^{}bf{#^{}bf{#bf{#bf{unbold}}}}"))->Draw();
              (new TLatex(0.01, 0.1, "Font styles: abc#alpha#beta#gamma, #^{}it{#it{abc#alpha#beta#gamma}}, #^{}it{#^{}it{#it{#it{abc#alpha#beta#gamma}}}}"))->Draw();
           }

  Done by: Oleksandr Grebenyuk `<ogrebenyuk@lbl.gov>`.
- Two new characters: #forall and #exists.

#### TText

- New method `GetTextAdvance` to return the text advance for string text taking the kerning into account or not.

#### TGaxis

- In case of horizontal axis with the font size in pixel (font precision = 3) the labels were not visible.
- Alpha numeric labels are not scaled anymore in case of text precision 3 (size in pixels). They are in the other precisions.
- Fix a precision issue on Mac. With the following lines the last label (10^3) did not show:

           t1 = new TH1F("test","test", 100,1,1000);
           t1.Draw();
           gPad->SetLogx(1);

#### TPaveStats

- The stats painting assumed that the stats position was always defined with Y2>Y1 and X2>X1. This is true when the stats is created automatically but might not true if the stats position is given by user. This is now protected. The stats are correctly drawn whatever the orders of X and Y coordinates are.
- Saving canvas as a .C macro discarded white title and stat box background. Same thing with TPaveText.

#### TCutG

- `IsInside(x,y)` is now inherited from TGraph.

#### TCanvas and TPad

- In case of `Canvas.MoveOpaque = true` in `$ROOTSYS/etc/system.rootrc` the rubberband was not visible during the zooming along axis.
- `TPad::SaveAs` now takes care of the extensions `.pdf]`, `.pdf[`, `.pad(` and `.pdf)` to avoid the PS and PDF mixing when a multiple pages PDF files is generated. To work around this problem it was enough to specify the option "pdf" in SaveAs.
- `c->BuildLegend()` created the legend in the current pad, not in `c` (as it should).
- A square TCanvas saved in batch mode in a ROOT file was not square anymore when displayed in interactive mode.