Crates.io | nalgebra_latex |
lib.rs | nalgebra_latex |
version | 0.1.22 |
source | src |
created_at | 2022-06-07 11:35:28.166908 |
updated_at | 2022-07-20 14:48:31.879484 |
description | A library with several robust formatters for nalgebra::Matrix, LaTeX environments, and more |
homepage | |
repository | https://github.com/JohnScience/nalgebra_latex |
max_upload_size | |
id | 601454 |
size | 101,733 |
nalgebra
extension for LaTeXThe 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
.
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}$$");
nalgebra
?nalgebra
is a general-purpose linear algebra library with transformations and statically-sized or dynamically-sized matrices.
LaTeX is a language for typesetting documents, especially scientific papers, and a document preparation system.
% ...
\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}
% ...
The library is overhauled. It changes frequently and the documentation is not always available. Doc tests (examples in the documentation) generally show working code.