448 latex.TLatex::Copy(*
this);
458 TAttLine::operator=(
lt);
525 const char *
tab[] = {
"alpha",
"beta",
"chi",
"delta",
"varepsilon",
"phi",
"gamma",
"eta",
"iota",
"varphi",
"kappa",
"lambda",
526 "mu",
"nu",
"omicron",
"pi",
"theta",
"rho",
"sigma",
"tau",
"upsilon",
"varomega",
"omega",
"xi",
"psi",
"zeta",
527 "Alpha",
"Beta",
"Chi",
"Delta",
"Epsilon",
"Phi",
"Gamma",
"Eta",
"Iota",
"vartheta",
528 "Kappa",
"Lambda",
"Mu",
"Nu",
"Omicron",
"Pi",
"Theta",
"Rho",
"Sigma",
"Tau",
529 "Upsilon",
"varsigma",
"Omega",
"Xi",
"Psi",
"Zeta",
"varUpsilon",
"epsilon"};
531 const char *
tab2[] = {
"leq",
"/",
"infty",
"voidb",
"club",
"diamond",
"heart",
532 "spade",
"leftrightarrow",
"leftarrow",
"uparrow",
"rightarrow",
533 "downarrow",
"circ",
"pm",
"doublequote",
"geq",
"times",
"propto",
534 "partial",
"bullet",
"divide",
"neq",
"equiv",
"approx",
"3dots",
535 "cbar",
"topbar",
"downleftarrow",
"aleph",
"Jgothic",
"Rgothic",
"voidn",
536 "otimes",
"oplus",
"oslash",
"cap",
"cup",
"supset",
"supseteq",
537 "notsubset",
"subset",
"subseteq",
"in",
"notin",
"angle",
"nabla",
538 "oright",
"ocopyright",
"trademark",
"prod",
"surd",
"upoint",
"corner",
"wedge",
539 "vee",
"Leftrightarrow",
"Leftarrow",
"Uparrow",
"Rightarrow",
540 "Downarrow",
"diamond",
"LT",
"void1",
"copyright",
"void3",
"sum",
541 "arctop",
"lbar",
"arcbottom",
"topbar",
"void8",
"bottombar",
"arcbar",
542 "ltbar",
"AA",
"aa",
"void06",
"GT",
"int",
"forall",
"exists" };
544 const char *
tab3[] = {
"bar",
"vec",
"dot",
"hat",
"ddot",
"acute",
"grave",
"check",
"tilde",
"slash"};
550 Int_t min = 0, max = 0;
568 if (t[i] ==
'{' && !(i>0 && t[i-1] ==
'@'))
nBrackets++;
569 if (t[i] ==
'}' && t[i-1]!=
'@')
nBrackets--;
594 Error(
"Analyse",
"It seems there is a syntax error in the TLatex string");
667 if (
text[i+1]!=
'{' && !(
text[i+2]==
'{' && (
text[i+1]==
'^' ||
text[i+1]==
'_'))
736 if (
strncmp(buf,
"splitline{",10)==0) {
782 if (
strncmp(buf,
"frac{",5)==0) {
846 if (
strncmp(buf,
"{}{",3)==0 ) {
988 pos = (
m-
fs1.Width())/2;
1005 if (min >= 2 &&
strncmp(&
text[min-2],
"{}",2)==0) {
1065 if (
fs2.Width()>
fs1.Width())
1112 if (
fs2.Width()>
fs1.Width())
1171 hbar.SetTextFont(12);
1175 hbar.SetTextAlign(11);
1193 minus.SetTextFont(122);
1197 minus.SetTextAlign(11);
1214 plus.SetTextFont(122);
1218 plus.SetTextAlign(11);
1235 mp.SetTextFont(122);
1236 mp.SetTextColor(
spec.fColor);
1237 mp.SetTextSize(
spec.fSize);
1239 mp.SetTextAlign(11);
1245 mp.PaintText(
xx,
yy,
"\261");
1273 bs.SetTextColor(
spec.fColor);
1274 bs.SetTextSize(
spec.fSize);
1276 bs.SetTextAlign(11);
1282 bs.PaintText(
xx,
yy,
"\\");
1328 if (
gVirtualX->InheritsFrom(
"TGCocoa")) {
1379 yy[0] =
yy[1] =
y - sub -
fs1.Over();
1406 xx[1] =
x +
fs1.Width()/2;
1407 xx[0] =
xx[1] -
fs1.Width()/3;
1408 xx[2] =
xx[1] +
fs1.Width()/3;
1409 yy[0] =
y - sub -
fs1.Over();
1410 yy[1] =
yy[0] - 2*sub;
1417 midx =
x +
fs1.Width()/2 - 1.5*sub,
1422 midx =
x +
fs1.Width()/2 + 1.5*sub;
1430 xx[0] =
x +
fs1.Width()/2;
xx[1] =
xx[0] + 3*sub;
1431 yy[0] =
y - sub -
fs1.Over();
1432 yy[1] =
yy[0] - 2.5*sub;
1438 xx[0] =
x +
fs1.Width()/2 + sub;
xx[1] =
xx[0] - 2*sub;
1439 yy[0] =
y - sub -
fs1.Over();
1440 yy[1] =
yy[0] - 2*sub;
1446 xx[1] =
x+
fs1.Width()/2;
xx[0] =
xx[1] - 2*sub;
xx[2] =
xx[1] + 2*sub;
1447 yy[1] =
y - sub -
fs1.Over();
1448 yy[0] =
yy[2] =
yy[1] - 2*sub;
1459 if (
gVirtualX->InheritsFrom(
"TGCocoa"))
y2 -= 4.7*sub;
1470 tilde.SetTextAlign(22);
1485 xx[0] =
x + 0.8*
fs1.Width();
1486 yy[0] =
y -
fs1.Over() - sub;
1487 xx[1] =
x + 0.3*
fs1.Width();
1488 yy[1] =
yy[0] +
fs1.Height() + 2*sub;
1562 l8 =
fs1.Height()/8 ;
1569 l8 =
fs1.Height()/8 ;
1600 fError =
"Missing denominator for #frac";
1614 if (
fs1.Width()<
fs2.Width()) {
1633 fError =
"Missing second line for #splitline";
1709 fError =
"Missing color number. Syntax is #color[(Int_t)nb]{ ... }";
1720 fError =
"Invalid color number. Syntax is #color[(Int_t)nb]{ ... }";
1734 fError =
"Missing font number. Syntax is #font[nb]{ ... }";
1745 fError =
"Invalid font number. Syntax is #font[(Int_t)nb]{ ... }";
1759 fError =
"Missing horizontal shift number. Syntax is #kern[dx]{ ... }";
1770 fError =
"Invalid horizontal shift number. Syntax is #kern[(Float_t)dx]{ ... }";
1789 fError =
"Missing vertical shift number. Syntax is #lower[dy]{ ... }";
1800 fError =
"Invalid vertical shift number. Syntax is #lower[(Float_t)dy]{ ... }";
1819 fError =
"Missing scale factor. Syntax is #scale[(Double_t)nb]{ ... }";
1830 fError =
"Invalid scale factor. Syntax is #factor[(Double_t)nb]{ ... }";
1844 Int_t lut[] = {3, 13, 1, 6, 7, 4, 5, 10, 11, 8, 9, 12, 2, 14, 15};
1870 Int_t lut[] = {13, 3, 2, 5, 4, 7, 6, 9, 8, 11, 10, 15, 1, 14, 12};
1898 for (i=0 ; i<
leng ; i++) {
1904 if (
text[i] ==
'@') {
1906 if ( *(
p+1) ==
'{' || *(
p+1) ==
'}' || *(
p+1) ==
'[' || *(
p+1) ==
']') {
2183 t.
ReplaceAll(
"#splitline",
"\\genfrac{}{}{0pt}{}");
2210 if (!
gPad)
return 0;
2212 if(
newText.Length() == 0)
return 0;
2213 newText.ReplaceAll(
"#hbox",
"#mbox");
2217 std::cout<<
"\n*ERROR<TLatex>: "<<
fError<<std::endl;
2218 std::cout<<
"==> "<<
text1<<std::endl;
2267 x =
gPad->XtoAbsPixel(
x);
2268 y =
gPad->YtoAbsPixel(
y);
2287 std::cout<<
"*ERROR<TLatex>: "<<
fError<<std::endl;
2288 std::cout<<
"==> "<<
text<<std::endl;
2294 case 0:
y -=
fs.Under() ;
break;
2296 case 2:
y +=
fs.Height()*0.5-
fs.Under();
y++;
break;
2297 case 3:
y +=
fs.Over() ;
break;
2300 case 2:
x -=
fs.Width()/2 ;
break;
2301 case 3:
x -=
fs.Width() ;
break;
2326 const Char_t *
kWord1[] = {
"{}^{",
"{}_{",
"^{",
"_{",
"#scale{",
"#color{",
"#font{",
"#sqrt{",
"#[]{",
"#{}{",
"#||{",
2327 "#bar{",
"#vec{",
"#dot{",
"#hat{",
"#ddot{",
"#acute{",
"#grave{",
"#check{",
"#tilde{",
"#slash{",
"#bf{",
"#it{",
"#mbox{",
2328 "\\scale{",
"\\color{",
"\\font{",
"\\sqrt{",
"\\[]{",
"\\{}{",
"\\||{",
"#(){",
"\\(){",
2329 "\\bar{",
"\\vec{",
"\\dot{",
"\\hat{",
"\\ddot{",
"\\acute{",
"\\grave{",
"\\check{",
"\\bf{",
"\\it{",
"\\mbox{"};
2330 const Char_t *
kWord2[] = {
"#scale[",
"#color[",
"#font[",
"#sqrt[",
"#kern[",
"#lower[",
"\\scale[",
"\\color[",
"\\font[",
"\\sqrt[",
"\\kern[",
"\\lower["};
2331 const Char_t *
kWord3[] = {
"#frac{",
"\\frac{",
"#splitline{",
"\\splitline{"};
2332 const Char_t *
kLeft1[] = {
"#left[",
"\\left[",
"#left{",
"\\left{",
"#left|",
"\\left|",
"#left(",
"\\left("};
2333 const Char_t *
kLeft2[] = {
"#[]{",
"#[]{",
"#{}{",
"#{}{",
"#||{",
"#||{",
"#(){",
"#(){"};
2334 const Char_t *kRight[] = {
"#right]",
"\\right]",
"#right}",
"\\right}",
"#right|",
"\\right|",
"#right)",
"\\right)"};
2335 const Int_t lkWord1[] = {4,4,2,2,7,7,6,6,4,4,4,5,5,5,5,6,7,7,7,7,7,4,4,6,7,7,6,6,4,4,4,4,4,5,5,5,5,6,7,7,7,4,4,6};
2336 const Int_t lkWord2[] = {7,7,6,6,6,7,7,7,6,6,6,7} ;
2347 Char_t buf[11] ;
for (i=0;i<11;i++) buf[i]=0;
2365 for (k = 0 ; k <
nLeft1 ; k++) {
2388 fError =
"Operators \"#left\" and \"#right\" don't match !" ;
2392 for (k = 0 ; k <
nLeft1 ; k++) {
2395 for (k = 0 ; k <
nRight ; k++) {
2461 else if (
text[i] ==
']' ) {
2462 text.Insert(i,
"@") ;
2466 else if (
text[i] ==
'[' ) {
2467 text.Insert(i,
"@") ;
2471 else if (
text[i] ==
'{' ) {
2472 text.Insert(i,
"@") ;
2476 else if (
text[i] ==
'}' ) {
2481 text.Insert(i,
"@") ;
2493 fError =
"Invalid number of \"]{\"" ;
2497 fError =
"Error in syntax of \"#frac\"" ;
2501 fError =
"Missing \"{\"" ;
2505 fError =
"Missing \"}\"" ;
2509 fError =
"Missing \"[\"" ;
2513 fError =
"Missing \"]\"" ;
2558 if (!
gPad)
return 0.;
2573 if (!
gPad)
return 0.;
2575 if(
newText.Length() == 0)
return 0;
2578 if (
newText.Contains(
"\\") ) {
2580 return tm.GetXsize();
2585 std::cout<<
"\n*ERROR<TLatex>: "<<
fError<<std::endl;
2586 std::cout<<
"==> "<<
GetTitle()<<std::endl;
2596 return std::abs(
gPad->AbsPixeltoX(
Int_t(
fs.Width())) -
gPad->AbsPixeltoX(0));
2606 if(
newText.Length() == 0)
return;
2609 if (
newText.Contains(
"\\") ) {
2611 tm.GetBoundingBox(
w,
h);
2617 std::cout<<
"\n*ERROR<TLatex>: "<<
fError<<std::endl;
2618 std::cout<<
"==> "<<
GetTitle()<<std::endl;
2638 for (
Int_t i=1; i<4; i++) {
2661 if (!
gPad)
return 0.;
2663 if(
newText.Length() == 0)
return 0;
2666 if (
newText.Contains(
"\\") ) {
2668 return tm.GetYsize();
2673 std::cout<<
"\n*ERROR<TLatex>: "<<
fError<<std::endl;
2674 std::cout<<
"==> "<<
GetTitle()<<std::endl;
2684 return std::abs(
gPad->AbsPixeltoY(
Int_t(
fs.Height())) -
gPad->AbsPixeltoY(0));
2693 Error(
"Readfs",
"No data in fTabSize stack");
2716 out,
Class(),
"tex",
2723 out <<
" tex->SetNDC();\n";
size_t size(const MatrixT &matrix)
retrieve the size of a square matrix
int Int_t
Signed integer 4 bytes (int)
char Char_t
Character 1 byte (char)
unsigned int UInt_t
Unsigned integer 4 bytes (unsigned int)
float Float_t
Float 4 bytes (float)
short Short_t
Signed Short integer 2 bytes (short)
double Double_t
Double 8 bytes.
const char Option_t
Option string (const char)
ROOT::Detail::TRangeCast< T, true > TRangeDynCast
TRangeDynCast is an adapter class that allows the typed iteration through a TCollection.
winID h TVirtualViewer3D TVirtualGLPainter p
Option_t Option_t SetLineWidth
Option_t Option_t SetTextSize
Option_t Option_t TPoint TPoint const char GetTextMagnitude GetFillStyle GetLineColor GetLineWidth GetMarkerStyle GetTextAlign GetTextColor GetTextSize void char Point_t Rectangle_t WindowAttributes_t Float_t Float_t Float_t Int_t Int_t UInt_t UInt_t Rectangle_t Int_t Int_t Window_t TString Int_t GCValues_t GetPrimarySelectionOwner GetDisplay GetScreen GetColormap GetNativeEvent const char const char dpyName wid window const char font_name cursor keysym reg const char only_if_exist regb h Point_t np
Option_t Option_t TPoint TPoint const char GetTextMagnitude GetFillStyle GetLineColor GetLineWidth GetMarkerStyle GetTextAlign GetTextColor GetTextSize void char Point_t Rectangle_t WindowAttributes_t Float_t r
Option_t Option_t TPoint TPoint const char GetTextMagnitude GetFillStyle GetLineColor GetLineWidth GetMarkerStyle GetTextAlign GetTextColor GetTextSize void char Point_t Rectangle_t WindowAttributes_t Float_t Float_t Float_t Int_t Int_t UInt_t UInt_t Rectangle_t Int_t Int_t Window_t TString Int_t GCValues_t GetPrimarySelectionOwner GetDisplay GetScreen GetColormap GetNativeEvent const char const char dpyName wid window const char font_name cursor keysym reg const char only_if_exist regb h Point_t winding char text const char depth char const char Int_t count const char ColorStruct_t color const char Pixmap_t Pixmap_t PictureAttributes_t attr const char char ret_data h unsigned char height h prop
Option_t Option_t TPoint TPoint const char GetTextMagnitude GetFillStyle GetLineColor GetLineWidth GetMarkerStyle GetTextAlign GetTextColor GetTextSize void char Point_t Rectangle_t WindowAttributes_t Float_t Float_t Float_t Int_t Int_t UInt_t UInt_t Rectangle_t result
Option_t Option_t TPoint TPoint const char GetTextMagnitude GetFillStyle GetLineColor GetLineWidth GetMarkerStyle GetTextAlign GetTextColor GetTextSize void char Point_t Rectangle_t WindowAttributes_t Float_t Float_t Float_t Int_t Int_t UInt_t UInt_t Rectangle_t Int_t Int_t Window_t TString Int_t GCValues_t GetPrimarySelectionOwner GetDisplay GetScreen GetColormap GetNativeEvent const char const char dpyName wid window const char font_name cursor keysym reg const char only_if_exist regb h Point_t winding char text const char depth char const char Int_t count const char ColorStruct_t color const char Pixmap_t Pixmap_t PictureAttributes_t attr const char char ret_data h unsigned char height h length
Option_t Option_t SetLineColor
Option_t Option_t TPoint TPoint const char x2
Option_t Option_t TPoint TPoint const char x1
Option_t Option_t SetTextFont
Option_t Option_t TPoint TPoint angle
Option_t Option_t TPoint TPoint const char y2
Option_t Option_t TPoint TPoint const char DrawLine
Option_t Option_t TPoint TPoint const char GetTextMagnitude GetFillStyle GetLineColor GetLineWidth GetMarkerStyle GetTextAlign GetTextColor GetTextSize fs
Option_t Option_t TPoint TPoint const char GetTextMagnitude GetFillStyle GetLineColor GetLineWidth GetMarkerStyle GetTextAlign GetTextColor GetTextSize void char Point_t Rectangle_t height
Option_t Option_t TPoint TPoint const char text
Option_t Option_t TPoint TPoint const char GetTextMagnitude GetFillStyle GetLineColor GetLineWidth GetMarkerStyle GetTextAlign GetTextColor GetTextSize void char Point_t Rectangle_t WindowAttributes_t Float_t Float_t Float_t Int_t Int_t UInt_t UInt_t Rectangle_t Int_t Int_t Window_t TString Int_t GCValues_t GetPrimarySelectionOwner GetDisplay GetScreen GetColormap GetNativeEvent const char const char dpyName wid window const char font_name cursor keysym reg const char only_if_exist regb h Point_t winding char text const char depth char const char mx
Option_t Option_t TPoint TPoint const char y1
R__EXTERN TVirtualPS * gVirtualPS
Fill Area Attributes class.
virtual Color_t GetLineColor() const
Return the line color.
virtual Width_t GetLineWidth() const
Return the line width.
virtual void Modify()
Change current line attributes if necessary.
void Copy(TAttLine &attline) const
Copy this line attributes to a new TAttLine.
virtual void SaveLineAttributes(std::ostream &out, const char *name, Int_t coldef=1, Int_t stydef=1, Int_t widdef=1)
Save line attributes as C++ statement(s) on output stream out.
virtual Float_t GetTextSize() const
Return the text size.
virtual void Modify()
Change current text attributes if necessary.
virtual void SetTextAlign(Short_t align=11)
Set the text alignment.
virtual Short_t GetTextAlign() const
Return the text alignment.
virtual Font_t GetTextFont() const
Return the text font.
Float_t fTextAngle
Text angle.
virtual Color_t GetTextColor() const
Return the text color.
virtual void SetTextAngle(Float_t tangle=0)
Set the text angle.
virtual Float_t GetTextAngle() const
Return the text angle.
virtual void SetTextColor(Color_t tcolor=1)
Set the text color.
Font_t fTextFont
Text font.
virtual void SaveTextAttributes(std::ostream &out, const char *name, Int_t alidef=12, Float_t angdef=0, Int_t coldef=1, Int_t fondef=61, Float_t sizdef=1)
Save text attributes as C++ statement(s) on output stream out.
virtual Float_t GetTextSizePercent(Float_t size)
Return the text in percent of the pad size.
Short_t fTextAlign
Text alignment.
void Copy(TAttText &atttext) const
Copy this text attributes to a new TAttText.
To draw Mathematical Formula.
virtual void SetLimitIndiceSize(Int_t limitFactorSize)
Set limit for text resizing of subscripts and superscripts.
Double_t GetXsize()
Return size of the formula along X in pad coordinates when the text precision is smaller than 3.
Double_t GetHeight() const
Return height of current pad in pixels.
void Copy(TObject &text) const override
Copy this TLatex object to another TLatex.
Double_t fFactorPos
! Relative position of subscripts and superscripts
Int_t fLimitFactorSize
lower bound for subscripts/superscripts size
void DrawLine(Double_t x1, Double_t y1, Double_t x2, Double_t y2, const TextSpec_t &spec)
Draw a line in a Latex formula.
TLatexFormSize Anal1(const TextSpec_t &spec, const Char_t *t, Int_t length)
Analyse function.
void DrawParenthesis(Double_t x1, Double_t y1, Double_t r1, Double_t r2, Double_t phimin, Double_t phimax, const TextSpec_t &spec)
Draw an arc of ellipse in a Latex formula (right or left parenthesis)
virtual void SetIndiceSize(Double_t factorSize)
Set relative size of subscripts and superscripts.
std::vector< TLatexFormSize > fTabSize
! array of values for the different zones
Int_t PaintLatex1(Double_t x, Double_t y, Double_t angle, Double_t size, const char *text)
Drawing function.
Double_t fOriginSize
Font size of the starting font.
Double_t GetYsize()
Return size of the formula along Y in pad coordinates when the text precision is smaller than 3.
TLatexFormSize FirstParse(Double_t angle, Double_t size, const Char_t *text)
First parsing of the analyse sequence.
TLatexFormSize Readfs()
Read fs in fTabSize.
void GetBoundingBox(UInt_t &w, UInt_t &h, Bool_t angle=kFALSE) override
Return text size in pixels.
@ kTextNDC
The text position is in NDC coordinates.
TLatex * DrawLatexNDC(Double_t x, Double_t y, const char *text)
Draw this TLatex with new coordinates in NDC.
void DrawCircle(Double_t x1, Double_t y1, Double_t r, const TextSpec_t &spec)
Draw an arc of ellipse in a Latex formula (right or left parenthesis)
virtual void PaintLatex(Double_t x, Double_t y, Double_t angle, Double_t size, const char *text)
Main drawing function.
TLatex()
Default constructor.
Bool_t fShow
! is true during the second pass (Painting)
~TLatex() override
Destructor.
void SavePrimitive(std::ostream &out, Option_t *option="") override
Save primitive as a C++ statement(s) on output stream out.
TLatex & operator=(const TLatex &)
assignment operator
void DrawPolyLine(Int_t npoints, Double_t *xx, Double_t *yy, const TextSpec_t &spec, Double_t scale_width=0.)
Draw a poly line in a Latex formula Is scale_width parameter >=1, fill area will be drawn Otherwise l...
TLatex * DrawLatex(Double_t x, Double_t y, const char *text)
Make a copy of this object with the new parameters And copy object attributes.
Double_t fFactorSize
! Relative size of subscripts and superscripts
const Char_t * fError
! error code
Bool_t fItalic
! Currently inside italic operator
void Paint(Option_t *option="") override
Paint.
TLatexFormSize Analyse(Double_t x, Double_t y, const TextSpec_t &spec, const Char_t *t, Int_t length)
Analyse and paint the TLatex formula.
Int_t CheckLatexSyntax(TString &text)
Check if the Latex syntax is correct.
void Savefs(TLatexFormSize *fs)
Save fs values in array fTabSize.
To draw TeX Mathematical Formula.
const char * GetTitle() const override
Returns title of object.
Mother of all ROOT objects.
R__ALWAYS_INLINE Bool_t TestBit(UInt_t f) const
virtual Bool_t InheritsFrom(const char *classname) const
Returns kTRUE if object inherits from class "classname".
virtual void Error(const char *method, const char *msgfmt,...) const
Issue error message.
static void SavePrimitiveDraw(std::ostream &out, const char *variable_name, Option_t *option=nullptr)
Save invocation of primitive Draw() method Skipped if option contains "nodraw" string.
static void SavePrimitiveConstructor(std::ostream &out, TClass *cl, const char *variable_name, const char *constructor_agrs="", Bool_t empty_line=kTRUE)
Save object constructor in the output stream "out".
@ kCanDelete
if object in a list can be deleted
const char * Data() const
TString & ReplaceAll(const TString &s1, const TString &s2)
static TString Format(const char *fmt,...)
Static method which formats a string using a printf style format descriptor and return a TString.
Ssiz_t Index(const char *pat, Ssiz_t i=0, ECaseCompare cmp=kExact) const
Base class for several text objects.
Double_t fY
Y position of text (left,center,etc..)
void Copy(TObject &text) const override
Copy this text to text.
TText & operator=(const TText &src)
Assignment operator.
Double_t fX
X position of text (left,center,etc..)
virtual void GetTextExtent(UInt_t &w, UInt_t &h, const char *text) const
Return text extent for string text.
virtual void GetTextAscentDescent(UInt_t &a, UInt_t &d, const char *text) const
Return text ascent and descent for string text.
virtual void GetControlBox(Int_t x, Int_t y, Double_t theta, Int_t cBoxX[4], Int_t cBoxY[4])
Return the text control box.
TVirtualPS is an abstract interface to Postscript, PDF, SVG.
virtual void Text(Double_t x, Double_t y, const char *string)=0
Int_t Nint(T x)
Round to nearest integer. Rounds half integers to the nearest even integer.
Double_t Exp(Double_t x)
Returns the base-e exponential function of x, which is e raised to the power x.
Double_t Log(Double_t x)
Returns the natural logarithm of x.
Short_t Min(Short_t a, Short_t b)
Returns the smallest of a and b.
Double_t Cos(Double_t)
Returns the cosine of an angle of x radians.
Double_t Sin(Double_t)
Returns the sine of an angle of x radians.
TLatex helper struct holding the attributes of a piece of text.