Belle II Software development
DefineColourList Class Reference
Inheritance diagram for DefineColourList:
LatexObject

Public Member Functions

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

Public Attributes

str output = ''
 Stores the outputted latex-code.
 

Static Public Attributes

list colours = ["red", "green", "blue", "orange", "cyan", "purple"]
 6 default colours used for the bargraph
 

Detailed Description

Defines the colourlist latex-command, which draws a bargraph with relative
fractions indicated by colours using tikz.
After including this object in you latex code the command \\bargraph is available.
You should include only one of these objects in your latex code.

Definition at line 228 of file b2latex.py.

Constructor & Destructor Documentation

◆ __init__()

__init__ ( self)
Calls super-class init, adds definition of colourlist to latex code.

Definition at line 239 of file b2latex.py.

239 def __init__(self):
240 """
241 Calls super-class init, adds definition of colourlist to latex code.
242 """
243 super().__init__()
244 self.output += r"\def\colourlist{{" + ', '.join(f'"{c}"' for c in self.colours) + r"}}" + '\n'
245 self.output += r"""
246 \tikzset{nodeStyle/.style={text height=\heightof{A},text depth=\depthof{g}, inner sep = 0pt, node distance = -0.15mm}}
247 \newcount\colourindex \colourindex=-1
248 \newcommand{\plotbar}[1]{
249 \begin{tikzpicture}[start chain=going right, nodes = {font=\sffamily}]
250 \global\colourindex=-1
251 \foreach \percent/\name in {
252 #1
253 } {
254 \ifx\percent\empty\else % If \percent is empty, do nothing
255 \global\advance\colourindex by 1
256 \ifnum"""
257 self.output += str(len(self.colours) - 1)
258 self.output += r"""5<\colourindex %back to first colour if we run out
259 \global\colourindex=0
260 \fi
261 \pgfmathparse{\colourlist[\the\colourindex]} % Get color from cycle list
262 \edef\color{\pgfmathresult} % and store as \color
263 \node[nodeStyle, draw, on chain, fill={\color!40}, minimum width=\percent*1.0, minimum height=12] {\name};
264 \fi
265 };
266 \end{tikzpicture}
267 }
268 """
269
270

Member Function Documentation

◆ __str__()

__str__ ( self)
inherited
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()

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

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

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 overridden in the subclasses
36 """
37 return self
38

◆ finish()

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

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

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 overridden in the subclasses
44 """
45 return self
46

◆ save()

save ( self,
filename,
compile = False )
inherited
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 compatibility.
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 remaining 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

◆ colours

list colours = ["red", "green", "blue", "orange", "cyan", "purple"]
static

6 default colours used for the bargraph

Definition at line 237 of file b2latex.py.

◆ output

str output = ''
inherited

Stores the outputted latex-code.

Definition at line 24 of file b2latex.py.


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