title: How to write your own LaTeX preamble in Matplotlib?
body: <p>I'm trying to create a figure in <code>matplotlib</code> to insert in my <code>LaTeX</code> document, and I need the bold <code>'i'</code> and <code>'j'</code> symbols without their dots and a hat instead.</p>
  
  <p>I've been using the code <code>\mathbf{\hat{\textnormal{\bfseries\i}}}</code> in my document, but as this uses the <code>amsmath</code> package (or possibly the <code>amssymb</code> package, sorry I don't know I am very new to both <code>LaTeX</code> and <code>matplotlib</code>) I cannot use it in the <code>matplotlib</code> label.</p>
  
  <p>Hence I would love to know how to use <code>LaTeX</code> in <code>matplotlib</code> and how to write a preamble to install the package needed to use these symbols. I hope this makes sense, and I know this is probably already out there or is simple but I'm new so please dont get angry!</p>
  
  <p>Thank you guys!</p>
  
  <p><strong>Edit</strong></p>
  
  <p>So I have somehow managed to get this far with the coding, but when ever I run the code, my <code>python kernel</code> crashes. Unfortunately I don't really understand my code or where it is going wrong, so have uploaded it in case it helps. Sorry for the long upload. Again thanks in advance!</p>
  
  <pre><code>from mpl_toolkits.mplot3d import Axes3D
  import numpy, matplotlib, matplotlib.pyplot as pyplot
  
  matplotlib.rcParams['text.usetex'] = True
  matplotlib.rcParams['text.latex.preamble'] = [
      r'\usepackage{amsmath}',
      r'\usepackage{amssymb}']
  matplotlib.rcParams['font.family'] = 'serif'
  matplotlib.rcParams['font.serif'] = 'Computer Modern'
  matplotlib.verbose.level = 'debug-annoying'
  
  Module_Colour = '#F0AE1E'
  
  fig = pyplot.figure()
  ax = fig.add_subplot(111, projection='3d')
  
  X_arr = numpy.array([1.0,0.0,0.0])
  Y_arr = numpy.array([0.0,1.0,0.0])
  Z_arr = numpy.array([0.0,0.0,1.0])
  O_arr = numpy.array([0.0,0.0,0.0])
  
  pyplot.quiver(O_arr,O_arr,O_arr,X_arr,Y_arr,Z_arr,
                pivot='tail', length=1.0, linewidth=2.5,
                color = Module_Colour)
  
  ax.set_xlabel('x-axis', fontsize=12.5)
  ax.set_ylabel('y-axis', fontsize=12.5)
  ax.set_zlabel('z-axis', fontsize=12.5)
  
  ax.text(1.03, 0, 0, r'$\mathbf{\hat{\textnormal{\bfseries \i}}}$',
          fontsize=25, color = Module_Colour)
  ax.text(0, 1.03, 0, r'$\mathbf{\hat{\textnormal{\bfseries \j}}}$',
          fontsize=25, color = Module_Colour)
  ax.text(0, 0, 1.03, r'$\mathbf{\hat{\textnormal{\bfseries k}}}$',
          fontsize=25, color = Module_Colour)
  
  ax.set_xlim3d([0, 1.05])
  ax.set_ylim3d([0, 1.05])
  ax.set_zlim3d([0, 1.13])
  ax.view_init(elev=17.0, azim=44.0)
  
  pyplot.savefig('file/pathway/figure.jpeg',
                 bbox_inches='tight')
  pyplot.show()
  </code></pre>
  
  <p><strong>Edit</strong></p>
  
  <p>The debug error was:</p>
  
  <pre><code>FigureCanvasAgg.draw
  RendererAgg.__init__
  RendererAgg.__init__ width=800.0, height=600.0
  RendererAgg.__init__ _RendererAgg done
  RendererAgg.__init__ done
  No LaTeX-compatible font found for the monospace font family in rcParams. Using default.
  RendererAgg.points_to_pixels
  No LaTeX-compatible font found for the monospace font family in rcParams. Using default.
  C: &amp;&amp; cd "C:\Users\alexd\.matplotlib\tex.cache" &amp;&amp; latex -interaction=nonstopmode 8160df9e5349057f736eef7cf8779b4d.tex &gt; "C:\Users\alexd\.matplotlib\tex.cache\8160df9e5349057f736eef7cf8779b4d.output"
  This is pdfTeX, Version 3.14159265-2.6-1.40.17 (MiKTeX 2.9.6100 64-bit)
  entering extended mode
  (8160df9e5349057f736eef7cf8779b4d.tex
  LaTeX2e &lt;2016/03/31&gt; patch level 3
  Babel &lt;3.9r&gt; and hyphenation patterns for 75 language(s) loaded.
  ("C:\Program Files\MiKTeX 2.9\tex\latex\base\article.cls"
  Document Class: article 2014/09/29 v1.4h Standard LaTeX document class
  ("C:\Program Files\MiKTeX 2.9\tex\latex\base\size10.clo"))
  ("C:\Program Files\MiKTeX 2.9\tex\latex\type1cm\type1cm.sty")
  ("C:\Program Files\MiKTeX 2.9\tex\latex\psnfss\helvet.sty"
  ("C:\Program Files\MiKTeX 2.9\tex\latex\graphics\keyval.sty"))
  ("C:\Program Files\MiKTeX 2.9\tex\latex\psnfss\courier.sty")
  ("C:\Program Files\MiKTeX 2.9\tex\latex\base\textcomp.sty"
  ("C:\Program Files\MiKTeX 2.9\tex\latex\base\ts1enc.def"))
  ("C:\Program Files\MiKTeX 2.9\tex\latex\amsmath\amsmath.sty"
  For additional information on amsmath, use the `?' option.
  ("C:\Program Files\MiKTeX 2.9\tex\latex\amsmath\amstext.sty"
  ("C:\Program Files\MiKTeX 2.9\tex\latex\amsmath\amsgen.sty"))
  ("C:\Program Files\MiKTeX 2.9\tex\latex\amsmath\amsbsy.sty")
  ("C:\Program Files\MiKTeX 2.9\tex\latex\amsmath\amsopn.sty"))
  ("C:\Program Files\MiKTeX 2.9\tex\latex\amsfonts\amssymb.sty"
  ("C:\Program Files\MiKTeX 2.9\tex\latex\amsfonts\amsfonts.sty"))
  ("C:\Program Files\MiKTeX 2.9\tex\latex\geometry\geometry.sty"
  ("C:\Program Files\MiKTeX 2.9\tex\generic\oberdiek\ifpdf.sty")
  ("C:\Program Files\MiKTeX 2.9\tex\generic\oberdiek\ifvtex.sty")
  ("C:\Program Files\MiKTeX 2.9\tex\generic\ifxetex\ifxetex.sty")
  ("C:\Program Files\MiKTeX 2.9\tex\latex\geometry\geometry.cfg")
  
  Package geometry Warning: Over-specification in `h'-direction.
      `width' (5058.9pt) is ignored.
  
  Package geometry Warning: Over-specification in `v'-direction.
      `height' (5058.9pt) is ignored.
  
  )
  No file 8160df9e5349057f736eef7cf8779b4d.aux.
  ("C:\Program Files\MiKTeX 2.9\tex\latex\base\ts1cmr.fd")
  *geometry* driver: auto-detecting
  *geometry* detected driver: dvips
  [1] (8160df9e5349057f736eef7cf8779b4d.aux) )
  Output written on 8160df9e5349057f736eef7cf8779b4d.dvi (1 page, 240 bytes).
  Transcript written on 8160df9e5349057f736eef7cf8779b4d.log.
  
  Dvi: C:\Users\alexd\.matplotlib\tex.cache\8160df9e5349057f736eef7cf8779b4d.dvi
  Dvi._xxx: encountered special: papersize=5203.43999pt,5203.43999pt
  find_tex_file(cmr12.tfm): [u'kpsewhich', u'cmr12.tfm']
  find_tex_file result: C:/Program Files/MiKTeX 2.9/fonts/tfm/public/cm/cmr12.tfm
  opening tfm file C:/Program Files/MiKTeX 2.9/fonts/tfm/public/cm/cmr12.tfm
  lh=18, bc=0, ec=127, nw=34, nh=16, nd=10
  find_tex_file(cmr12.vf): [u'kpsewhich', u'cmr12.vf']
  find_tex_file result:
  RendererAgg.points_to_pixels
  C: &amp;&amp; cd "C:\Users\alexd\.matplotlib\tex.cache" &amp;&amp; latex -interaction=nonstopmode 27047192dde3a3a7381bad7b27d0fcb3.tex &gt; "C:\Users\alexd\.matplotlib\tex.cache\27047192dde3a3a7381bad7b27d0fcb3.output"
  This is pdfTeX, Version 3.14159265-2.6-1.40.17 (MiKTeX 2.9.6100 64-bit)
  entering extended mode
  (27047192dde3a3a7381bad7b27d0fcb3.tex
  LaTeX2e &lt;2016/03/31&gt; patch level 3
  Babel &lt;3.9r&gt; and hyphenation patterns for 75 language(s) loaded.
  ("C:\Program Files\MiKTeX 2.9\tex\latex\base\article.cls"
  Document Class: article 2014/09/29 v1.4h Standard LaTeX document class
  ("C:\Program Files\MiKTeX 2.9\tex\latex\base\size10.clo"))
  ("C:\Program Files\MiKTeX 2.9\tex\latex\type1cm\type1cm.sty")
  ("C:\Program Files\MiKTeX 2.9\tex\latex\psnfss\helvet.sty"
  ("C:\Program Files\MiKTeX 2.9\tex\latex\graphics\keyval.sty"))
  ("C:\Program Files\MiKTeX 2.9\tex\latex\psnfss\courier.sty")
  ("C:\Program Files\MiKTeX 2.9\tex\latex\base\textcomp.sty"
  ("C:\Program Files\MiKTeX 2.9\tex\latex\base\ts1enc.def"))
  ("C:\Program Files\MiKTeX 2.9\tex\latex\amsmath\amsmath.sty"
  For additional information on amsmath, use the `?' option.
  ("C:\Program Files\MiKTeX 2.9\tex\latex\amsmath\amstext.sty"
  ("C:\Program Files\MiKTeX 2.9\tex\latex\amsmath\amsgen.sty"))
  ("C:\Program Files\MiKTeX 2.9\tex\latex\amsmath\amsbsy.sty")
  ("C:\Program Files\MiKTeX 2.9\tex\latex\amsmath\amsopn.sty"))
  ("C:\Program Files\MiKTeX 2.9\tex\latex\amsfonts\amssymb.sty"
  ("C:\Program Files\MiKTeX 2.9\tex\latex\amsfonts\amsfonts.sty"))
  ("C:\Program Files\MiKTeX 2.9\tex\latex\geometry\geometry.sty"
  ("C:\Program Files\MiKTeX 2.9\tex\generic\oberdiek\ifpdf.sty")
  ("C:\Program Files\MiKTeX 2.9\tex\generic\oberdiek\ifvtex.sty")
  ("C:\Program Files\MiKTeX 2.9\tex\generic\ifxetex\ifxetex.sty")
  ("C:\Program Files\MiKTeX 2.9\tex\latex\geometry\geometry.cfg")
  
  Package geometry Warning: Over-specification in `h'-direction.
      `width' (5058.9pt) is ignored.
  
  
  Package geometry Warning: Over-specification in `v'-direction.
      `height' (5058.9pt) is ignored.
  
  )
  No file 27047192dde3a3a7381bad7b27d0fcb3.aux.
  ("C:\Program Files\MiKTeX 2.9\tex\latex\base\ts1cmr.fd")
  *geometry* driver: auto-detecting
  *geometry* detected driver: dvips
  [1] (27047192dde3a3a7381bad7b27d0fcb3.aux) )
  Output written on 27047192dde3a3a7381bad7b27d0fcb3.dvi (1 page, 288 bytes).
  Transcript written on 27047192dde3a3a7381bad7b27d0fcb3.log.
  
  Dvi: C:\Users\alexd\.matplotlib\tex.cache\27047192dde3a3a7381bad7b27d0fcb3.dvi
  Dvi._xxx: encountered special: papersize=5203.43999pt,5203.43999pt
  find_tex_file(cmmi12.tfm): [u'kpsewhich', u'cmmi12.tfm']
  find_tex_file result: C:/Program Files/MiKTeX 2.9/fonts/tfm/public/cm/cmmi12.tfm
  opening tfm file C:/Program Files/MiKTeX 2.9/fonts/tfm/public/cm/cmmi12.tfm
  lh=18, bc=0, ec=127, nw=97, nh=15, nd=9
  find_tex_file(cmmi12.vf): [u'kpsewhich', u'cmmi12.vf']
  find_tex_file result:
  C: &amp;&amp; cd "C:\Users\alexd\.matplotlib\tex.cache" &amp;&amp; dvipng -bg Transparent -D 100.0 -T tight -o "da3e0f170d11553ae39831280c346c0f.png" "27047192dde3a3a7381bad7b27d0fcb3.dvi" &gt; "C:\Users\alexd\.matplotlib\tex.cache\da3e0f170d11553ae39831280c346c0f.output"
  This is dvipng 1.15 Copyright 2002-2015 Jan-Ake Larsson
  [1]
  </code></pre>
  
  <p>Then <code>python.exe</code> stops responding, and unfortunately I'm not very tech savvy so struggle to understand why this is happening.</p>