Ecosyste.ms: Awesome
An open API service indexing awesome lists of open source software.
https://github.com/st--/annotate-equations
LaTeX package and annotated examples for annotating equations using TikZ.
https://github.com/st--/annotate-equations
annotations equations latex
Last synced: 6 days ago
JSON representation
LaTeX package and annotated examples for annotating equations using TikZ.
- Host: GitHub
- URL: https://github.com/st--/annotate-equations
- Owner: st--
- License: mit
- Created: 2022-02-08T12:12:19.000Z (almost 3 years ago)
- Default Branch: main
- Last Pushed: 2024-10-09T15:24:31.000Z (4 months ago)
- Last Synced: 2025-01-19T02:08:33.504Z (13 days ago)
- Topics: annotations, equations, latex
- Language: TeX
- Homepage:
- Size: 949 KB
- Stars: 487
- Watchers: 6
- Forks: 19
- Open Issues: 7
-
Metadata Files:
- Readme: README.md
- License: LICENSE
Awesome Lists containing this project
README
# Annotate equations in LaTeX using TikZ
( [Documentation](annotate-equations.pdf) | License: [MIT](LICENSE) | [CTAN](https://ctan.org/pkg/annotate-equations) )
This package provides commands that make it easy to highlight terms in equations & add annotation labels (based on TikZ).
Tested with pdflatex and lualatex, but should work with most other LaTeX engines such as xelatex as well.Inspired by Sibin Mohan's https://github.com/synercys/annotated_latex_equations/
Please report any bugs, issues, contribute changes & improvements on https://github.com/st--/annotate-equations/ :)
Package author: ST John, http://www.infinitecuriosity.org/
## A package with reusable commands
![rendering of annotated equation](examples/example_annotation_package.png)
Using [`annotate-equations.sty`](https://github.com/st--/annotate-equations/blob/main/annotate-equations.sty), an equation can easily be annotated as follows:
```latex
\begin{equation*}
\mathcal{O}\big(
(
\eqnmarkbox[NavyBlue]{p1}{p}
\eqnmarkbox[OliveGreen]{k1}{\kappa}^3 % note that we have the ^3 outside the \eqnmark/\tikzmarknode arguments
)
\eqnmarkbox[WildStrawberry]{T1}{T}
+
(
\eqnmarkbox[NavyBlue]{p2}{p} % tikz nodes need distinct names!
\eqnmark[OliveGreen]{k2}{\kappa}
)
(
\eqnmarkbox[WildStrawberry]{T2}{T}^2
\tikzmarknode{Is}{|\mathcal{I}^*|} % manual \tikzmarknode works, too
\eqnmarkbox[Plum]{Nb}{N_b}
\eqnmark[RoyalPurple]{M}{M}
)
\big)
\end{equation*}
\annotatetwo[yshift=1em]{above}{p1}{p2}{\# of nodes}
\annotatetwo[yshift=-1em,xshift=0.2ex]{below}{T1}{T2}{\# of graphs in $\hat{\mathcal{G}}_T$}
\annotatetwo[yshift=-2em]{below}{k1}{k2}{max.\ indegree in $\hat{\mathcal{G}}_T$}
\annotate[yshift=3em]{above,left}{Is}{size of set of allowed interventions}
\annotate[yshift=1em]{above}{Nb}{\# of samples per batch}
\annotate[yshift=-1em]{below}{M}{\# of samples for $\mathbb{E}_y$}
```More details are in the [user manual](annotate-equations.pdf).
Should work with both pdflatex and lualatex.## How to do it from scratch: annotated examples
![rendering of annotated equation](examples/example_annotation.png)
Inspired by Sibin Mohan's https://github.com/synercys/annotated_latex_equations/, but with significantly simplified TikZ code, and with lots of comments to explain what is going on.
Two versions, one [as Beamer slides with transitions](https://github.com/st--/annotate-equations/blob/main/examples/demo_manual_annotate_beamer.tex), one [as an article](https://github.com/st--/annotate-equations/blob/main/examples/demo_manual_annotate_article.tex). For further examples, see https://github.com/synercys/annotated_latex_equations/.
### Giving all highlight boxes the same height
Simply add a `\mathstrut` within the colorbox:
```diff
-\newcommand{\highlight}[2]{\colorbox{#1!17}{$#2$}}
+\newcommand{\highlight}[2]{\colorbox{#1!17}{$\mathstrut #2$}}
```![rendering of annotated equation with equal-height highlights](examples/example_annotation_equal_height.png)
## Much more information...
...in the answers to [this TeX StackExchange question](https://tex.stackexchange.com/q/254844/171664).