我有四个数学函数定义,我想将它们居中,以便函数名称从同一点开始,并且在冒号之后,在定义域和范围之前有一些空格。目前,我有这个代码段:
\documentclass{paper}
\begin{document}
\begin{center}
$\mathsf{Gen}: \mathbb{N} \rightarrow \mathcal{K}_p \times \mathcal{K}_s \times \mathcal{K}_e$
$\mathsf{Enc}: \mathcal{K}_p \times \mathcal{P} \rightarrow \mathcal{X}$
$\mathsf{Dec}: \mathcal{K}_s \times \mathcal{Z} \rightarrow \mathcal{P}$
$\mathsf{Eval}: \mathcal{K}_e \times \mathcal{C} \times \mathcal{Z^*} \rightarrow \mathcal{Y}$
\end{center}
\end{document}
但这会导致输出失真。我希望输出如下所示:
有什么想法可以实现吗?请注意,整个方程组也应位于页面的中心。
答案1
也许align
\documentclass{paper}
\usepackage{amsmath,amsfonts}
\begin{document}
\begin{align*}
\mathsf{Gen}:&& \mathbb{N} &\rightarrow \mathcal{K}_p \times \mathcal{K}_s \times \mathcal{K}_e\\
\mathsf{Enc}:&& \mathcal{K}_p \times \mathcal{P} &\rightarrow \mathcal{X}\\
\mathsf{Dec}:&& \mathcal{K}_s \times \mathcal{Z} &\rightarrow \mathcal{P}\\
\mathsf{Eval}:&& \mathcal{K}_e \times \mathcal{C} \times \mathcal{Z^*} &\rightarrow \mathcal{Y}
\end{align*}
\end{document}
答案2
一种是带有 align 的变体,另一种是带有 的变体alignat
:
\documentclass{paper}
\usepackage{amsmath,amsfonts}
\begin{document}
\begin{align*}
& \mathsf{Gen}: & \mathbb{N} & → \mathcal{K}_p × \mathcal{K}_s × \mathcal{K}_e & & \\
& \mathsf{Enc}:& \mathcal{K}_p × \mathcal{P} & → \mathcal{X}\\
& \mathsf{Dec}:& \mathcal{K}_s × \mathcal{Z} & → \mathcal{P}\\
& \mathsf{Eval}:& \mathcal{K}_e × \mathcal{C} × \mathcal{Z^*} & → \mathcal{Y}
\end{align*}
\begin{alignat*}{2}
& \mathsf{Gen}: & \hspace{5em} & \mathbb{N} → \mathcal{K}_p × \mathcal{K}_s × \mathcal{K}_e \\
& \mathsf{Enc}: & & \mathcal{K}_p × \mathcal{P} → \mathcal{X} \\
& \mathsf{Dec}: & & \mathcal{K}_s × \mathcal{Z} → \mathcal{P} \\
& \mathsf{Eval}: & & \mathcal{K}_e × \mathcal{C} × \mathcal{Z^*} → \mathcal{Y}
\end{alignat*}
\end{document}
答案3
以下是我的做法:
\documentclass{paper}
\usepackage{amsmath}
\usepackage{amsfonts}
\newcommand*\name[1]{\text{$\mathsf{#1}$:}}
\newcommand*\letter[1]{\mathcal{#1}}
\begin{document}
\begin{alignat*}{2}
&\name{Gen} & \mathbb{N} \times \letter{A} &\to \letter{K}_{p} \times \letter{K}_{s} \times \letter{K}_{e},\\
&\name{Enc} & \letter{K}_{p} \times \letter{P} &\to \letter{X},\\
&\name{Dec} & \letter{K}_{s} \times \letter{Z} &\to \letter{P},\\
&\name{Eval} &\qquad \letter{K}_{e} \times \letter{C} \times \letter{Z}^{\ast} &\to \letter{Y}.
\end{alignat*}
\end{document}
注意删除单词/缩写和冒号之间的空格。