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

Public Member Functions

 add (self, text='')
 
 __iadd__ (self, text)
 
 __str__ (self)
 
 finish (self)
 
 save (self, filename, compile=False)
 

Public Attributes

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

Detailed Description

Convenience class implementing += operator, can be used instead of raw LatexObject to collect all the latex code in your project which should go into a common file.

Definition at line 140 of file b2latex.py.

Member Function Documentation

◆ __iadd__()

__iadd__ ( self,
text )
Adds an object to the output @param text string or object with implicit string conversion (like LatexObject)

Definition at line 154 of file b2latex.py.

154 def __iadd__(self, text):
155 """
156 Adds an object to the output
157 @param text string or object with implicit string conversion (like LatexObject)
158 """
159 self.add(text)
160 return self
161
162

◆ __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,
text = '' )
Adds an object to the output @param text string or object with implicit string conversion (like LatexObject)

Reimplemented from LatexObject.

Definition at line 146 of file b2latex.py.

146 def add(self, text=''):
147 """
148 Adds an object to the output
149 @param text string or object with implicit string conversion (like LatexObject)
150 """
151 self.output += str(text)
152 return self
153

◆ 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

◆ 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: