以下是我的代码,但它不起作用,我是否缺少一些包?请给我建议和正确的代码。谢谢你的帮助!
\begin{tabular}{|c|c|c|c|}
\hline
& x<0 & x=0 & x>0\\ \hline
y<0 & x^2-y^2 & x^2+y^2 & x^2-y^2\\ \hline
y=0 & x+y & x^2-y^2 & x^2+y^2 & x^2-y^2\\ \hline
y>0 & x^2+y^2 & x+y & x^2+y^2\\ \hline
y<0 & x^2-y^2 & x^2+y^2 & x^2-y^2
\end{tabular}
答案1
您可以使用类似这样的方法:
\documentclass{article}
\usepackage{amsmath}
\begin{document}
\begin{displaymath}
\begin{array}{|c|c|c|c|}
\hline
& x<0 & x=0 & x>0\\ \hline
y<0 & x^2-y^2 & x^2+y^2 & x^2-y^2\\ \hline
y=0 & x+y & x^2-y^2 & x^2+y^2 \\ \hline
y>0 & x^2+y^2 & x+y & x^2+y^2\\ \hline
y<0 & x^2-y^2 & x^2+y^2 & x^2-y^2 \\ \hline
\end{array}
\end{displaymath}
\end{document}
通过这种方式,您可以在数学环境中获得一种表格,而无需像$ $
LaRiFaRi 所说的那样。对我来说,这种方式更容易。
答案2
鉴于几乎所有表格内容都应处于数学模式,因此您应该使用环境array
而不是tabular
环境。您还需要删除行上的重复条目,y=0
以使您的代码可编译。
为了得到一个看起来不太像一堆牢房窗户的表格,我建议您也删除所有垂直条以及大多数s \hline
,并使用宏\toprule
、\midrule
和\bottomrule
书签包以获得间距适当的线来标记标题行和表格的末尾。
\documentclass{article}
\usepackage{booktabs}
\begin{document}
$\begin{array}{cccc}
\toprule
& x<0 & x=0 & x>0\\
\midrule
y<0 & x^2-y^2 & x^2+y^2 & x^2-y^2 \\
y=0 & x+y & x^2-y^2 & x^2+y^2 \\
y>0 & x^2+y^2 & x+y & x^2+y^2 \\
y<0 & x^2-y^2 & x^2+y^2 & x^2-y^2 \\
\bottomrule
\end{array}$
\end{document}
答案3
我复制了您在图片中发布的表格。在您的代码中,单元格太多。第三行有三个&
说明符。这行不通。
您必须将每个单元格置于数学模式。例如$...$
。由于您只是在整个表中使用数学,因此您可以借助包在数学模式下设置完整的列array
:
% arara: pdflatex
\documentclass{article}
\usepackage{booktabs,array}
\begin{document}
\begin{tabular}{>{$}c<{$} >{$}c<{$} >{$}c<{$} >{$}c<{$}}
\toprule
& x<0 & x=0 & x>0 \\
\cmidrule(l){2-4} % the (l) is optional. The screenshot shows a version without it
y<0 & x^2-y^2 & x^2+y^2 & x^2-y^2 \\
y=0 & x+y & x^2-y^2 & x+y \\
y>0 & x^2+y^2 & x+y & x^2+y^2 \\
\bottomrule
\end{tabular}
\end{document}
如果您需要添加更多包含文本的行,则必须\text{...}
在每个单元格中写入内容并为此加载包mathtools
。您必须为每个表格决定是包含更多数学内容还是更多文本,然后使用或省略>{$}c<{$}
类似内容。