##// END OF EJS Templates
support latex in display messages in qt
Min RK -
Show More
@@ -153,20 +153,29 b' class RichIPythonWidget(IPythonWidget):'
153 metadata = msg['content']['metadata']
153 metadata = msg['content']['metadata']
154 # Try to use the svg or html representations.
154 # Try to use the svg or html representations.
155 # FIXME: Is this the right ordering of things to try?
155 # FIXME: Is this the right ordering of things to try?
156 self.log.debug("display: %s", msg.get('content', ''))
156 if 'image/svg+xml' in data:
157 if 'image/svg+xml' in data:
157 self.log.debug("display: %s", msg.get('content', ''))
158 svg = data['image/svg+xml']
158 svg = data['image/svg+xml']
159 self._append_svg(svg, True)
159 self._append_svg(svg, True)
160 elif 'image/png' in data:
160 elif 'image/png' in data:
161 self.log.debug("display: %s", msg.get('content', ''))
162 # PNG data is base64 encoded as it passes over the network
161 # PNG data is base64 encoded as it passes over the network
163 # in a JSON structure so we decode it.
162 # in a JSON structure so we decode it.
164 png = decodestring(data['image/png'].encode('ascii'))
163 png = decodestring(data['image/png'].encode('ascii'))
165 self._append_png(png, True, metadata=metadata.get('image/png', None))
164 self._append_png(png, True, metadata=metadata.get('image/png', None))
166 elif 'image/jpeg' in data and self._jpg_supported:
165 elif 'image/jpeg' in data and self._jpg_supported:
167 self.log.debug("display: %s", msg.get('content', ''))
168 jpg = decodestring(data['image/jpeg'].encode('ascii'))
166 jpg = decodestring(data['image/jpeg'].encode('ascii'))
169 self._append_jpg(jpg, True, metadata=metadata.get('image/jpeg', None))
167 self._append_jpg(jpg, True, metadata=metadata.get('image/jpeg', None))
168 elif 'text/latex' in data:
169 try:
170 png = latex_to_png(data['text/latex'], wrap=False)
171 except Exception:
172 self.log.error("Failed to render latex: %r", data['text/latex'], exc_info=True)
173 png = None
174 if png is not None:
175 self._append_png(png, True)
176 else:
177 # Print plain text if png can't be generated
178 return super(RichIPythonWidget, self)._handle_display_data(msg)
170 else:
179 else:
171 # Default back to the plain text representation.
180 # Default back to the plain text representation.
172 return super(RichIPythonWidget, self)._handle_display_data(msg)
181 return super(RichIPythonWidget, self)._handle_display_data(msg)
General Comments 0
You need to be logged in to leave comments. Login now