创建表时缺少$错误

创建表时缺少$错误

我将使用以下命令创建一个表。我使用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}

相关内容