ROOT » GRAF2D » POSTSCRIPT » TTeXDump

class TTeXDump: public TVirtualPS


TTeXDump: Graphics interface to TeX

This class allow to generate PGF/TikZ vector graphics output which can be included in TeX and LaTeX documents.

PGF is a TeX macro package for generating graphics. It is platform and format-independent and works together with the most important TeX backend drivers, including pdftex and dvips. It comes with a user-friendly syntax layer called TikZ.

To generate a such file it is enough to do:

   gStyle->SetPaperSize(10.,10.);
   hpx->Draw();
   gPad->Print("hpx.tex");

Then, the generated file (hpx.tex) can be included in a LaTeX document (simple.tex) in the following way:

\documentclass{article}
\usepackage{tikz}
\usetikzlibrary{patterns}
\usetikzlibrary{plotmarks}
\title{A simple LaTeX example}
\date{July 2013}
\begin{document}
\maketitle
The following image as been generated using the TTeXDump class:
\par
\input{hpx.tex}
\end{document}
Note the three directives needed at the top of the LaTeX file:
\usepackage{tikz}
\usetikzlibrary{patterns}
\usetikzlibrary{plotmarks}
Then including the picture in the document is done with the \input<\tt> directive.

The command pdflatex simple.tex will generate the corresponding pdf file simple.pdf.

 

Function Members (Methods)

public:
virtual~TTeXDump()
voidTObject::AbstractMethod(const char* method) const
virtual voidTObject::AppendPad(Option_t* option = "")
virtual voidTObject::Browse(TBrowser* b)
virtual voidCellArrayBegin(Int_t W, Int_t H, Double_t x1, Double_t x2, Double_t y1, Double_t y2)
virtual voidCellArrayEnd()
virtual voidCellArrayFill(Int_t r, Int_t g, Int_t b)
static TClass*Class()
virtual const char*TObject::ClassName() const
virtual voidTNamed::Clear(Option_t* option = "")
virtual TObject*TNamed::Clone(const char* newname = "") const
virtual voidClose(Option_t* opt = "")
Int_tCMtoTeX(Double_t u)
virtual Int_tTNamed::Compare(const TObject* obj) const
virtual voidTNamed::Copy(TObject& named) const
voidDefineMarkers()
virtual voidTObject::Delete(Option_t* option = "")MENU
Int_tTAttLine::DistancetoLine(Int_t px, Int_t py, Double_t xp1, Double_t yp1, Double_t xp2, Double_t yp2)
virtual Int_tTObject::DistancetoPrimitive(Int_t px, Int_t py)
virtual voidTObject::Draw(Option_t* option = "")
virtual voidDrawBox(Double_t x1, Double_t y1, Double_t x2, Double_t y2)
virtual voidTObject::DrawClass() constMENU
virtual TObject*TObject::DrawClone(Option_t* option = "") constMENU
virtual voidDrawFrame(Double_t xl, Double_t yl, Double_t xt, Double_t yt, Int_t mode, Int_t border, Int_t dark, Int_t light)
voidDrawPolyLine(Int_t n, TPoints* xy)
voidDrawPolyLineNDC(Int_t n, TPoints* uv)
virtual voidDrawPolyMarker(Int_t n, Float_t* x, Float_t* y)
virtual voidDrawPolyMarker(Int_t n, Double_t* x, Double_t* y)
virtual voidDrawPS(Int_t n, Float_t* xw, Float_t* yw)
virtual voidDrawPS(Int_t n, Double_t* xw, Double_t* yw)
virtual voidTObject::Dump() constMENU
virtual voidTObject::Error(const char* method, const char* msgfmt) const
virtual voidTObject::Execute(const char* method, const char* params, Int_t* error = 0)
virtual voidTObject::Execute(TMethod* method, TObjArray* params, Int_t* error = 0)
virtual voidTObject::ExecuteEvent(Int_t event, Int_t px, Int_t py)
virtual voidTObject::Fatal(const char* method, const char* msgfmt) const
virtual voidTNamed::FillBuffer(char*& buffer)
virtual TObject*TObject::FindObject(const char* name) const
virtual TObject*TObject::FindObject(const TObject* obj) const
virtual Option_t*TObject::GetDrawOption() const
static Long_tTObject::GetDtorOnly()
virtual Color_tTAttFill::GetFillColor() const
virtual Style_tTAttFill::GetFillStyle() const
virtual const char*TObject::GetIconName() const
virtual Color_tTAttLine::GetLineColor() const
virtual Style_tTAttLine::GetLineStyle() const
virtual Width_tTAttLine::GetLineWidth() const
virtual Color_tTAttMarker::GetMarkerColor() const
virtual Size_tTAttMarker::GetMarkerSize() const
virtual Style_tTAttMarker::GetMarkerStyle() const
virtual const char*TNamed::GetName() const
virtual char*TObject::GetObjectInfo(Int_t px, Int_t py) const
static Bool_tTObject::GetObjectStat()
virtual Option_t*TObject::GetOption() const
virtual void*TVirtualPS::GetStream() const
virtual Short_tTAttText::GetTextAlign() const
virtual Float_tTAttText::GetTextAngle() const
virtual Color_tTAttText::GetTextColor() const
virtual Font_tTAttText::GetTextFont() const
virtual Float_tTAttText::GetTextSize() const
virtual const char*TNamed::GetTitle() const
virtual Int_tTVirtualPS::GetType() const
virtual UInt_tTObject::GetUniqueID() const
virtual Bool_tTObject::HandleTimer(TTimer* timer)
virtual ULong_tTNamed::Hash() const
virtual voidTObject::Info(const char* method, const char* msgfmt) const
virtual Bool_tTObject::InheritsFrom(const char* classname) const
virtual Bool_tTObject::InheritsFrom(const TClass* cl) const
virtual voidTObject::Inspect() constMENU
voidTObject::InvertBit(UInt_t f)
virtual TClass*IsA() const
virtual Bool_tTObject::IsEqual(const TObject* obj) const
virtual Bool_tTObject::IsFolder() const
Bool_tTObject::IsOnHeap() const
virtual Bool_tTNamed::IsSortable() const
virtual Bool_tTAttFill::IsTransparent() const
Bool_tTObject::IsZombie() const
virtual voidTNamed::ls(Option_t* option = "") const
voidTObject::MayNotUse(const char* method) const
virtual voidTAttLine::Modify()
virtual voidNewPage()
virtual Bool_tTObject::Notify()
voidTObject::Obsolete(const char* method, const char* asOfVers, const char* removedFromVers) const
voidOff()
voidOn()
virtual voidOpen(const char* filename, Int_t type = -111)
voidTObject::operator delete(void* ptr)
voidTObject::operator delete(void* ptr, void* vp)
voidTObject::operator delete[](void* ptr)
voidTObject::operator delete[](void* ptr, void* vp)
void*TObject::operator new(size_t sz)
void*TObject::operator new(size_t sz, void* vp)
void*TObject::operator new[](size_t sz)
void*TObject::operator new[](size_t sz, void* vp)
TTeXDump&operator=(const TTeXDump&)
virtual voidTObject::Paint(Option_t* option = "")
virtual voidTObject::Pop()
virtual voidTNamed::Print(Option_t* option = "") const
virtual voidTVirtualPS::PrintFast(Int_t nch, const char* string = "")
virtual voidTVirtualPS::PrintRaw(Int_t len, const char* str)
virtual voidTVirtualPS::PrintStr(const char* string = "")
voidRange(Float_t xrange, Float_t yrange)
virtual Int_tTObject::Read(const char* name)
virtual voidTObject::RecursiveRemove(TObject* obj)
virtual voidTAttFill::ResetAttFill(Option_t* option = "")
virtual voidTAttLine::ResetAttLine(Option_t* option = "")
virtual voidTAttMarker::ResetAttMarker(Option_t* toption = "")
virtual voidTAttText::ResetAttText(Option_t* toption = "")
voidTObject::ResetBit(UInt_t f)
virtual voidTObject::SaveAs(const char* filename = "", Option_t* option = "") constMENU
virtual voidTAttFill::SaveFillAttributes(ostream& out, const char* name, Int_t coldef = 1, Int_t stydef = 1001)
virtual voidTAttLine::SaveLineAttributes(ostream& out, const char* name, Int_t coldef = 1, Int_t stydef = 1, Int_t widdef = 1)
virtual voidTAttMarker::SaveMarkerAttributes(ostream& out, const char* name, Int_t coldef = 1, Int_t stydef = 1, Int_t sizdef = 1)
virtual voidTObject::SavePrimitive(ostream& out, Option_t* option = "")
virtual voidTAttText::SaveTextAttributes(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)
voidTObject::SetBit(UInt_t f)
voidTObject::SetBit(UInt_t f, Bool_t set)
voidSetColor(Int_t color = 1)
virtual voidSetColor(Float_t r, Float_t g, Float_t b)
virtual voidTObject::SetDrawOption(Option_t* option = "")MENU
static voidTObject::SetDtorOnly(void* obj)
virtual voidTAttFill::SetFillAttributes()MENU
virtual voidSetFillColor(Color_t cindex = 1)
virtual voidTAttFill::SetFillColorAlpha(Color_t fcolor, Float_t falpha)
virtual voidTAttFill::SetFillStyle(Style_t fstyle)
virtual voidTAttLine::SetLineAttributes()MENU
virtual voidSetLineColor(Color_t cindex = 1)
virtual voidTAttLine::SetLineColorAlpha(Color_t lcolor, Float_t lalpha)
voidSetLineScale(Float_t scale = 1)
virtual voidSetLineStyle(Style_t linestyle = 1)
virtual voidSetLineWidth(Width_t linewidth = 1)
virtual voidTAttMarker::SetMarkerAttributes()MENU
virtual voidSetMarkerColor(Color_t cindex = 1)
virtual voidTAttMarker::SetMarkerColorAlpha(Color_t mcolor, Float_t malpha)
virtual voidSetMarkerSize(Size_t msize = 1)
virtual voidTAttMarker::SetMarkerStyle(Style_t mstyle = 1)
virtual voidTNamed::SetName(const char* name)MENU
virtual voidTNamed::SetNameTitle(const char* name, const char* title)
static voidTObject::SetObjectStat(Bool_t stat)
virtual voidTVirtualPS::SetStream(ofstream* os)
virtual voidTAttText::SetTextAlign(Short_t align = 11)
virtual voidTAttText::SetTextAngle(Float_t tangle = 0)MENU
virtual voidTAttText::SetTextAttributes()MENU
virtual voidSetTextColor(Color_t cindex = 1)
virtual voidTAttText::SetTextColorAlpha(Color_t tcolor, Float_t talpha)
virtual voidTAttText::SetTextFont(Font_t tfont = 62)
virtual voidTAttText::SetTextSize(Float_t tsize = 1)
virtual voidTAttText::SetTextSizePixels(Int_t npixels)
virtual voidTNamed::SetTitle(const char* title = "")MENU
virtual voidTVirtualPS::SetType(Int_t = -111)
virtual voidTObject::SetUniqueID(UInt_t uid)
virtual voidShowMembers(TMemberInspector& insp) const
virtual Int_tTNamed::Sizeof() const
virtual voidStreamer(TBuffer&)
voidStreamerNVirtual(TBuffer& ClassDef_StreamerNVirtual_b)
virtual voidTObject::SysError(const char* method, const char* msgfmt) const
Bool_tTObject::TestBit(UInt_t f) const
Int_tTObject::TestBits(UInt_t f) const
virtual voidText(Double_t x, Double_t y, const char* string)
virtual voidText(Double_t, Double_t, const wchar_t*)
voidTextNDC(Double_t u, Double_t v, const char* string)
voidTextNDC(Double_t, Double_t, const wchar_t*)
TTeXDump()
TTeXDump(const TTeXDump&)
TTeXDump(const char* filename, Int_t type = -113)
virtual voidTObject::UseCurrentStyle()
Float_tUtoTeX(Double_t u)
Float_tVtoTeX(Double_t v)
virtual voidTObject::Warning(const char* method, const char* msgfmt) const
virtual Int_tTObject::Write(const char* name = 0, Int_t option = 0, Int_t bufsize = 0)
virtual Int_tTObject::Write(const char* name = 0, Int_t option = 0, Int_t bufsize = 0) const
virtual voidTVirtualPS::WriteInteger(Int_t i, Bool_t space = kTRUE)
virtual voidTVirtualPS::WriteReal(Float_t r, Bool_t space = kTRUE)
Float_tXtoTeX(Double_t x)
Float_tYtoTeX(Double_t y)
protected:
virtual voidTObject::DoError(int level, const char* location, const char* fmt, va_list va) const
voidTObject::MakeZombie()

Data Members

public:
static TObject::(anonymous)TObject::kBitMask
static TObject::EStatusBitsTObject::kCanDelete
static TObject::EStatusBitsTObject::kCannotPick
static TObject::EStatusBitsTObject::kHasUUID
static TObject::EStatusBitsTObject::kInvalidObject
static TObject::(anonymous)TObject::kIsOnHeap
static TObject::EStatusBitsTObject::kIsReferenced
static TObject::EStatusBitsTObject::kMustCleanup
static TObject::EStatusBitsTObject::kNoContextMenu
static TObject::(anonymous)TObject::kNotDeleted
static TObject::EStatusBitsTObject::kObjInCanvas
static TObject::(anonymous)TObject::kOverwrite
static TObject::(anonymous)TObject::kSingleKey
static TObject::(anonymous)TObject::kWriteDelete
static TObject::(anonymous)TObject::kZombie
protected:
Bool_tfBoundingBoxTrue when the Tex header is printed
char*TVirtualPS::fBufferFile buffer
Float_tfCurrentAlphaCurrent Alpha value
Float_tfCurrentBlueCurrent Blue component
Float_tfCurrentGreenCurrent Green component
Float_tfCurrentRedCurrent Red component
Color_tTAttFill::fFillColorfill area color
Style_tTAttFill::fFillStylefill area style
const char*TVirtualPS::fImplicitCREscEscape symbol before enforced new line
Int_tTVirtualPS::fLenBufferBuffer length
Color_tTAttLine::fLineColorline color
Float_tfLineScaleLine width scale factor
Style_tTAttLine::fLineStyleline style
Width_tTAttLine::fLineWidthline width
Color_tTAttMarker::fMarkerColorMarker color index
Size_tTAttMarker::fMarkerSizeMarker size
Style_tTAttMarker::fMarkerStyleMarker style
Int_tTVirtualPS::fNByteNumber of bytes written in the file (PDF)
TStringTNamed::fNameobject identifier
Bool_tTVirtualPS::fPrintedTrue when a page must be printed
Bool_tfRangeTrue when a range has been defined
Int_tTVirtualPS::fSizBufferBuffer size
ofstream*TVirtualPS::fStreamFile stream identifier
Short_tTAttText::fTextAlignText alignment
Float_tTAttText::fTextAngleText angle
Color_tTAttText::fTextColorText color index
Font_tTAttText::fTextFontText font number
Float_tTAttText::fTextSizeText size
TStringTNamed::fTitleobject title
Int_tfTypeWorkstation type used to know if the Tex is open
Float_tfXsizePage size along X
Float_tfYsizePage size along Y

Class Charts

Inheritance Chart:
TObject
TNamed
TAttLine
TAttFill
TAttMarker
TAttText
TVirtualPS
TTeXDump

Function documentation

TTeXDump()
 Default TeX constructor
TTeXDump(const char* filename, Int_t type = -113)
 Initialize the TeX interface

  fname : TeX file name
  wtype : TeX workstation type. Not used in the TeX driver. But as TTeXDump
          inherits from TVirtualPS it should be kept. Anyway it is not
          necessary to specify this parameter at creation time because it
          has a default value (which is ignore in the TeX case).
void Open(const char* filename, Int_t type = -111)
 Open a TeX file
~TTeXDump()
 Default TeX destructor
void Close(Option_t* opt = "")
 Close a TeX file
void On()
 Activate an already open TeX file
void Off()
 Deactivate an already open TeX file
void DrawBox(Double_t x1, Double_t y1, Double_t x2, Double_t y2)
 Draw a Box
void DrawFrame(Double_t xl, Double_t yl, Double_t xt, Double_t yt, Int_t mode, Int_t border, Int_t dark, Int_t light)
 Draw a Frame around a box

 mode = -1  the box looks as it is behind the screen
 mode =  1  the box looks as it is in front of the screen
 border is the border size in already pre-computed TeX units dark is the
 color for the dark part of the frame light is the color for the light
 part of the frame
void DrawPolyLine(Int_t n, TPoints* xy)
 Draw a PolyLine

  Draw a polyline through  the points  xy.
  If NN=1 moves only to point x,y.
  If NN=0 the x,y are  written in the TeX file
     according to the current transformation.
  If NN>0 the line is clipped as a line.
  If NN<0 the line is clipped as a fill area.
void DrawPolyLineNDC(Int_t n, TPoints* uv)
 Draw a PolyLine in NDC space

  Draw a polyline through  the points  xy.
  If NN=1 moves only to point x,y.
  If NN=0 the x,y are  written in the TeX file
     according to the current transformation.
  If NN>0 the line is clipped as a line.
  If NN<0 the line is clipped as a fill area.
void DrawPolyMarker(Int_t n, Float_t* x, Float_t* y)
 Paint PolyMarker
void DrawPolyMarker(Int_t n, Double_t* x, Double_t* y)
 Paint PolyMarker
void DrawPS(Int_t n, Double_t* xw, Double_t* yw)
 This function defines a path with xw and yw and draw it according the
 value of nn:

  If nn>0 a line is drawn.
  If nn<0 a closed polygon is drawn.
void NewPage()
 Start the TeX page. This function starts the tikzpicture environment
void Range(Float_t xrange, Float_t yrange)
 Set the range for the paper in centimetres
void SetFillColor(Color_t cindex = 1)
 Set color index for fill areas
void SetLineColor(Color_t cindex = 1)
 Set color index for lines
void SetLineStyle(Style_t linestyle = 1)
 Change the line style

 linestyle = 2 dashed
           = 3 dotted
           = 4 dash-dotted
           = else solid (1 in is used most of the time)
void SetLineWidth(Width_t linewidth = 1)
 Set the lines width.
void SetMarkerSize(Size_t msize = 1)
 Set size for markers.
void SetMarkerColor(Color_t cindex = 1)
 Set color index for markers.
void SetColor(Int_t color = 1)
 Set color with its color index
void SetColor(Float_t r, Float_t g, Float_t b)
 Set color with its R G B components

  r: % of red in [0,1]
  g: % of green in [0,1]
  b: % of blue in [0,1]
void SetTextColor(Color_t cindex = 1)
 Set color index for text
void Text(Double_t x, Double_t y, const char* string)
 Draw text

 xx: x position of the text
 yy: y position of the text
 chars: text to be drawn
void TextNDC(Double_t u, Double_t v, const char* string)
 Write a string of characters in NDC
Float_t UtoTeX(Double_t u)
 Convert U from NDC coordinate to TeX
Float_t VtoTeX(Double_t v)
 Convert V from NDC coordinate to TeX
Float_t XtoTeX(Double_t x)
 Convert X from world coordinate to TeX
Float_t YtoTeX(Double_t y)
 Convert Y from world coordinate to TeX
void CellArrayBegin(Int_t W, Int_t H, Double_t x1, Double_t x2, Double_t y1, Double_t y2)
 Begin the Cell Array painting
void CellArrayFill(Int_t r, Int_t g, Int_t b)
 Paint the Cell Array
void CellArrayEnd()
 End the Cell Array painting
void DrawPS(Int_t n, Float_t* xw, Float_t* yw)
 Not needed in TeX case
void DefineMarkers()
 add additional pgfplotmarks
Int_t CMtoTeX(Double_t u)
{return Int_t(0.5 + 72*u/2.54);}
void SetLineScale(Float_t scale = 1)
{fLineScale = scale;}
void Text(Double_t x, Double_t y, const char* string)
void TextNDC(Double_t u, Double_t v, const char* string)