# Pluto or notebooks in VSCode using Quarto for interactive lecture notes?

**URL:** https://discourse.julialang.org/t/pluto-or-notebooks-in-vscode-using-quarto-for-interactive-lecture-notes/90203
**Category:** New to Julia
**Tags:** vscode, pluto, julia-markdown
**Created:** [November 13, 2022, 6:50pm UTC](https://discourse.julialang.org/t/pluto-or-notebooks-in-vscode-using-quarto-for-interactive-lecture-notes/90203 "2022-11-13T18:50:06Z")
**Posts on this page:** 10
**Page:** 1

<div class="post-metadata">

### Author: ![Hugo](https://avatars.discourse-cdn.com/v4/letter/h/b38774/32.png) [@Hugo](https://discourse.julialang.org/u/Hugo)
#### Post date: [November 13, 2022, 6:50pm UTC](https://discourse.julialang.org/t/pluto-or-notebooks-in-vscode-using-quarto-for-interactive-lecture-notes/90203/1 "2022-11-13T18:50:06Z")

</div>

_ **TL;DR: Pluto or notebooks in VSCode using Quarto?** _

Hello, all

Next year, I’ll be in a position where I’ll be able to use Julia in a classroom. I’m trying to come with a set of interactive class notes that students can use to follow along during class and to study on their own. To make these notes interactive, I’ve been looking into ways to write them in a notebook style so they can run chunks of code along the way.

I have little experience with Jupyter notebooks. Mostly, I have come to them as a user and never used them to create interactive notes. To achieve my goal, I decided to give Quarto in VS Code a try. I have some experience with `rmarkdown`, but I’ve hit a roadblock.

Before I continue and suffer a bit in Python hell with all the environment problems I know I’ll face, I’d like to know people’s opinions on using notebooks in VSCode through Quarto and Pluto.

I tried my hand at Pluto yesterday. I like the minimalistic approach to its design; I think it’s less distracting. But **my experience with Markdown wasn’t the best. I need to write equations and for that I need symbols that I know how to type in Latex, but the immediate commands I know did not work in Pluto. Plus, I am still not sure if I can add footnotes and citations in Pluto.** I think the answer is no, since that is not part of what Pluto is for. Correct?

On the other hand, can I get an interactive notebook where students can run the cells on their own using a the `.qmd` file? I’d imagine that if I convert the `.qmd` file into a `.ipynb`, students can run it using VSCode. Right?

All feedback on experiences with both Pluto and (Quarto-powered) notebooks in VSCode are more than welcome.

Thank you.

---

<div class="post-metadata">

### Author: ![dmbates](https://sea2.discourse-cdn.com/julialang/user_avatar/discourse.julialang.org/dmbates/32/44_2.png) [@dmbates](https://discourse.julialang.org/u/dmbates)
#### Post date: [November 13, 2022, 7:16pm UTC](https://discourse.julialang.org/t/pluto-or-notebooks-in-vscode-using-quarto-for-interactive-lecture-notes/90203/2 "2022-11-13T19:16:27Z")

</div>

My experience with Quarto has been quite positive. You can treat it as if it were RMarkdown but allowing for Julia or Python or R code execution. To me the fact that the Julia and Python code execution is carried out through Jupyter is incidental in that I regard the `.qmd` file as the source, not the `.ipynb` file. If you want to use `.ipynb` for interactive execution that can be done using `quarto convert` as you indicate but I prefer to edit the `.qmd` not the `.ipynb` because of the problems with out-of-order execution, etc. in Jupyter. Also, to date it doesn’t seem that the YAML markup, and code-chunk options or cross-referencing/bibliography facilities in Quarto show up natively in Jupyter.

I tend to use `quarto preview`, `quarto render` and `quarto publish` much more than I use `quarto convert` explicitly (it is implicit in all the other commands I mentioned). Much as I love Pluto notebooks, I would go with Quarto for course materials for the cross-references, bibliography, equation markup and figure/table styling.

---

<div class="post-metadata">

### Author: ![Hugo](https://avatars.discourse-cdn.com/v4/letter/h/b38774/32.png) [@Hugo](https://discourse.julialang.org/u/Hugo)
#### Post date: [November 13, 2022, 7:23pm UTC](https://discourse.julialang.org/t/pluto-or-notebooks-in-vscode-using-quarto-for-interactive-lecture-notes/90203/3 "2022-11-13T19:23:43Z")

</div>

Thanks for your comment, @dmbates.

---

<div class="post-metadata">

### Author: ![dlakelan](https://sea2.discourse-cdn.com/julialang/user_avatar/discourse.julialang.org/dlakelan/32/8491_2.png) [@dlakelan](https://discourse.julialang.org/u/dlakelan)
#### Post date: [November 14, 2022, 3:54am UTC](https://discourse.julialang.org/t/pluto-or-notebooks-in-vscode-using-quarto-for-interactive-lecture-notes/90203/4 "2022-11-14T03:54:54Z")

</div>

Consider using Weave and .jmd files within VSCode. Similar to Quarto, but you can just select code within code fences and hit shift-enter to send it to a Julia repl.

When you want a full document output just run weave on it.

---

<div class="post-metadata">

### Author: ![dmbates](https://sea2.discourse-cdn.com/julialang/user_avatar/discourse.julialang.org/dmbates/32/44_2.png) [@dmbates](https://discourse.julialang.org/u/dmbates)
#### Post date: [November 14, 2022, 9:40pm UTC](https://discourse.julialang.org/t/pluto-or-notebooks-in-vscode-using-quarto-for-interactive-lecture-notes/90203/5 "2022-11-14T21:40:19Z")

</div>

The Quarto extension for VS Code provides the capability of executing code blocks in the Julia REPL. In fact it provides handy buttons for “Execute chunk”, “Execute next chunk”, and “Execute Above”, as well as a “Render/Preview” button. Overall I think it is well integrated with the Julia VS Code extension.

---

<div class="post-metadata">

### Author: ![j-fu](https://sea2.discourse-cdn.com/julialang/user_avatar/discourse.julialang.org/j-fu/32/11373_2.png) [@j-fu](https://discourse.julialang.org/u/j-fu)
#### Post date: [November 14, 2022, 11:44pm UTC](https://discourse.julialang.org/t/pluto-or-notebooks-in-vscode-using-quarto-for-interactive-lecture-notes/90203/6 "2022-11-14T23:44:07Z")

</div>

Hi, no, footnotes and citations up to now are not available in pluto. However it has MathJax support, so LaTeX is really decent. And it has reactivity, which you may like or not. I find  
it well suited for students.

The other point is installation: Pluto notebooks come with their own environment, all packages used “install themselves” automatically with the exact same versions as used (could be faster though sometimes). Students just need to install Julia and Pluto.

I am impressed though with the rendering quality of quarto, so for a more bookish output I would explore it more.

---

<div class="post-metadata">

### Author: ![Hugo](https://avatars.discourse-cdn.com/v4/letter/h/b38774/32.png) [@Hugo](https://discourse.julialang.org/u/Hugo)
#### Post date: [November 15, 2022, 7:38pm UTC](https://discourse.julialang.org/t/pluto-or-notebooks-in-vscode-using-quarto-for-interactive-lecture-notes/90203/8 "2022-11-15T19:38:47Z")

</div>

Thanks for your points. Now that you brought up, using Pluto for the first time is definitely less bound to friction. I’ll keep that in mind.

---

<div class="post-metadata">

### Author: ![dlakelan](https://sea2.discourse-cdn.com/julialang/user_avatar/discourse.julialang.org/dlakelan/32/8491_2.png) [@dlakelan](https://discourse.julialang.org/u/dlakelan)
#### Post date: [November 16, 2022, 2:48pm UTC](https://discourse.julialang.org/t/pluto-or-notebooks-in-vscode-using-quarto-for-interactive-lecture-notes/90203/9 "2022-11-16T14:48:27Z")

</div>

Thanks for the info on the vscode extension for quarto. I think quarto being as well supported as it is pushes it ahead of Weave.jl which is good but somewhat limited in it’s output formats and such. I like that weave doesn’t require python / Jupyter but I think I’m switching to quarto anyway 😉

---

<div class="post-metadata">

### Author: ![kellertuer](https://sea2.discourse-cdn.com/julialang/user_avatar/discourse.julialang.org/kellertuer/32/220707_2.png) [@kellertuer](https://discourse.julialang.org/u/kellertuer)
#### Post date: [January 15, 2023, 8:50am UTC](https://discourse.julialang.org/t/pluto-or-notebooks-in-vscode-using-quarto-for-interactive-lecture-notes/90203/10 "2023-01-15T08:50:20Z")

</div>

The fact that quarto requires Jupyter is indeed the one small thing I also dislike there (due to the dependency on Python), but maybe they find a way for a native Julia support one day. And – maybe the other way around – a Pluto export from quarto would also be very neat.

---

<div class="post-metadata">

### Author: ![Stefan\_Bringuier](https://sea2.discourse-cdn.com/julialang/user_avatar/discourse.julialang.org/stefan_bringuier/32/20132_2.png) [@Stefan\_Bringuier](https://discourse.julialang.org/u/Stefan_Bringuier)
#### Post date: [March 3, 2023, 1:39am UTC](https://discourse.julialang.org/t/pluto-or-notebooks-in-vscode-using-quarto-for-interactive-lecture-notes/90203/11 "2023-03-03T01:39:27Z")

</div>

At the moment, I enjoy and work with both Pluto and Quarto. In general, Pluto works really well for data analysis and dashboard-like notebooks. It is possible to get footnotes and [citations](https://discourse.julialang.org/t/citing-papers-in-pluto/59544) with Pluto but if you want more formatting control or cross-referencing capability, you have to implement it yourself in HTML within a notebook or use something like PlutoReports.jl. The main challenges I’ve found with Pluto notebooks is stitching them together to create a compendium. As mentioned in another post, Pluto now manages packages for you, so each notebook environment is stored as annotated comments in the .jl file, and therefore you need to run each notebook in isolation, which is good but also slow. The best solution I’ve found for combining Pluto notebooks is with [PlutoStaticHTML.jl](https://github.com/rikhuijzer/PlutoStaticHTML.jl), but using this to turn a bunch of Pluto notebooks into a book-style website doesn’t seem so streamlined. This is where I think Quarto has the advantage. If you are trying to create a book or website that feels like a book, Quarto in VSCode will be the better option. Quarto would also be a good option to write a research paper with code, but I think the [show your work project](https://github.com/showyourwork/showyourwork) is a more elegant approach and supports Julia. You could also checkout the [Books.jl](https://github.com/JuliaBooks/Books.jl) package.
