Crate nalgebra_latex
source · [−]Expand description
nalgebra
extension for LaTeX
The crate provides several robust formatters for nalgebra::Matrix
as well as
several LaTeX environments for customization.
On top of that, the crate offers feature-gated support for nalgebra_linsys
and evcxr
.
Example
use nalgebra::matrix;
use nalgebra_latex::{
fmt::{write_latex, PlainMatrixFormatter, LatexFormatter},
latex_modes::{InlineMathMode, DisplayMathMode, InnerParagraphMode},
};
let mut s = String::new();
let m = matrix!(
1,2,3,4;
5,6,7,8;
9,10,11,12;
);
write_latex::<PlainMatrixFormatter,InnerParagraphMode,InlineMathMode,_,_>(&mut s, &m).unwrap();
assert_eq!(s, r"$\begin{matrix}1&2&3&4\\5&6&7&8\\9&10&11&12\end{matrix}$");
s.clear();
write_latex::<PlainMatrixFormatter,InnerParagraphMode,DisplayMathMode,_,_>(&mut s, &m).unwrap();
assert_eq!(s, r"$$\begin{matrix}1&2&3&4\\5&6&7&8\\9&10&11&12\end{matrix}$$");
What is nalgebra
?
nalgebra
is a general-purpose linear algebra library with transformations and statically-sized or dynamically-sized matrices.
What is LaTeX?
LaTeX is a language for typesetting documents, especially scientific papers, and a document preparation system.
Example of .tex code
% ...
\subsection*{H}
\glossaryentry{hadamard_product}{Hadamard product}
\begin{adjustwidth}{1em}{}
\textbf{Field of study}: \textit{Mathematics. Linear Algebra. Matrix theory.} \\
\textbf{Distinct meanings in other fields of study}: \textit{unspecified.} \\
\textbf{Definitions}:
\begin{adjustwidth}{1em}{} \leavevmode
\begin{framed}
For two \hyperlink{matrix}{\textit{matrices}} $A$ and $B$ of the same \hyperlink{dimension_of_matrix}{\textit{dimension}} $m \times n$, the \beingdefined{Hadamard product} $A \circ B$ (or $A \odot B$) is a \hyperlink{matrix}{\textit{matrix}} of the same \hyperlink{dimension_of_matrix}{\textit{dimension}} as the operands, with elements given by
\begin{equation*}
(A \circ B)_{ij} = (A \odot B)_{ij} = (A)_{ij}(B)_{ij}.
\end{equation*}
Source: \cite{wiki_hadamard_product_matrices}.
\end{framed}
\begin{framed}
Let $A$ and $B$ be $m \times n$ \hyperlink{matrix}{\textit{matrices}} with entries in $C$. The \beingdefined{Hadamard product} is defined by $[A \circ B]_{ij}=[A]_{ij}[B]_{ij}$ for all $1 \leq i \leq m$, $1 \leq j \leq n$. \\ \vspace{1em}
Source: \cite{emillion}.
\end{framed}
\end{adjustwidth}
\end{adjustwidth} \vspace{1em}
% ...
Output
Warning
The library is overhauled. It changes frequently and the documentation is not always available. Doc tests (examples in the documentation) generally show working code.
Resources on LaTeX
Other useful links
License
Licensed under either of Apache License, Version 2.0 or MIT license at your option.Unless you explicitly state otherwise, any contribution intentionally submitted for inclusion in this crate by you, as defined in the Apache-2.0 license, shall be dual licensed as above, without any additional terms or conditions.
Modules
A module offering a number of contents-unaware matrix LaTeX environments. Useful primarily for customization.
A module offering a number of contents-aware matrix LaTeX formatters for nalgebra
as well as write_latex
function to rule them all.
hyperref
Module with types representing LaTeX modes and with traits of those types.
lin_sys
Module with types and traits for nalgebra_linsys
Macros
A macro for relatively convenient writing of LaTeX code.