我将使用以下命令创建一个表。我使用xepersian
包。
\begin{latin}
\begin{table}[h!]
\centering
\begin{tabular}{|c c c|}
\hline
p & q & \varphi_q^p(x)\\ [0.5ex]
\hline
p & -1 & \vert x \vert^p \\
2 & 0 & ln(x^2+1) \\
2 & -0.5 & 2 \sqrt{x^2+1}-2 \\
2 & 1 & \frac{x^2}{x^2+1} \\
1 & 1 & \frac{\vert x \vert}{\vert x \vert +1} \\ [1ex]
\hline
\end{tabular}
\label{table:1}
\end{table}
\end{latin}
虽然我使用了latin
环境,但是却出现了缺少的错误$
。我该如何解决这个问题?
答案1
使用 amsmath 包中的公式并正确封闭它们,即 $formula$,将消除错误。
\documentclass[12pt]{article}
\usepackage{amsmath}
\begin{latin}
\begin{table}[h!]
\centering
\begin{tabular}{|c c c|}
\hline
p & q & $\varphi_q^p(x)$ \\ [0.5ex]
\hline
p & -1 & $\vert x \vert^p$ \\
2 & 0 & $\ln(x^2+1)$ \\
2 & -0.5 & $2 \sqrt{x^2+1}-2$ \\
2 & 1 & $\frac{x^2}{x^2+1}$ \\
1 & 1 & $\frac{\vert x \vert}{\vert x \vert +1}$ \\ [1ex]
\hline
\end{tabular}
\label{table:1}
\end{table}
\end{latin}
\end{document}
答案2
正如 Leucippus 所暗示的,下标 ( _{}
)、上标 ( ^{}
)、\frac
、\sqrt
、\ln
、\vert
是只能在数学模式下使用的命令,因此您需要将它们括在美元符号或 中\( ... \)
。因此,他已经回答了您的问题,这个答案只是对该表格排版的另一种方法的建议。
变化:
我添加了
array
包,并将其用作*{3}{>{$}c<{$}}
表格的列规范。这将创建三c
列(*{3}
),其中$
在每个单元格的开始(>{$}
)和结束(<{$}
)处插入一个,从而有效地将所有单元格设置为数学模式。我加载
booktabs
并使用了 和\toprule
,\midrule
而\bottomrule
不是\hline
,同时删除了垂直规则。很多人更喜欢这种风格的表格,例如,请参阅 的手册booktabs
。mathtools
提供\DeclarePairedDelimiter
,我用它来定义\abs
宏来设置绝对值。
补充说明:
- 通常,当用作
[h!]
浮点说明符时,您会收到一条警告,提示`h' specifier changed to `ht'
。这是因为在您放置表格的位置没有空间,所以这h
不是一个选项。因此,建议至少使用ht
用作浮点说明符,从而让 LaTeX 在放置浮点的位置方面拥有更多自由。例如,请参阅当不尝试指定浮点数时,浮点说明符‘h’更改为‘ht’警告
\documentclass[12pt]{article}
\usepackage{array,booktabs,mathtools}
\DeclarePairedDelimiter\abs{\lvert}{\rvert}
\begin{document}
\begin{tabular}{*{3}{>{$}c<{$}}}
\toprule
p & q & \varphi_q^p(x) \\ [0.5ex]
\midrule
p & -1 & \abs{x}^p \\
2 & 0 & \ln(x^2+1) \\
2 & -0.5 & 2 \sqrt{x^2+1}-2 \\
2 & 1 & \frac{x^2}{x^2+1} \\
1 & 1 & \frac{\abs{x}}{\abs{x}+1} \\
\bottomrule
\end{tabular}
\end{document}