#latex #matrix #nalgebra #linear-algebra

无需std nalgebra_latex

一个包含几个强大的nalgebra::Matrix、LaTeX环境和更多格式化工具的库

23个版本

0.1.22 2022年7月20日
0.1.21 2022年7月19日
0.1.4 2022年6月26日

#416 in 数学

MIT/Apache

105KB
1K SLoC

crates.io crates.io

nalgebra的LaTeX扩展

该包为nalgebra::Matrix提供了几个强大的格式化工具,以及一些自定义的LaTeX环境。

此外,该包还提供对nalgebra_linsysevcxr的功能性支持。

示例

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是一个通用的线性代数库,具有转换和静态大小或动态大小的矩阵。

LaTeX是什么?

LaTeX是一种用于排版文档的语言,尤其适用于科学论文,是一个文档准备系统。

.tex代码示例

% ...
\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}
% ...

输出

tex output

警告

该库已重写。它经常更改,文档不总是可用。文档测试(文档中的示例)通常显示正常代码。

关于LaTeX的资源

许可证

根据您的选择,许可协议为Apache License,版本2.0MIT许可
除非您明确声明,否则您有意提交的任何贡献,根据Apache-2.0许可协议,应按上述方式双重许可,不附加任何额外条款或条件。

依赖项

~4.5MB
~93K SLoC