Skip to content

Instantly share code, notes, and snippets.

Created November 18, 2013 14:10
  • Star 0 You must be signed in to star a gist
  • Fork 0 You must be signed in to fork a gist
Star You must be signed in to star a gist
Save anonymous/689175670b25820f9d82 to your computer and use it in GitHub Desktop.
LaTeX from Ipython Notebooks: An update
{
"metadata": {
"name": ""
},
"nbformat": 3,
"nbformat_minor": 0,
"worksheets": [
{
"cells": [
{
"cell_type": "markdown",
"metadata": {},
"source": [
"LaTeX from Ipython\n",
"===\n",
"\n",
"*An update* 2013-11-11\n",
"\n",
"##### Philip A. Marais, CSIR 2013-11-13\n",
"\n",
"*The poor man's solution*"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"### The steps\n",
"\n",
"*Note ipython notebook was run in --pylab=inline mode*\n",
"\n",
" 1. Place a %%writefile magics command at the start of every section of relevant markdown code cell.\n",
" 2. Then proceed to go about construction your ipython notebook as usual.\n",
" 3. Create a bibliography for yout Ipynb in bibtex format and write to .bib format using the %%writefile magics.\n",
" 4. Write a LaTeX template which you will use to consolidate all the various images and sections into one document.\n",
" 5. Change the Markdown cells to code cells and run the %%writefile function to generate .txt files of the markdown code.\n",
" 6. Write additional latex section you which to insert, such as for images and abstract.\n",
" 6. Use the *pandoc* (http://johnmacfarlane.net/pandoc/README.html) command line tool from the %%bash magics to convert your markdown code to the appropriate .tex sections that will make is way into the final document.\n",
" 7. Add the appropriate .tex sections to your LaTeX document using the \\input{} command rather than the \\include{} command\n",
" 8. Run the bibtex command from bash to generate the bibliography.\n",
" 9. Run the pdflatex command from bash to generate your .pdf doc and display with xdg-open. "
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"---"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"%%writefile section1.txt \n",
"\n",
"# Introduction\n",
"\n",
"This is a section wehre you can go crazy in markdown.\n",
"\n",
"Compute some integrals for dramatic effect:\n",
"\n",
"$$\\int 3ax^2+2bx+c\\cdot dx = ax^3+bx^2+cx +C$$"
]
},
{
"cell_type": "code",
"collapsed": false,
"input": [
"from mpltools import style # found this online at git@github.com:tonysyu/mpltools.git\n",
"\n",
"## You can just leave the lines above and below out to get to the quick fix.\n",
"\n",
"style.use(['ggplot', 'pof']) #uses ggplot style.\n",
"\n",
"x = arange(-pi,pi,0.1)\n",
"y1 = (sin((x*5))/10.0)+0.5\n",
"y2 = (sin(x**2))\n",
"\n",
"figsize(10,5)\n",
"plot(x,y1,linewidth=2)\n",
"plot(x,y2,linewidth=2)\n",
"title('Some title \\n',fontsize=20)\n",
"ylabel('y-label',fontsize=16)\n",
"xlabel('x-label',fontsize=16)\n",
"\n",
"savefig('figure.png') #save the figure in the appropriate folder and write a section of latex code to insert it into the final document."
],
"language": "python",
"metadata": {},
"outputs": [
{
"metadata": {},
"output_type": "display_data",
"png": "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\n",
"text": [
"<matplotlib.figure.Figure at 0x4043a10>"
]
}
],
"prompt_number": 11
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"## Using python magics to write code to file"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"##### Add your bibtex entries like you would for any latex document."
]
},
{
"cell_type": "code",
"collapsed": false,
"input": [
"%%writefile ref.bib\n",
"\n",
"@Article{PER-GRA_2007,\n",
" Author = {Perez, Fernando and Granger, Brian E.},\n",
" Title = {{IP}ython: a {S}ystem for {I}nteractive {S}cientific\n",
" {C}omputing},\n",
" Journal = {{C}omput. {S}ci. {E}ng.},\n",
" Volume = {9},\n",
" Number = {3},\n",
" Pages = {21-29},\n",
" month = may,\n",
" year = 2007,\n",
" url = \"http://ipython.org\",\n",
"}"
],
"language": "python",
"metadata": {},
"outputs": [
{
"output_type": "stream",
"stream": "stdout",
"text": [
"Overwriting ref.bib\n"
]
}
],
"prompt_number": 2
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"#### You can write sections in latex code that can be added to you final document where you choose"
]
},
{
"cell_type": "code",
"collapsed": false,
"input": [
"%%writefile section2.tex\n",
"\n",
"%This is the section that contains the image.\n",
"\n",
"\\subsection{Part2}\n",
"\n",
"This is the second section of your new \\LaTeX document.\n",
"\n",
"We also plot the graphs of $\\frac{sin(5x)}{10}+0.5$ and $sin(x^2)$ for no reason.\n",
"\n",
"\\begin{figure}[H]\n",
"\\centering\n",
"\\includegraphics[width = \\textwidth]{figure.png}\n",
"\\caption{\\emph{Here is your figure, all neat in \\LaTeX.}}\n",
"\\end{figure}"
],
"language": "python",
"metadata": {},
"outputs": [
{
"output_type": "stream",
"stream": "stdout",
"text": [
"Overwriting section2.tex\n"
]
}
],
"prompt_number": 9
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"##### For example: your abstract"
]
},
{
"cell_type": "code",
"collapsed": false,
"input": [
"%%writefile abstract.tex\n",
"\n",
"\\begin{abstract}\n",
"This is the poor man's solution to integrating all of your shit into one dynamic document.\n",
"\\end{abstract}"
],
"language": "python",
"metadata": {},
"outputs": [
{
"output_type": "stream",
"stream": "stdout",
"text": [
"Overwriting abstract.tex\n"
]
}
],
"prompt_number": 3
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"#### Produce the master LaTeX template you will be using for this project."
]
},
{
"cell_type": "code",
"collapsed": false,
"input": [
"%%writefile test2.tex\n",
"\n",
"\\documentclass[a4paper,11pt]{article} %This is the standard Latex article template\n",
"\\usepackage[T1]{fontenc}\n",
"\\usepackage[utf8]{inputenc}\n",
"\\usepackage{lmodern}\n",
"\\usepackage{graphicx} % This is for the image, not sure if it is required, but its there none the less\n",
"\\usepackage{float} % This is for placing the image at a specific location\n",
"\\usepackage[left=1.2cm,right=1.2cm,top=0cm,bottom=0cm]{geometry}\n",
"\n",
"\\title{\\LaTeX from Ipython notebooks}\n",
"\\author{PA Marais}\n",
"\n",
"\\begin{document}\n",
"\n",
"\\maketitle\n",
"\n",
"\\input{abstract}\n",
"\\input{section1}\n",
"\\input{section2}\n",
"\n",
"\\nocite{PER-GRA_2007}\n",
"\\bibliographystyle{unsrt}\n",
"\\bibliography{ref}\n",
"\n",
"\\end{document}"
],
"language": "python",
"metadata": {},
"outputs": [
{
"output_type": "stream",
"stream": "stdout",
"text": [
"Overwriting test2.tex\n"
]
}
],
"prompt_number": 5
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"#### This is the one-cell-script that produces the tex code from the markdown cell code, produces the bibliography, and compiles the pretty PDF document."
]
},
{
"cell_type": "code",
"collapsed": false,
"input": [
"%%bash\n",
"\n",
"#use pandoc to convert section one to tex code from markdown\n",
"pandoc -f markdown -t latex section1.txt -o section1.tex \n",
"\n",
"#run the standard bibtex and pdflatex commands to generate your final pdf\n",
"\n",
"bibtex test2\n",
"pdflatex test2.tex\n",
"xdg-open test2.pdf"
],
"language": "python",
"metadata": {},
"outputs": [
{
"output_type": "stream",
"stream": "stdout",
"text": [
"This is BibTeX, Version 0.99c (TeX Live 2009/Debian)\n",
"The top-level auxiliary file: test2.aux\n",
"The style file: unsrt.bst\n",
"Database file #1: ref.bib\n",
"This is pdfTeX, Version 3.1415926-1.40.10 (TeX Live 2009/Debian)\n",
"entering extended mode\n",
"(./test2.tex\n",
"LaTeX2e <2009/09/24>\n",
"Babel <v3.8l> and hyphenation patterns for english, usenglishmax, dumylang, noh\n",
"yphenation, loaded.\n",
"(/usr/share/texmf-texlive/tex/latex/base/article.cls\n",
"Document Class: article 2007/10/19 v1.4h Standard LaTeX document class\n",
"(/usr/share/texmf-texlive/tex/latex/base/size11.clo))\n",
"(/usr/share/texmf-texlive/tex/latex/base/fontenc.sty\n",
"(/usr/share/texmf-texlive/tex/latex/base/t1enc.def))\n",
"(/usr/share/texmf-texlive/tex/latex/base/inputenc.sty\n",
"(/usr/share/texmf-texlive/tex/latex/base/utf8.def\n",
"(/usr/share/texmf-texlive/tex/latex/base/t1enc.dfu)\n",
"(/usr/share/texmf-texlive/tex/latex/base/ot1enc.dfu)\n",
"(/usr/share/texmf-texlive/tex/latex/base/omsenc.dfu)))\n",
"(/usr/share/texmf/tex/latex/lm/lmodern.sty)\n",
"(/usr/share/texmf-texlive/tex/latex/graphics/graphicx.sty\n",
"(/usr/share/texmf-texlive/tex/latex/graphics/keyval.sty)\n",
"(/usr/share/texmf-texlive/tex/latex/graphics/graphics.sty\n",
"(/usr/share/texmf-texlive/tex/latex/graphics/trig.sty)\n",
"(/etc/texmf/tex/latex/config/graphics.cfg)\n",
"(/usr/share/texmf-texlive/tex/latex/pdftex-def/pdftex.def)))\n",
"(/usr/share/texmf-texlive/tex/latex/float/float.sty)\n",
"(/usr/share/texmf-texlive/tex/latex/geometry/geometry.sty\n",
"(/usr/share/texmf-texlive/tex/generic/oberdiek/ifpdf.sty)\n",
"(/usr/share/texmf-texlive/tex/generic/oberdiek/ifvtex.sty)\n",
"(/usr/share/texmf-texlive/tex/xelatex/xetexconfig/geometry.cfg)) (./test2.aux)\n",
"(/usr/share/texmf/tex/latex/lm/t1lmr.fd)\n",
"(/usr/share/texmf-texlive/tex/context/base/supp-pdf.mkii\n",
"[Loading MPS to PDF converter (version 2006.09.02).]\n",
")\n",
"*geometry auto-detecting driver*\n",
"*geometry detected driver: pdftex*\n",
"(/usr/share/texmf/tex/latex/lm/ot1lmr.fd)\n",
"(/usr/share/texmf/tex/latex/lm/omllmm.fd)\n",
"(/usr/share/texmf/tex/latex/lm/omslmsy.fd)\n",
"(/usr/share/texmf/tex/latex/lm/omxlmex.fd) (./abstract.tex) (./section1.tex)\n",
"(./section2.tex <figure.png, id=1, 722.7pt x 361.35pt> <use figure.png>)\n",
"(./test2.bbl) [1{/var/lib/texmf/fonts/map/pdftex/updmap/pdftex.map} <./figure.p\n",
"ng>] (./test2.aux) ){/usr/share/texmf/fonts/enc/dvips/lm/lm-ec.enc}{/usr/share/\n",
"texmf/fonts/enc/dvips/lm/lm-mathit.enc}{/usr/share/texmf/fonts/enc/dvips/lm/lm-\n",
"mathsy.enc}{/usr/share/texmf/fonts/enc/dvips/lm/lm-rm.enc}{/usr/share/texmf/fon\n",
"ts/enc/dvips/lm/lm-mathex.enc}</usr/share/texmf/fonts/type1/public/lm/lmbx10.pf\n",
"b></usr/share/texmf/fonts/type1/public/lm/lmbx12.pfb></usr/share/texmf/fonts/ty\n",
"pe1/public/lm/lmex10.pfb></usr/share/texmf/fonts/type1/public/lm/lmmi10.pfb></u\n",
"sr/share/texmf/fonts/type1/public/lm/lmmi8.pfb></usr/share/texmf/fonts/type1/pu\n",
"blic/lm/lmr10.pfb></usr/share/texmf/fonts/type1/public/lm/lmr12.pfb></usr/share\n",
"/texmf/fonts/type1/public/lm/lmr17.pfb></usr/share/texmf/fonts/type1/public/lm/\n",
"lmr8.pfb></usr/share/texmf/fonts/type1/public/lm/lmri10.pfb></usr/share/texmf/f\n",
"onts/type1/public/lm/lmri8.pfb></usr/share/texmf/fonts/type1/public/lm/lmsy10.p\n",
"fb>\n",
"Output written on test2.pdf (1 page, 221423 bytes).\n",
"Transcript written on test2.log.\n"
]
}
],
"prompt_number": 12
}
],
"metadata": {}
}
]
}
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment