Coder Social home page Coder Social logo

mikael-ros / neobeam Goto Github PK

View Code? Open in Web Editor NEW
5.0 1.0 0.0 22.9 MB

A modern take on the LaTeX beamer theme, for Marp

Home Page: https://mikael-ros.github.io/neobeam/neobeam

License: MIT License

CSS 100.00%
beamer css html latex markdown marp marp-themes neobeam

neobeam's Introduction

✨️A modern take on LaTeX beamer

A Marp theme

Find the classic beamer outdated? Are your students losing focus due to it? 💤

I'm not sure how to solve the last one, but this theme is my attempt to address the first issue: too many a new presentation look decades old due to the classic look of beamer.

Note

Marp is a presentation framework that allows users to create presentations with Markdown and CSS. While this theme relies on Marp to be used, it is not directly affiliated with or sponsored by it.

Inspired by, but not affiliated with or sourced from, the Marp beam theme made by rnd195. As mentioned, I have not used any of their code to create this theme.

Disclaimer

Important

None of the following is legal advice. Consult a professional. This theme uses free-to-use fonts, and should be okay for personal use, but do conduct your own research before hosting any large presentation with it.

Consider the license of this project as well, and Marp itself.

All fonts used in the theme by default are imported from Google Fonts. Consider the privacy aspects of this yourself and choose wheter you want local installs of them or not. This was a choice made to enable direct linking of the theme to work.


📺 Previews

🔴 Live preview 🔴

Live previews for the other color schemes further down!

Static previews

NEObeam beamer
Neobeam Beamer

Image on the right courtesy of latextemplates.com. Will eventually be replaced by my own.

Main title

Main title preview

A slide with text

Text title preview

Science slides

Math Code
Math Code

Special elements

Images Tables
Images Tables

HTML styling

Note

This is optionally enabled! See features & quirks.

HTML styling

🖌️ Theme versions

Click on the theme to see a live preview

Theme Based on
neobeam
neobeam-beamer beamer color scheme
neobeam-dsek LTH D-sektionen design profile
neobeam-csek LTH C-sektionen design profile
neobeam-lund Lund University design profile

Some static previews

More are available in the repo!

Default beamer theme LTH D-sektionen LTH C-sektionen LTH/Lund University
Neobeam Beamer D-sek D-sek Lund

⌨️ Usage

Note

Until a future timepoint, I won't provide a guide on how to use it with Marp CLI, as I expect CLI users to be technical enough to know how to do this.

🛠 Prerequisites

  • Git or zip
  • Visual Studio Code
  • Marp Extension for Visual Studio Code

Tip

This font by default uses the fonts Roboto, Roboto Mono (for code) and Noto Sans Math (for math). These are imported in the CSS file, but you can aquire them yourself too, or change them out. In the LTH C-sektionen and D-sektionen themes, Roboto is switched out for Helvetica.

📥 In an existing presentation

  1. Download or copy the neobeam.css (or specific theme) file into your project OR use the direct link.
  2. Add it to your VSCode settings by editing your .vscode/settings.json file and appending:
  //...
  {
      "markdown.marp.themes": [
          //...
          "path/to/neobeam.css"
          //...
      ]
  }
  //...

where path/to/neobeam.css is either local, for example css/neobeam.css or the direct link to the repo's CSS file, ex: https://raw.githubusercontent.com/mikael-ros/neobeam/main/css/neobeam.css. Keep in mind that using the direct link might cause your presentation to change over time and it's best you have a local copy instead.

  1. Add it to your Marp presentation by adding:
marp: true
theme: neobeam
paginate: true
math: katex
footer: '**Author**
         **Title**
         **Conference/course/e.t.c.**'

The theme names are written as presented in the table in the previews section.

✨️ As a template

Simply clone or fork this repo or download the release. If you wish, you can delete the previews folder.

All themes are registered and ready in the template.


🪄 Features & quirks

Most things work like you'd expect, but there are some quirks to keep the cogs turning.

Title slide

I opted not to always treat the first slide as a title slide, so to declare a slide (any slide actually) a title slide, add the following before the content: <!-- _class: title -->.

Heres an example of a title slide. As long as you follow as similar format it should work. Theres also an optional logo slot for a University logo or similar.

<!-- _class: title -->
# Title

## Author

> ### Faculty
> University

## Conference/course/e.t.c.

![logo Logo](path/to/logo)

Headings

Instead of defininig a static header, one gets created by the first H1 (single #) in the slide.

Note

This is currently deprecated, but will come back in some form soon.

Footers

Every page has a footer. It's made from the footer content defined in the beginning of the presentation markdown, and the sections are split by using ** (to create children objects). The footer is a flex-box and I've made it split itself into three sections. You could likely with some modifications change this fairly easily.

Math

I've opted to use KaTeX, and have not styled for other options yet.

Definitions

To make LaTeX style bubble definitions I've had to do a slight work around to avoid using HTML in Marp. To define a definition, write the following:

    > #### Definition title
    > Definition description

The first 3 of these will have unique colors, but after that all of them will have the same. If you wish to add more, change the CSS-file around the blockquote:nth-of-type part of the stylesheet.

Image alignment

This stylesheet supports adding a tag in the alt text for left, center and right alignment. To define this, you would write something like: ![left (rest of the alt text)](path/to/image). Do note this might cause issues when using these words in your alt text in a normal sentence.

HTML support

There is light HTML support, including the elements:

  • <mark> (highlighting)
  • <q> (inline quotes)
  • <var> (variables)
  • <samp> (code output)
  • <audio> (audio)
  • <abbr> (abbreviations).

To enable HTML support add or modify the line "markdown.marp.enableHtml": true in .vscode/settings.json.

Warning

Considering the security issues mentioned in Marps documentation, this is disabled by default, even in the template. You may need to restart Visual Studio Code after changing the setting. You will need to export in HTML for interactive elements to function.


Feel free to contribute 💙

neobeam's People

Contributors

mikael-ros avatar

Stargazers

Cagri Gumuskaptan avatar Paulo Cunha avatar ztyu avatar Michael WANG Fei avatar Byungho avatar

Watchers

 avatar

neobeam's Issues

Add some common beamer themes

Preliminary list, based on this website.

I will only implement the trivial ones out of these

  • Default beamer
  • Darmstadt
  • Malmoe
  • AnnArbor
  • Dresden
  • Marburg
  • Antibes
  • Frankfurt
  • Montpellier
  • Bergen
  • Goettingen
  • PaloAlto
  • Berkeley
  • Hannover
  • Pittsburgh
  • Berlin
  • Ilmenau
  • Rochester
  • Boadilla
  • JuanLesPins
  • Singapore
  • CambridgeUS
  • Luebeck
  • Szeged
  • Copenhagen
  • Madrid
  • Warsaw

Offset table border

The table border is a couple px off, for some reason. Dependent on device as well.

Choose default font

It needs to be legible, but soft. Candidates are:

  • Roboto
  • ...

We also need a monospace font

Add max width to text

In the last slide, with the HTML, the fact that I forgot to set a max width is apparant. I will fix this when I have time, unless someone does it first.

Add deployment thingy

Not sure how to do this yet, but I want to add a section like I've seen on other repositories like:
image

Reimplement first heading becomes header

But this time, leave header functionality in, and make it so not just # heading becomes a header, but specifically # **heading**. This avoids preventing certain layouts, but also lets the raw markdown stay readable.

There should not be any reason why anyone would bold a heading anyway, is the idea, since afaik the heading is bold by default, which is why it would be a decent compromise for those seeking portability and readability.

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.