All Projects → ischurov → qqmbr

ischurov / qqmbr

Licence: MIT license
Mathematical layout for web and paper

Programming Languages

python
139335 projects - #7 most used programming language
HTML
75241 projects
Dockerfile
14818 projects

Projects that are alternatives of or similar to qqmbr

Allkit
🛠 Async List Layout Kit
Stars: ✭ 40 (+0%)
Mutual labels:  layout-engine
Pinlayout
Fast Swift Views layouting without auto layout. No magic, pure code, full control and blazing fast. Concise syntax, intuitive, readable & chainable. [iOS/macOS/tvOS/CALayer]
Stars: ✭ 1,870 (+4575%)
Mutual labels:  layout-engine
Panda
Panda is an asynchronous render and layout framework which can be used to achieve high performance tableview.
Stars: ✭ 177 (+342.5%)
Mutual labels:  layout-engine
Framelayoutkit
FrameLayoutKit is a super fast and easy to use autolayout kit
Stars: ✭ 53 (+32.5%)
Mutual labels:  layout-engine
Flexlayout
FlexLayout adds a nice Swift interface to the highly optimized facebook/yoga flexbox implementation. Concise, intuitive & chainable syntax.
Stars: ✭ 1,342 (+3255%)
Mutual labels:  layout-engine
Htmlrenderer
C# HTML Layout and HTML Rendering Engine
Stars: ✭ 143 (+257.5%)
Mutual labels:  layout-engine
Corerender
Moved to https://github.com/alexdrone/Render
Stars: ✭ 25 (-37.5%)
Mutual labels:  layout-engine
Core Layout
Flexbox & CSS-style Layout in Swift.
Stars: ✭ 215 (+437.5%)
Mutual labels:  layout-engine
Nehan.js
Latest version -> https://github.com/tategakibunko/nehan
Stars: ✭ 119 (+197.5%)
Mutual labels:  layout-engine
D3 Layout Narrative
A d3 layout for creating XKCD style narrative charts
Stars: ✭ 168 (+320%)
Mutual labels:  layout-engine
Proteus
Proteus : A JSON based LayoutInflater for Android
Stars: ✭ 1,179 (+2847.5%)
Mutual labels:  layout-engine
Emeus
Constraint-based layout manager for GTK+
Stars: ✭ 84 (+110%)
Mutual labels:  layout-engine
Muuri React
The layout engine for React
Stars: ✭ 163 (+307.5%)
Mutual labels:  layout-engine
Nidium
nidium is an ongoing effort for a mobile hw-accelerated rendering engine to create apps and games. Embedding Mozilla JavaScript VM, Google Skia, Facebook Yoga. https://twitter.com/nidiumproject for updates
Stars: ✭ 1,057 (+2542.5%)
Mutual labels:  layout-engine
Render
UIKit a-là SwiftUI.framework [min deployment target iOS10]
Stars: ✭ 2,150 (+5275%)
Mutual labels:  layout-engine
Autolayout.js
Apple's Auto Layout and Visual Format Language for javascript (using cassowary constraints)
Stars: ✭ 975 (+2337.5%)
Mutual labels:  layout-engine
Grandalf
graph and drawing algorithms framework
Stars: ✭ 135 (+237.5%)
Mutual labels:  layout-engine
ViewBuilder
Fully document based declarative way for building UI with a custom and more performant layout.
Stars: ✭ 14 (-65%)
Mutual labels:  layout-engine
Komponents Deprecated
📦 React-inspired UIKit Components - ⚠️ Deprecated
Stars: ✭ 202 (+405%)
Mutual labels:  layout-engine
Mesh
A toolkit for Kinetic Web Typography
Stars: ✭ 167 (+317.5%)
Mutual labels:  layout-engine

qqmbr

Mathematical layout for web and paper

qqmbr is a publishing engine for mathematical texts that aims on different media: web, mobile and paper.

Highlights

  • Clean syntax, based on indentml markup. It's a mixture of Python-style indent-based blocks and LaTeX-style commands beginning with backslash, see code samples below.
  • Excellent equation support on web and mobile, thanks to MathJax.
  • All what you need to structure your text: different levels of headers, environments (theorem, lemma and so on).
  • References by labels.
  • Preview of equations and definitions on hover (a.k.a. snippets, see example here, look for «Задача Коши»)).
  • Interactive quizes, (see example here).
  • Programmatically generated images embedding (matplotlib and plotly).

View in action

You can look at my Lecture Notes on ODE sources (see e.g. this qqmbr source and its HTML render, in Russian) or at the code sample below.

You can also play with a limited subset of qqmbr features in a live demo.

Inspiration

qqmbr was inspired by various projects and conceptions:

  • TeX and LaTeX for math and backslashes.
  • Python for the importance of indents (and qqmbr is written in Python!);
  • YAML for indent-based markup language;
  • DocOnce for one source to any media approach and some ideas on realization;
  • S-expressions for simplicity (why they have attributes in XML?).

TODO

The following features are on the to-do list:

  • QqLaTeXFormatter that converts qqmbr source code to LaTeX.
  • more layout features:
    • more math environments (gather, multline and so on);
    • admonitions (boxes for warning, notice, question, etc.), like in DocOnce;

You are welcome to participate with pull requests and issue-reporting.

Code sample

This is an example of qqmbr markup. See the live demo.

\chapter Euler's formula
\section Complex numbers \label sec:comlex

One can introduce \em{complex numbers} by considering so-called \em{imaginary unit} $i$, such that:
\equation \label eq:i
    i^2 = -1.
\definition
    \emph{Complex number} is a number of a form $x+iy$, where $x, y \in \mathbb R$.

\section Exponent of complex number \label sec:exp
\theorem \label thm:1
    Let $x$ be real number. Then
    \equation \label eq:main
        e^{ix} = \cos x+i\sin x.
\proof
    Let us recall series for exponent, sine and cosine:
    \align
        \item \label eq:series-exp
            e^z &= 1 + z + \frac{z^2}{2} + \frac{z^3}{3!} + \ldots = \sum_{k=0}^\infty \frac{z^k}{k!}
        \item \label eq:series-sin
            \sin z &= z - \frac{z^3}{3!} + \frac{z^5}{5!} - \frac{z^7}{7!} + \ldots
        \item \label eq:series-cos
            \cos z &= 1 - \frac{z^2}{2} +\frac{z^4}{4!} - \frac{z^6}{6!} + \ldots
    It follows from \ref{eq:i} that
    \eq
        i^k=\begin{cases}
            1 & \text{for } k = 4m\\\\
            i & \text{for } k = 4m+1\\\\
            -1 & \text{for } k = 4m+2\\\\
            -i & \text{for } k = 4m+3
            \end{cases}
    Let us put $z=ix$ into \ref{eq:series-exp}. For even $k$, $(ix)^k$ is real and for odd $k$ it is imaginary. Moreover, the sign alternates when one pass to the next term. It follows immediately that the real part of \ref{eq:series-exp} is equal to \ref{eq:series-sin} and the imaginary part is equal to \ref{eq:series-cos} with substitution $z=ix$.

    This finished the proof of \ref[Euler's formula\nonumber][thm:1].

\chapter Corollary

It follows from \ref[Theorem][thm:1] from \ref[Section][sec:exp] that
\eq
    \sin x = \frac{e^{ix}-e^{-ix}}{2i}.
Therefore,
\align
    \item \nonumber
        \sin 2x &= \frac{e^{2ix}-e^{-2ix}}{2i} = \frac{1}{2i}((e^{ix})^2-(e^{-ix})^2)=
    \item \nonumber
        &\frac{1}{2i}(e^{ix}-e^{-ix})(e^{ix}+e^{-ix})=2\sin x \cos x.

\question
    Express $\cos x$ in terms of exponents. (Click on pencil to check the correct answer.)
    \quiz
        \choice
            $(e^{ix}+e^{-ix})/(2i)$
            \comment
                No, this is complex number!
        \choice \correct
            $(e^{ix}+e^{-ix})/2$
            \comment
                Yes! That's right!
        \choice
            $(e^{ix}-e^{-ix}))/(2)$
            \comment
                No, that's $-i\sin x$.

\exercise
    Express $\cos 2x$ in terms of $\sin x$ and $\cos x$.
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].