All Projects → masteranza → ScienceNotebooks

masteranza / ScienceNotebooks

Licence: GPL-2.0 license
Collection of tools and stylesheet for scientific writting and learning (through Anki)

Programming Languages

Mathematica
289 projects

Projects that are alternatives of or similar to ScienceNotebooks

anki-mode
An Emacs major mode for creating anki cards
Stars: ✭ 47 (+9.3%)
Mutual labels:  flashcards, anki
Polar Bookshelf
Polar is a personal knowledge repository for PDF and web content supporting incremental reading and document annotation.
Stars: ✭ 4,411 (+10158.14%)
Mutual labels:  flashcards, anki
vocage
A minimalistic spaced-repetion vocabulary trainer (flashcards) for the terminal
Stars: ✭ 68 (+58.14%)
Mutual labels:  flashcards, anki
ForgetMeNot
A flashcard app for Android.
Stars: ✭ 234 (+444.19%)
Mutual labels:  flashcards, anki
Kb
A minimalist command line knowledge base manager
Stars: ✭ 2,789 (+6386.05%)
Mutual labels:  knowledge, notebook
2anki.net
Server to create Anki flashcards faster, easier and better today ⭐️
Stars: ✭ 190 (+341.86%)
Mutual labels:  flashcards, anki
Anki Android
AnkiDroid: Anki flashcards on Android. Your secret trick to achieve superhuman information retention.
Stars: ✭ 4,425 (+10190.7%)
Mutual labels:  flashcards, anki
AnnA Anki neuronal Appendix
Using machine learning on your anki collection to enhance the scheduling via semantic clustering and semantic similarity
Stars: ✭ 39 (-9.3%)
Mutual labels:  flashcards, anki
Mindforger Repository
MindForger documentation repository.
Stars: ✭ 221 (+413.95%)
Mutual labels:  knowledge, notebook
Tiddlyresearch
Local and Anki-compatible note-taking tool based on TiddlyWiki
Stars: ✭ 129 (+200%)
Mutual labels:  knowledge, anki
anki-md
A markdown to anki flash cards converter
Stars: ✭ 22 (-48.84%)
Mutual labels:  flashcards, anki
AnkiSharp
Create anki decks and cards from your C# application
Stars: ✭ 39 (-9.3%)
Mutual labels:  flashcards, anki
files2flashcards
Keep your flashcards rooted in the context of your notes
Stars: ✭ 28 (-34.88%)
Mutual labels:  flashcards, anki
anki-add-hooks-userscripts
Automate Anki card creation from popular translation websites
Stars: ✭ 17 (-60.47%)
Mutual labels:  flashcards, anki
speed-focus-mode
Speed Focus Mode add-on for Anki
Stars: ✭ 19 (-55.81%)
Mutual labels:  flashcards, anki
chinese-support-redux
Anki add-on providing support for Chinese study
Stars: ✭ 88 (+104.65%)
Mutual labels:  flashcards, anki
Mindforger
Thinking notebook and Markdown editor.
Stars: ✭ 1,695 (+3841.86%)
Mutual labels:  knowledge, notebook
mnemocards
In addition to helping you memorise, this code helps you do other things that I don't remember...
Stars: ✭ 34 (-20.93%)
Mutual labels:  flashcards, anki
mpvacious
Adds mpv keybindings to create Anki cards from movies and TV shows.
Stars: ✭ 286 (+565.12%)
Mutual labels:  flashcards, anki
obsidian-spaced-repetition
Fight the forgetting curve by reviewing flashcards & entire notes on Obsidian.md
Stars: ✭ 667 (+1451.16%)
Mutual labels:  flashcards

ScienceNotebooks - beta (former Mathematica Anki 2.0)

Warning this project is currently under overhaul.

Note: Currently keyboard shortcuts work on Mac only.

The project consists of Mathematica stylesheet and two subpackages:

  • TeXExport (for exporting TeX files from notebooks)
  • AnkiExport (for exporting Anki cloze cards from notebooks)

Purpose

The aim of this project is to use the amazing capabilities of Mathematica to create universal notebooks which can be used not only for calculations, but also for:

  • collecting knowledge in decently styled notebooks (through Science stylesheet)
  • reviewing structured knowledge (through integrated AnkiExporter)
  • fast-drafting scientific papers (through integrated TeXExporter)

The side effects of this project are that your knowledge collected in Anki is no longer 'loose'. It belongs to the notebook and is identified by them (through CellID), hence can be continuously updated by updating the notebook. Moreover, each Anki card acquires context from the location in the notebook and each deck acquires context from the notebook location under the root (Knowledge) directory. On the other hand, thanks to Zotero integration the notebooks are linked with references ("fixing" the citation problem in Mathematica on Mac).

Prerequisites

  1. Mathematica
  2. Anki
  3. AnkiConnect (anki plugin)
  4. Zotero

Installation and usage

Some of the steps can be omitted, but will result in minor issues/ decrease in functionality. The most essential steps enumerated. However consider doing all the steps to go 'all-in'.

  • General
    • Install Latin Modern fonts from the Resources folder on your system for the best experience.
    1. Download the latest paclet
    2. Run PacletInstall@"path/to/paclet" in Mathematica.
    3. Open Mathematica SetOptions[$FrontEnd, CreateCellID -> True]. Make sure you don't forget about this step - otherwise we won't be able to identify Anki notes with Mathematica cells.**
    4. Create a root Knowledge folder with mkdir ~/Dropbox/Knowledge. (You could make it anywhere, but would need to change the path in the paclet, sorry):
    • Run CurrentValue[$FrontEnd, "DefaultStyleDefinitions"] = "Science.nb"; this will not only set the default stylesheet, but also ensures that figures exported with the built in TeX Exporter will work properly.
    • In Mathematica, Preferences -> Messages set Kernel Messages to Print to Console it make notebooks more tidy by printing errors and logs to a seperate notebook.
  • Zotero
  • Anki
    • Import Anki cloze note type Anki/MathematicaCloze.apkg to Anki.
  • (Optional) Run the command: SetOptions[$FrontEnd, InputAliases -> Join[InputAliases /. Options[$FrontEnd, InputAliases], {"at" -> TemplateBox[{"\[SelectionPlaceholder]", "Automatic", "\[Placeholder]", "\[Placeholder]"}, "EvaluatedAt", DisplayFunction -> (SubsuperscriptBox[ RowBox[{#1, StyleBox["\[VerticalLine]", SpanMinSize -> 1.5, SpanSymmetric -> False]}], RowBox[{"\[MediumSpace]", #3}], RowBox[{"\[MediumSpace]", #4}]] &)]}]] once. To add the notion of "values at limit" in formatted cells

Test ride

In what follows you'll see an example employing the core capabilities.

  1. We start of with manually creating an example directory structure under Knowledge folder and an empty notebook.

Path

  1. Like usual, type in your
    • Title cell CMD+1
    • Section cell CMD+2
    • Text cell CMD+7 with a styled inline cells CTRL+9
    • EquationNumbered cell CMD+6

Path

  1. At this level of complexity the notebook can be compiled (through TeXExporter) to pdf directly. Press TeX button from the toolbar and choose Quick PDF. For more control go to More on TeXExporter.

Path

  1. Add a tag to equation with CMD+J and reference it in text by writing the name of the tag and pressing CTRL+E.

Path

  1. Copy a Zotero reference with CMD+SHIFT+C and insert it by pressing CTRL+Z

Path

  1. To generate a TeX file (or PDF) with bib references you need to save the .bib file from Zotero (preferably with Better BibTeX) next to the notebook and use the explicit export command ExportToTeX[TeXBibFile -> "BibFileName"] then open the .tex file and compile the project. Now you can do this faster (and have control over all the options) by pressing TeX -> Custom from the toolbar. This will insert the full expression in the beginning of your notebook.

  2. As a final example export something to Anki. This is done by marking the cell content with a keyboard shortcut CMD+D and pressing the Anki button while the Anki app is open. After the export is done you can start reviewing your material.

Path

Here we use a fancy cell style (you can use a regular text cell as well) by pressing CMD+4 and TAB repeatedly.

Anki highlights will be ignored when exporting to TeX.

The commands for Anki highlighting, Zotero referencing and referencing equations (also any other content!) are available in the Mathematica Insert menu.

The complete notebook together with exported example .tex file and .pdf file can be found in Example folder.

Figures in notebooks

Drafting TeX documents often involves captioned figures. You can create them very quickly by using the Figure function. Which will automatically use the variable name as CellTag for referencing the equation.

Path

If you'd run Figure@Plot[x, {x, 1, 3}]; directly, Mathematica would invent a two word tag for you, like "DistalHemps", which you can also use for referencing.

Figures get automatically updated without destroying the caption. Even if the figure (and the caption) are away from the Figure function that generates it.

More on TeXExporter

Example command to control the TeX export:

ExportToTeX[TeXExportToPDF -> False,
TeXEmbedRefrencesBeforeExport -> False,
TeXWriteTOC -> False,
TeXBibFile -> "BibFileName",
TeXWriteAuthors -> False,
TeXWriteDate -> False,
TeXWriteTitle -> False,
TeXCustomCommands -> "\\setlength\\parindent{0pt}",
TeXLanguage -> None,
TeXShowLabels -> False,
TeXSetMargin -> "0.7in",
TeXLineSpread -> "1.15",
TeXFitEquations -> True]

Here the "BibFileName" is the name of the BibFileName.bib file which ought to be located in the same directory.

Try inserting Author and Affiliation cells under the title, and export using ExportToTeX[TeXWriteAuthors -> True]

Styles supported by AnkiExporter and TeXExporter

Not all cells get exported to Anki currently supported include:

  • Text
  • EquationNumbered
  • Equation
  • Figure
  • Item1, Item2, Item3
  • Item1Numbered, Item2Numbered, Item3Numbered
  • Example, Exercise, Solution
  • Question, Remark, Comment, FunFact
  • Theorem, Proof, Axiom, Definition, Lemma

Troubleshooting and notes

Highlighting shortcut appears not to work when caps-lock is enabled. Someone might think that CMD+SHIFT+D will do the job and try to press it... and then BANG! You've just learned that it doesn't work, but instead splits the selected text into another cell - useful. Serendipity.

Acknowledgements

The project relies heavily on the stuff found on http://mathematica.stackexchange.com/ hence, I don't own the credit for many of the functions which I merely customized.

Special thanks to @KubaPod for all the help along the way!

Note that the project description data, including the texts, logos, images, and/or trademarks, for each open source project belongs to its rightful owner. If you wish to add or remove any projects, please contact us at [email protected].