Belle II Software development
LatexObject Class Reference
Inheritance diagram for LatexObject:
DefineColourList Graphics Itemize LatexFile Listing LongTable Section String SubSection SubSubSection TitlePage

Public Member Functions

def __init__ (self)
 
def __str__ (self)
 
def add (self)
 
def finish (self)
 
def save (self, filename, compile=False)
 

Public Attributes

 output
 Stores the outputted latex-code.
 

Detailed Description

Common base class of all Latex Wrapper objects

Definition at line 14 of file b2latex.py.

Constructor & Destructor Documentation

◆ __init__()

def __init__ (   self)
Constructor, initialize output with empty string

Reimplemented in DefineColourList, Graphics, Itemize, LongTable, Listing, Section, SubSection, SubSubSection, String, and TitlePage.

Definition at line 19 of file b2latex.py.

19 def __init__(self):
20 """
21 Constructor, initialize output with empty string
22 """
23
24 self.output = ''
25

Member Function Documentation

◆ __str__()

def __str__ (   self)
Transform object to string, in this case, just returns .the generated latex-code

Definition at line 26 of file b2latex.py.

26 def __str__(self):
27 """
28 Transform object to string, in this case, just returns .the generated latex-code
29 """
30 return self.output
31

◆ add()

def add (   self)
Add latex-code to the output string.
This method is usually overriden in the subclasses

Reimplemented in LongTable, Graphics, Itemize, LatexFile, String, and Listing.

Definition at line 32 of file b2latex.py.

32 def add(self):
33 """
34 Add latex-code to the output string.
35 This method is usually overriden in the subclasses
36 """
37 return self
38

◆ finish()

def finish (   self)
Finishes the generation of latex-code.
E.g. adds end latex-commands
This method is usually overriden in the subclasses

Reimplemented in Graphics, Itemize, String, Listing, and LongTable.

Definition at line 39 of file b2latex.py.

39 def finish(self):
40 """
41 Finishes the generation of latex-code.
42 E.g. adds end latex-commands
43 This method is usually overriden in the subclasses
44 """
45 return self
46

◆ save()

def save (   self,
  filename,
  compile = False 
)
Saves the latex-code into a file, adds preamble and end of document,
and compiles the code if requested.
    @param filename latex-code is stored in this file, should end on .tex
    @param compile compile the .tex file using pdflatex into a .pdf file

Definition at line 47 of file b2latex.py.

47 def save(self, filename, compile=False):
48 """
49 Saves the latex-code into a file, adds preamble and end of document,
50 and compiles the code if requested.
51 @param filename latex-code is stored in this file, should end on .tex
52 @param compile compile the .tex file using pdflatex into a .pdf file
53 """
54 output = r"""
55 \documentclass[10pt,a4paper]{article}
56 \usepackage[latin1]{inputenc}
57 \usepackage[T1]{fontenc}
58 \usepackage{amsmath}
59 \usepackage{amsfonts}
60 \usepackage{amssymb}
61 \usepackage{graphicx}
62 \usepackage{caption}
63 \usepackage{lmodern}
64 \usepackage{placeins}
65 \usepackage{multicol}
66 \usepackage{tikz}
67 \usetikzlibrary{shapes.arrows,chains, positioning}
68 \usepackage{booktabs} %professional tables
69 \usepackage[left=2cm,right=2cm,top=2cm,bottom=2cm]{geometry}
70 \usepackage{microtype} %optimises spacing, needs to go after fonts
71 \usepackage{hyperref} %adds links (also in TOC), should be loaded at the very end
72 \usepackage{longtable}
73 \usepackage{color}
74 \usepackage{listings}
75
76 \definecolor{gray}{rgb}{0.4,0.4,0.4}
77 \definecolor{darkblue}{rgb}{0.0,0.0,0.6}
78 \definecolor{cyan}{rgb}{0.0,0.6,0.6}
79
80 \lstset{
81 basicstyle=\ttfamily\scriptsize,
82 columns=fullflexible,
83 showstringspaces=false,
84 commentstyle=\color{gray}\upshape
85 }
86
87 \lstdefinelanguage{XML}
88 {
89 morestring=[b]",
90 morestring=[s]{>}{<},
91 morecomment=[s]{<?}{?>},
92 stringstyle=\color{black},
93 identifierstyle=\color{darkblue},
94 keywordstyle=\color{cyan},
95 morekeywords={xmlns,version,type}% list your attributes here
96 }
97
98 \usepackage[load-configurations=abbreviations]{siunitx}
99 \makeatletter
100 % In newer versions of latex there is a problem with the calc package and tikz
101 % http://tex.stackexchange.com/questions/289551/how-to-resolve-conflict-between-versions-of-texlive-and-pgf
102 \def\pgfmathparse@#1{%
103 % Stuff for calc compatiability.
104 \let\real=\pgfmath@calc@real
105 \let\minof=\pgfmath@calc@minof
106 \let\maxof=\pgfmath@calc@maxof
107 \let\ratio=\pgfmath@calc@ratio
108 \let\widthof=\pgfmath@calc@widthof
109 \let\heightof=\pgfmath@calc@heightof
110 \let\depthof=\pgfmath@calc@depthof
111 % No (math) units yet.
112 \global\pgfmathunitsdeclaredfalse
113 \global\pgfmathmathunitsdeclaredfalse
114 % Expand expression so any reamining CSs are registers
115 % or box dimensions (i.e. |\wd|, |\ht|, |\dp|).
116 \edef\pgfmath@expression{#1}%
117 %
118 \expandafter\pgfmathparse@trynumber@loop\pgfmath@expression\pgfmath@parse@stop
119 %
120 % this here is the _real_ parser. it is invoked by
121 % \pgfmathparse@trynumber@loop if that says "this is no number"
122 %\pgfmathparse@@\pgfmath@parse@stop%
123 }
124 \makeatother
125 \begin{document}
126 """
127 output += self.output
128 output += r"\end{document}"
129
130 with open(filename, 'w') as f:
131 f.write(output)
132 if compile:
133 for i in range(0, 2):
134 ret = subprocess.call(['pdflatex', '-halt-on-error', '-interaction=nonstopmode', filename])
135 if ret != 0:
136 raise RuntimeError("pdflatex failed to create FEI summary PDF, please check.")
137 return self
138
139

Member Data Documentation

◆ output

output

Stores the outputted latex-code.

Definition at line 24 of file b2latex.py.


The documentation for this class was generated from the following file: