我想在 LaTeX 中创建以下图片。我该怎么做?
答案1
希望这可以作为 OP 学习的起点。此处的提议使用数组,您可以指定需要多少列,例如,使用cccc
4 列居中,然后用 & 分隔每列,并用 \ 结束行。
代码
\documentclass[12pt]{article}
\usepackage[margin=1cm,paper size={15cm,8cm}]{geometry}
\usepackage{amsmath,amssymb}
\thispagestyle{empty}
\begin{document}
\[
\begin{array}{lccccccccccccc}
m: & & & 0 & 0 & 0 & 0 & 1 &0 &0 & 0 & 0 & & \\
d(1)=0 &-1 & 2 & 1 & & & & & & & & & & \\
d(2)=0 & & &-1 & 2 & 1 & & & & & & & & \\
d(3)=0 & & & &-1 & 2 & 1 & & & & & & & \\
$\ldots\ldots$ & & & & & & & $\ldots$ & & & & \\
d(5)=1 & & & & & & & &$\ldots$ & & & & & \\
$\ldots\ldots$ & & & & & & & & & $\ldots$ & &\\
d(11)=0 & & & & & & & & & & & -1 & 2 & 1 \\
\end{array}
\]
\end{document}
编辑:芭芭拉·比顿 (barbara beeton) 推荐了一种正确的解决方案。
代码:
\documentclass[12pt]{article}
\usepackage[margin=1cm,paper size={16cm,8cm}]{geometry}
\usepackage{amsmath,amssymb}
\thispagestyle{empty}
\begin{document}
\[
\begin{array}{lrrrrrrrrrrrrr}
m: & & & 0 & 0 & \phantom{-}0 & \phantom{-}0 & 1 &0 &0 & \phantom{-}0 & 0 &&\\
d(1)=0 &-1 & \phantom{-}2& 1 & & & & & & & & && \\
d(2)=0 & & &-1 & 2 & 1 & & & & & & & & \\
d(3)=0 & & & &-1 & 2 & 1 & & & & & & & \\
$\ldots\ldots$ & & & & & & & $\ldots$& & && \\
d(5)=1 & & & & & & & &$\ldots$ & & & && \\
$\ldots\ldots$ & & & & & & & & & $\ldots$ & &\\
d(11)=0 & & & & & & & & & & & -1 & \phantom{-}2 & \phantom{-}1 \\
\end{array}
\]
\end{document}
答案2
最困难的部分是获得相同大小的列:
\documentclass{article}
\usepackage{array,collcell}
\newcommand{\two}[1]{\makebox[1.5em][r]{$#1$}}
\newcommand{\Ldots}{\dots\dots\hspace*{-1em}}
\begin{document}
\[
\setlength{\arraycolsep}{0pt}
\begin{array}{l @{\quad} *{13}{>{\collectcell\two}c<{\endcollectcell}}}
\quad m & & & 0 & 0 & 0 & 0 & 1 & 0 & 0 & 0 & 0 \\[1ex]
d(1)=0 & -1 & 2 & 1 \\
d(2)=0 & & & -1 & 2 & 1 \\
d(3)=0 & & & & & -1 & 2 & 1 \\
\dots & & & & & & \Ldots \\
d(5)=1 & & & & & & & & \Ldots \\
\dots & & & & & & & & & & \Ldots \\
d(11)=0 & & & & & & & & & & & -1 & 2 & 1
\end{array}
\]
\end{document}
答案3
您可以使用两个array
环境,第二个环境包含十三列,并使用\phantom
第二个环境第一行中的说明array
来获得等宽列。如果您希望将“点”放置在基线上而不是垂直居中,请使用\dots
而不是\cdots
。
\documentclass{article}
\begin{document}
$\begin{array}{@{}l}
m:\\
d(1)=0\\
d(2)=0\\
d(3)=0\\
\cdots\\
d(5)=0\\
\cdots\\
d(11)=0
\end{array}
\quad
\setlength\arraycolsep{2pt} % default value: 5pt
\begin{array}{*{13}{r}}
\phantom{-0} & \phantom{-0}
& \phantom{-}0 & \phantom{-}0 & \phantom{-}0 & \phantom{-}0
& \phantom{-}1
& \phantom{-}0 & \phantom{-}0 & \phantom{-}0 & \phantom{-}0
& \phantom{-0} & \phantom{-0} \\
-1 & 2 & 1\\
& & -1 & 2 & 1\\
& & & -1 & 2 & 1\\
& & & & \multicolumn{3}{c}{\cdots}\\
& & & & & \multicolumn{3}{c}{\cdots}\\
& & & & & & & \multicolumn{3}{c}{\cdots}\\
& & & & & & & & & & -1 & 2 & 1\\
\end{array}$
\end{document}