我希望在 LaTeX 中创建一个“表格”或类似的东西,在其中显示一个自然数与其他自然数之间的对应关系/映射,如下图所示(请原谅这个画得很糟糕的示例):
换句话说,“一映射到零,二映射到一...”等等。但是,我不确定如何在 LaTeX 中做到这一点。
有人能帮我一下如何在 LaTeX 环境中排版类似这样的内容吗?
答案1
也可以使用一个使用matrix
;的选项,但您不必指定列的数量和格式:array
matrix
\documentclass{article}
\usepackage{amsmath}
\begin{document}
\[
\begin{matrix}
0 & 1 & 2 \\
\updownarrow & \updownarrow & \updownarrow \\
2 & 3 & 1
\end{matrix}
\]
\end{document}
正如已经指出的,箭头周围的垂直空间似乎有点不均匀:箭头上方的空间比下方的空间大,因此可以轻松修复它:
\documentclass{article}
\usepackage{amsmath}
\newcommand\UpDownarrow[1][0.2ex]{
\raisebox{#1}[0pt][0pt]{$\updownarrow$}
}
\begin{document}
\[
\begin{matrix}
0 & 1 & 2 \\
\UpDownarrow & \UpDownarrow & \UpDownarrow \\
2 & 3 & 1
\end{matrix}
\]
\end{document}
仅供记录,版本array
:
\documentclass{article}
\usepackage{amsmath}
\begin{document}
\[
\begin{array}{ccc}
0 & 1 & 2 \\
\updownarrow & \updownarrow & \updownarrow \\
2 & 3 & 1
\end{array}
\]
\end{document}
答案2
这可能看起来有点小题大做,但可能是一种很好的概括方式。
\documentclass{scrartcl}
\usepackage{mathtools,tikz}
\usetikzlibrary{matrix}
\begin{document}
\[
\begin{tikzpicture}
\matrix[name=m,matrix of math nodes,column sep=1em,row sep=1em]
{0 & 1 & 2 \\ 2 & 3 & 1 \\};
\draw[<->] (m-1-1) -- (m-2-1);
\draw[<->] (m-1-2) -- (m-2-2);
\draw[<->] (m-1-3) -- (m-2-3);
\end{tikzpicture}
\]
\end{document}
PS:如果您加载\usetikzlibrary{arrows.meta}
它,默认情况下可能会提供更好的箭头。
答案3
还有另一种tikz
解决方案,但在这里我使用了一个\foreach
循环:
\documentclass{article}
\usepackage{tikz}
\newcommand\aestrut{\rule[-0.5ex]{0pt}{2ex}}
\begin{document}
\begin{tikzpicture}[my node/.style={anchor=base}]
\foreach[count=\myi from 0] \mya/\myb in {0/1,1/2,2/3,h/g,e/j,j/k}
{
\node[my node] (A\myi) at (\myi,1) {\aestrut\mya};
\node[my node] (B\myi) at (\myi,0) {\aestrut\myb};
\draw[arrows=<->] (A\myi) -- (B\myi);
}
\end{tikzpicture}
\end{document}
设置起来有点困难,但一旦设置完成,就可以很容易地在对应关系中添加或删除对:只需从in {.....}
以 分隔的组中添加(或删除)对即可/
。
答案4
PSTricks 解决方案:
\documentclass{article}
\usepackage{multido,pstricks}
\def\Map(#1)#2#3{%
\psline{<->}(#1,0)(#1,1)
\rput(#1,-0.3){#2}
\rput(#1,1.3){#3}}
% parameter
\def\arrows{3}
\begin{document}
\begin{pspicture}(0.95,-0.4)(\arrows.05,1.4) % boundry found manually
\multido{\iA = 0+1, \iB = 1+1}{\arrows}{\Map(\iB){$\iA$}{$\iB$}}
\end{pspicture}
\end{document}
您所要做的就是选择值\arrows
,然后绘图将进行相应的调整。