![为什么我的表出现错误?](https://linux22.com/image/339869/%E4%B8%BA%E4%BB%80%E4%B9%88%E6%88%91%E7%9A%84%E8%A1%A8%E5%87%BA%E7%8E%B0%E9%94%99%E8%AF%AF%EF%BC%9F.png)
我很困惑为什么我不能使用 生成一组简单的表格方程式tabular
。据我所知,我的代码完全遵循文档中的示例,只是用一些稍微复杂的表达式替换了表中的条目。
\documentclass[]{report}
\usepackage{wasysym}
\begin{document}
$$
\begin{tabular}{lcr}
z_{\earth}(t) &= 0 \\
z_{\venus}(t) &= R_{\venus} e^{2\pi i \Omega_{\astrosun} t} & + r_{\venus} e^{2\pi i (\omega_{\venus} t + k_{\venus})} \\
z_{\mercury}(t) &= R_{\mercury} e^{2\pi i \Omega_{\astrosun} t} & + r_{\mercury} e^{2\pi i (\omega_{\mercury} t + k_{\mercury})} \\
z_{\mars}(t) &= R_{\mars} e^{2\pi i (\Omega_{\mars} t + K_{\mars})} & + r_{\mars} e^{2\pi i \Omega_{\astrosun} t} \\
z_{\jupiter}(t) &= R_{\jupiter} e^{2\pi i (\Omega_{\jupiter} t + K_{\jupiter})} & + r_{\jupiter} e^{2\pi i \Omega_{\astrosun} t} \\
z_{\saturn}(t) &= R_{\saturn} e^{2\pi i (\Omega_{\saturn} t + K_{\saturn})} & + r_{\saturn} e^{2\pi i \Omega_{\astrosun} t}
\end{tabular}
$$
\end{document}
为什么我的表格出现错误?我该如何让它正常工作?
答案1
我建议使用array
环境而不是tabular
,并注意对齐=
和(如果存在)+
符号。
\documentclass{report}
\usepackage{wasysym}
\usepackage{array} % for "\newcolumntype" macro
\newcolumntype{C}{>{{}}c<{{}}} % dedicated column type for "+" symbols
\begin{document}
\[ % please don't use "$$ ... $$" in a LaTeX document
\renewcommand\arraystretch{1.8} % for a more open look
\setlength\arraycolsep{0pt} % no default inter-column spacing
\begin{array}{r @{{}={}} lCl}
z_{\earth}(t) & 0 \\
z_{\venus}(t) & R_{\venus} e^{2\pi i \Omega_{\astrosun} t}
& + & r_{\venus} e^{2\pi i (\omega_{\venus} t + k_{\venus})} \\
z_{\mercury}(t) & R_{\mercury} e^{2\pi i \Omega_{\astrosun} t}
& + & r_{\mercury} e^{2\pi i (\omega_{\mercury} t + k_{\mercury})} \\
z_{\mars}(t) & R_{\mars} e^{2\pi i (\Omega_{\mars} t + K_{\mars})}
& + & r_{\mars} e^{2\pi i \Omega_{\astrosun} t} \\
z_{\jupiter}(t) & R_{\jupiter} e^{2\pi i (\Omega_{\jupiter} t + K_{\jupiter})}
& + & r_{\jupiter} e^{2\pi i \Omega_{\astrosun} t} \\
z_{\saturn}(t) & R_{\saturn} e^{2\pi i (\Omega_{\saturn} t + K_{\saturn})}
& + & r_{\saturn} e^{2\pi i \Omega_{\astrosun} t}
\end{array}
\]
\end{document}
答案2
使用 amsmath align*
:
\documentclass[]{report}
\usepackage{amsmath}
\usepackage{wasysym}
\begin{document}
\begin{align*}
z_{\earth}(t) &= 0 \\
z_{\venus}(t) &= R_{\venus} e^{2\pi i \Omega_{\astrosun} t} + r_{\venus} e^{2\pi i (\omega_{\venus} t + k_{\venus})} \\
z_{\mercury}(t) &= R_{\mercury} e^{2\pi i \Omega_{\astrosun} t} + r_{\mercury} e^{2\pi i (\omega_{\mercury} t + k_{\mercury})} \\
z_{\mars}(t) &= R_{\mars} e^{2\pi i (\Omega_{\mars} t + K_{\mars})} + r_{\mars} e^{2\pi i \Omega_{\astrosun} t} \\
z_{\jupiter}(t) &= R_{\jupiter} e^{2\pi i (\Omega_{\jupiter} t + K_{\jupiter})} + r_{\jupiter} e^{2\pi i \Omega_{\astrosun} t} \\
z_{\saturn}(t) &= R_{\saturn} e^{2\pi i (\Omega_{\saturn} t + K_{\saturn})} + r_{\saturn} e^{2\pi i \Omega_{\astrosun} t}
\end{align*}
\end{document}
答案3
这些错误主要是由于使用tabular
而不是造成的array
。
设置方程的最简单方法是alignat*
:
\documentclass{report}
\usepackage{amsmath}
\usepackage{wasysym}
\begin{document}
\begin{alignat*}{2}
z_{\earth}(t) &= 0 \\
z_{\venus}(t) &= R_{\venus} e^{2\pi i \Omega_{\astrosun} t}
&& + r_{\venus} e^{2\pi i (\omega_{\venus} t + k_{\venus})} \\
z_{\mercury}(t) &= R_{\mercury} e^{2\pi i \Omega_{\astrosun} t}
&& + r_{\mercury} e^{2\pi i (\omega_{\mercury} t + k_{\mercury})} \\
z_{\mars}(t) &= R_{\mars} e^{2\pi i (\Omega_{\mars} t + K_{\mars})}
&& + r_{\mars} e^{2\pi i \Omega_{\astrosun} t} \\
z_{\jupiter}(t) &= R_{\jupiter} e^{2\pi i (\Omega_{\jupiter} t + K_{\jupiter})}
&& + r_{\jupiter} e^{2\pi i \Omega_{\astrosun} t} \\
z_{\saturn}(t) &= R_{\saturn} e^{2\pi i (\Omega_{\saturn} t + K_{\saturn})}
&& + r_{\saturn} e^{2\pi i \Omega_{\astrosun} t}
\end{alignat*}
\end{document}
解释。我们设置了两组“左对齐和右对齐”的列对。第一个对齐点位于等号处,第二个对齐点位于加号处。第二个右对齐列为空。
与 不同align*
,alignat*
不会在列对之间插入水平空格。与 不同array
,它会自动使用显示数学模式。
如果需要为整个区块指定编号,请执行
\begin{equation}
\begin{alignedat}{2}
z_{\earth}(t) &= 0 \\
z_{\venus}(t) &= R_{\venus} e^{2\pi i \Omega_{\astrosun} t}
&& + r_{\venus} e^{2\pi i (\omega_{\venus} t + k_{\venus})} \\
<...same code as before...>
\end{alignedat}
\end{equation}
如果必须为每行指定一个编号,请更改alignat*
为alignat
。
最后的建议:永远不要$$
在 LaTeX 中使用。永远不要。参见为什么 \[ ... \] 比 $$ ... $$ 更可取?了解更多信息。