当我没有数学方程式时,为什么 LaTeX 缺少 $ 以及如何将表格居中?

当我没有数学方程式时,为什么 LaTeX 缺少 $ 以及如何将表格居中?

我是 LaTeX 新手。但是,我不知道为什么此代码不起作用:

\documentclass{article}
\usepackage[utf8]{inputenc}

\usepackage[english]{babel}

\usepackage[usenames, dvipsnames]{color}
\usepackage{multirow}

\title{r}
\author{omar113057 }
\date{September 2018}

\begin{document}

\maketitle

\section{Introduction}

\definecolor{black}{rgb}{0.0, 0.0, 0.0}
\begin{table}[!hbtp]
\begin{center}
\begin{normalsize}
\color{black}
\begin{tabular}{llcrr}
\hline
&Female&Male&\\
&(N=287)&(N=570)&\multirow{-2}{*}{p}\\
\hline
age                & 68.7 \pm 10.7 & 60.6 \pm 11.2 & < 0.001\\
\hline
cardiogenicShock   &&& 0.136\\
 \hspace{0.5cm} No             &275 (95.8\%)&530 (93.0\%)&\\
 \hspace{0.5cm} Yes            &12 ( 4.2\%)&40 ( 7.0\%)&\\
 \hline
entry              &&&0.035\\
 \hspace{0.5cm} Femoral        &119 (41.5\%)&193 (33.9\%)&\\
 \hspace{0.5cm} Radial         &168 (58.5\%)&377 (66.1\%)&\\
 \hline
Dx                 &&&0.012\\
 \hspace{0.5cm} NSTEMI         &50 (17.4\%)&103 (18.1\%)&\\
 \hspace{0.5cm} STEMI          &84 (29.3\%)&220 (38.6\%)&\\
 \hspace{0.5cm} Unstable Angina&153 (53.3\%)&247 (43.3\%)&\\
 \hline
EF                 &56.3 \pm 10.1&55.6 \pm  9.4&0.387\\
\hline
height             &153.8 \pm  6.2&167.9 \pm  6.1&< 0.001\\
\hline
weight             &57.2 \pm  9.3&68.7 \pm 10.3&< 0.001\\
\hline
BMI                &24.2 \pm  3.6&24.3 \pm  3.2&0.611\\
\hline
obesity            &&&0.580\\
\hline
 \hspace{0.5cm} No             &194 (67.6\%)&373 (65.4\%)&\\
     \hline
 \hspace{0.5cm} Yes            &93 (32.4\%)&197 (34.6\%)&\\
TC                 &188.9 \pm 51.1&183.3 \pm 45.9&0.124\\
\hline
LDLC               &117.8 \pm 41.2&116.0 \pm 41.1&0.561\\
\hline
HDLC               &39.0 \pm 11.5&37.8 \pm 10.9&0.145\\
\hline
TG                 &119.9 \pm 76.2&127.9 \pm 97.3&0.195\\
\hline
DM                 &&&0.077\\
 \hspace{0.5cm} No             &173 (60.3\%)&380 (66.7\%)&\\
 \hspace{0.5cm} Yes            &114 (39.7\%)&190 (33.3\%)&\\
HBP                &&&< 0.001\\
 \hspace{0.5cm} No             &83 (28.9\%)&273 (47.9\%)&\\
 \hspace{0.5cm} Yes            &204 (71.1\%)&297 (52.1\%)&\\
 \hline
smoking            &&&< 0.001\\
 \hspace{0.5cm} Ex-smoker      &49 (17.1\%)&155 (27.2\%)&\\
 \hspace{0.5cm} Never          &209 (72.8\%)&123 (21.6\%)&\\
 \hspace{0.5cm} Smoker         &29 (10.1\%)&292 (51.2\%)&\\
\hline
\end{tabular}
\end{normalsize}
\end{center}
\end{table}
\color{black}
\end{document}

此代码由R名为 ztable 的包。然而,我修复了此代码中的大量错误,并且日志不断抛出的这个 $ 符号对我来说非常奇怪,因为我在这里看不到任何模式。

我还想制作一个居中且间距合适的桌子。我该怎么做?

答案1

主要问题是\pm宏观必须$发生在数学模式中。为了尽量减少进入和退出数学模式所需的符号数量,我建议您使用自动处于数学模式的lr和列类型的版本。请参阅下面的代码以了解实现此目的的方法。c

此外,我将重组表格,为计数和百分比提供单独的列。

并且,不要在环境中使用\begin{center}and 。相反,使用单个指令。\end{center}table\centering

最后,我会省略大部分水平线,或者至少用一些垂直空白来代替它们。并且,请加载包booktabs并使用\toprule\midrule\bottomrule来表示剩余的三条水平线。

在此处输入图片描述

\documentclass{article}
\usepackage[utf8]{inputenc}
\usepackage[english]{babel}

\usepackage{multirow}
\usepackage{array,booktabs} % <-- new

% automatic math-mode column types:
\newcolumntype{L}{>{$}l<{$}}  % left-aligned
\newcolumntype{C}{>{$}c<{$}}  % centered
\newcolumntype{R}{>{$}r<{$}}  % right-aligned

% two handy shortcut macros:
\newcommand\mcC[1]{\multicolumn{2}{C}{#1}}
\newcommand\mcR[1]{\multicolumn{2}{R}{#1}}

\begin{document}

\begin{table}[!ptbh]
\caption{An informative table}
\smallskip

\centering
\begin{tabular}{@{}l *{2}{R @{\hspace{1mm}} R} R @{}}
\toprule
&\mcC{$Female$} & \mcC{$Male$}  & \\ 
&\mcC{(N=287)}  & \mcC{(N=570)} & \multirow{-2}{*}{$p$}\\ 
\midrule
Age          & \mcR{68.7 \pm 10.7} & \mcR{60.6 \pm 11.2} & <0.001\\ 
 \addlinespace
CardiogenicShock   &&&&& 0.136\\ 
 \hspace{5mm} No       &275 & (95.8\%) &530 & (93.0\%) &\\ 
 \hspace{5mm} Yes      & 12 & ( 4.2\%) & 40 &  (7.0\%) &\\ 
 \addlinespace
Entry        &&&&&0.035\\ 
 \hspace{5mm} Femoral  &119 & (41.5\%) &193 & (33.9\%) &\\ 
 \hspace{5mm} Radial   &168 & (58.5\%) &377 & (66.1\%) &\\
 \addlinespace
DX           &&&&&0.012\\ 
 \hspace{5mm} NSTEMI   &50 & (17.4\%) &103 & (18.1\%) &\\ 
 \hspace{5mm} STEMI    &84 & (29.3\%) &220 & (38.6\%) &\\ 
 \hspace{5mm} Unstable Angina&153 & (53.3\%) &247 & (43.3\%) &\\ 
 \addlinespace
EF           & \mcR{56.3 \pm 10.1} & \mcR{55.6 \pm  9.4} &0.387\\ 
 \addlinespace
Height       & \mcR{153.8\pm  6.2} & \mcR{167.9\pm  6.1}&< 0.001\\
 \addlinespace
Weight       & \mcR{57.2 \pm  9.3} & \mcR{68.7 \pm 10.3} &< 0.001\\ 
 \addlinespace
BMI          & \mcR{24.2 \pm  3.6} & \mcR{24.3 \pm  3.2} &0.611\\ 
 \addlinespace
Obesity      &&&&&0.580\\ 
 \hspace{5mm} No       &194 & (67.6\%) &373 & (65.4\%) &\\ 
 \hspace{5mm} Yes      & 93 & (32.4\%) &197 & (34.6\%) &\\ 
 \addlinespace
TC           & \mcR{188.9\pm 51.1} & \mcR{183.3\pm 45.9} &0.124\\ 
 \addlinespace
LDLC         & \mcR{117.8\pm 41.2} & \mcR{116.0\pm 41.1} &0.561\\ 
 \addlinespace
HDLC         & \mcR{39.0 \pm 11.5} & \mcR{37.8 \pm 10.9} &0.145\\
 \addlinespace
TG           & \mcR{119.9\pm 76.2} & \mcR{127.9\pm 97.3} &0.195\\ 
 \addlinespace
DM           &&&&&0.077\\ 
 \hspace{5mm} No        &173 & (60.3\%) &380 & (66.7\%) &\\ 
 \hspace{5mm} Yes       &114 & (39.7\%) &190 & (33.3\%) &\\ 
 \addlinespace
HBP          &&&&&< 0.001\\ 
 \hspace{5mm} No        & 83 & (28.9\%) &273 & (47.9\%) &\\ 
 \hspace{5mm} Yes       &204 & (71.1\%) &297 & (52.1\%) &\\ 
 \addlinespace
Smoking      &&&&&< 0.001\\ 
 \hspace{5mm} Ex-smoker & 49 & (17.1\%) &155 & (27.2\%) &\\ 
 \hspace{5mm} Never     &209 & (72.8\%) &123 & (21.6\%) &\\ 
 \hspace{5mm} Smoker    & 29 & (10.1\%) &292 & (51.2\%) &\\ 
\bottomrule
\end{tabular}
\end{table}
\end{document}

答案2

\pm是一个数学命令,所以您收到的第一个错误与此有关,并通过添加来恢复,$因此您的输入相当于$\pm 然后在单元格末尾收到第二个错误,$缺少第二个关闭数学模式。使用$68.7 \pm 10.7$并类似地对所有数字条目使用数学,无论它们是否有,\pm所以它们都设置为相同的字体。

答案3

一种解决方案是使用命令\ensuremath。如果参数尚未处于数学模式,此命令将使参数进入数学模式。它还会正确地将其恢复到正常文本模式。如果您已经处于数学模式,TeX 会将参数保留在数学模式中。

如果您还没有这样做,您可以使用宏定义将某些东西放入数学模式。

为了您的使用(\pm在数学或文本模式中),您可以定义一个宏\ppmm

  \newcommand{\ppmm}{\ensuremath{\pm}}

然后您可以\ppmm在文本模式或$\ppmm$数学模式下使用而不会出现语法错误。

在许多类似情况下,宏\ensuremath都很有用。例如,为了在 TeX 中描述 12 位 ADC,我使用 $\mathcal{ADC}_{12}$但有时我可能想在数学模式下使用它。通过使宏使用\ensuremath包装器,它可以在两种模式下安全地使用:

  \newcommand{\adctw}{\ensuremath{\mathcal{ADC}_{12}}

然后,您可以在文档中调用该宏,无论是在数学模式${\adctw}$还是文本模式下,\adctw并且它可以正常工作而不会出现语法错误。

相关内容