tablegenerator.com 的间距问题(缺少 { 问题)

tablegenerator.com 的间距问题(缺少 { 问题)

我正在尝试使用 tablegenerator.com 生成一个如下所示的表格(LaTex 命令应该由 LaTex 处理)在此处输入图片描述

该网站生成的代码是:

\begin{table}[]
\centering
\begin{tabular}{|c|c|}
\hline
\multicolumn{1}{|l|}{\textbf{Channel}} & \textbf{Background sample name} \\ \hline
ggH & \begin{tabular}[c]{@{}c@{}}\textsf{mc15\_13TeV.341000.PowhegPythia8EvtGen\_CT10\_AZNLOCTEQ6L1\\ \_ggH125\_gamgam.merge.AOD.e3806\_s2984\_r8585\_r7676}\end{tabular} \\ \hline
VBF & \begin{tabular}[c]{@{}c@{}}\textsf{mc15\_13TeV.341001.PowhegPythia8EvtGen\_CT10\_AZNLOCTEQ6L1\\ \_VBFH125\_gamgam.merge.AOD.e3806\_s2608\_r7772\_r7676}\end{tabular} \\ \hline
ZH & \begin{tabular}[c]{@{}c@{}}\textsf{mc15\_13TeV.341068.Pythia8EvtGen\_A14NNPDF23LO\\ \_ZH125\_gamgam.merge.AOD.e3796\_s2608\_s2183\_r7772\_r7676}\end{tabular} \\ \hline
WH & \begin{tabular}[c]{@{}c@{}}\textsf{mc15\_13TeV.341067.Pythia8EvtGen\_A14NNPDF23LO\\ \_WH125\_gamgam.merge.AOD.e3796\_s2608\_s2183\_r7772\_r7676}\end{tabular} \\ \hline
ttH & \begin{tabular}[c]{@{}c@{}}\textsf{mc15\_13TeV:mc15\_13TeV.341081.aMcAtNloHerwigppEvtGen\_UEEE5\\ \_CTEQ6L1\_CT10ME\_ttH125\_gamgam.merge.AOD.e4277\_s2608\_s2183\_r7772\_r7676}\end{tabular} \\ \hline
\end{tabular}
\caption{My caption}
\label{my-label}
\end{table}

但是,当我将其插入到文件中时,Latex 会报错,并出现缺失 } 和额外 } 错误。这个问题似乎只发生在我在行内创建新行时(因为文本太大)。有谁知道是什么原因导致了这个问题以及如何解决它?

干杯

答案1

我认为您的问题实际上是文本被拆分成两行,而您尝试使用一个命令更改两行的字体。相反,如果您将每行都包含在自己的\textsf命令中,它应该可以工作。我的代码如下所示:

\documentclass{article}
\begin{document}


\begin{table}
\centering
\begin{tabular}{|c|c|}
\hline
\multicolumn{1}{|l|}{\textbf{Channel}} & \textbf{Background sample name} \\ \hline
ggH & \begin{tabular}[c]{@{}c@{}}\textsf{mc15\_13TeV.341000.PowhegPythia8EvtGen\_CT10\_AZNLOCTEQ6L1}\\ \textsf{\_ggH125\_gamgam.merge.AOD.e3806\_s2984\_r8585\_r7676}\end{tabular} \\ \hline
VBF & \begin{tabular}[c]{@{}c@{}}\textsf{mc15\_13TeV.341001.PowhegPythia8EvtGen\_CT10\_AZNLOCTEQ6L1}\\ \textsf{\_VBFH125\_gamgam.merge.AOD.e3806\_s2608\_r7772\_r7676}\end{tabular} \\ \hline
ZH & \begin{tabular}[c]{@{}c@{}}\textsf{mc15\_13TeV.341068.Pythia8EvtGen\_A14NNPDF23LO}\\ \textsf{\_ZH125\_gamgam.merge.AOD.e3796\_s2608\_s2183\_r7772\_r7676}\end{tabular} \\ \hline
WH & \begin{tabular}[c]{@{}c@{}}\textsf{mc15\_13TeV.341067.Pythia8EvtGen\_A14NNPDF23LO}\\ \textsf{\_WH125\_gamgam.merge.AOD.e3796\_s2608\_s2183\_r7772\_r7676}\end{tabular} \\ \hline
ttH & \begin{tabular}[c]{@{}c@{}}\textsf{mc15\_13TeV:mc15\_13TeV.341081.aMcAtNloHerwigppEvtGen\_UEEE5}\\ \textsf{\_CTEQ6L1\_CT10ME\_ttH125\_gamgam.merge.AOD.e4277\_s2608\_s2183\_r7772\_r7676}\end{tabular} \\ \hline
\end{tabular}
\caption{My caption}
\label{my-label}
\end{table}

\end{document}

输出如下: 在此处输入图片描述

答案2

您要排版的内容看起来有点像文件名,那么为什么不让 LaTeX 接受文件名而不必转义下划线并让它们很好地跨行分隔呢?这可以使用 实现自动化tabularx。我们还在行之间留出了更多空间。

\documentclass{article}

\usepackage{booktabs}

\usepackage{tabularx}
\newcolumntype{C}{>{\centering\arraybackslash}X}
\renewcommand{\tabularxcolumn}[1]{m{#1}}

\usepackage{url}
\DeclareUrlCommand\filename{\urlstyle{sf}}

\begin{document}

\begin{table}
  \renewcommand\arraystretch{1.5}
  \begin{tabularx}{\textwidth}{@{}cC@{}}
    \toprule
    \textbf{Channel} & \multicolumn{1}{c}{\textbf{Background sample name}}                                                                                        \\
    \midrule
    ggH              & \filename{mc15_13TeV.341000.PowhegPythia8EvtGen_CT10_AZNLOCTEQ6L1 _ggH125_gamgam.merge.AOD.e3806_s2984_r8585_r7676}                        \\
    VBF              & \filename{mc15_13TeV.341001.PowhegPythia8EvtGen_CT10_AZNLOCTEQ6L1 _VBFH125_gamgam.merge.AOD.e3806_s2608_r7772_r7676}                       \\
    ZH               & \filename{mc15_13TeV.341068.Pythia8EvtGen_A14NNPDF23LO _ZH125_gamgam.merge.AOD.e3796_s2608_s2183_r7772_r7676}                              \\
    WH               & \filename{mc15_13TeV.341067.Pythia8EvtGen_A14NNPDF23LO _WH125_gamgam.merge.AOD.e3796_s2608_s2183_r7772_r7676}                              \\
    ttH              & \filename{mc15_13TeV:mc15_13TeV.341081.aMcAtNloHerwigppEvtGen_UEEE5 _CTEQ6L1_CT10ME_ttH125_gamgam.merge.AOD.e4277_s2608_s2183_r7772_r7676} \\
    \bottomrule
  \end{tabularx}
  \caption{My caption}
  \label{my-label}
\end{table}

\end{document}

在此处输入图片描述

答案3

解决方案

由于所有 latex 命令和环境都以斜线开头,因此在文本中写斜线可能会有问题。要解决这个问题,请使用verbatim包和\verb|<text>|命令,这样就可以完全按照原样获取文本。但是,该包verbatim与环境不兼容tabular,因此您需要。在您的例子中,在表格中使用 verbatim 包意味着第二列中的长行将超出文本范围。要解决这个问题,您需要使用multirow包,以便将上面的代码拆分成多行。生成上述结果的代码如下:

\documentclass{report}
\usepackage{verbatim}
\usepackage{multirow}
\usepackage{booktabs}
\begin{document}


\begin{table*}[]
    \centering
    \begin{tabular}[1\textwidth]{|c|c|}



    \hline
    \multicolumn{1}{|l|}{\textbf{Channel}} & \textbf{Background sample name}
    \\
    \hline



    \multirow{2}{*}{ggH} &
    \verb|[c]{@{}c@{}}\textsf{mc15\_13TeV.341000.PowhegPythia8EvtGen\_CT10|
    \\

    & \verb|\_AZNLOCTEQ6L1\\\_ggH125\_gamgam.merge.AOD.e3806\_s2984\_r8585\_r7676}|
    \\
    \hline



    \multirow{2}{*}{VBF} & \verb|[c]{@{}c@{}}\textsf{mc15\_13TeV.341001.PowhegPythia8EvtGen\_CT10|
    \\

    & \verb|\_AZNLOCTEQ6L1\\ \_VBFH125\_gamgam.merge.AOD.e3806\_s2608\_r7772\_r7676}|
    \\
    \hline



    \multirow{2}{*}{ZH}
    & \verb|[c]{@{}c@{}}\textsf{mc15\_13TeV.341068.Pythia8EvtGen\_A14NNPDF23LO|
    \\

    & \verb|\\ \_ZH125\_gamgam.merge.AOD.e3796\_s2608\_s2183\_r7772\_r7676}|
    \\
    \hline



    \multirow{2}{*}{WH}
    & \verb|[c]{@{}c@{}}\textsf{mc15\_13TeV.341067.Pythia8EvtGen\_A14NNPDF23LO\\ |
    \\

    & \verb|\_WH125\_gamgam.merge.AOD.e3796\_s2608\_s2183\_r7772\_r7676}|
    \\
    \hline



    \multirow{3}{*}{ttH}
    & \verb|[c]{@{}c@{}}\textsf{mc15\_13TeV:mc15\_13TeV.341081.|
    \\

    & \verb|aMcAtNloHerwigppEvtGen\_UEEE\_CTEQ6L1\_CT10ME\_ttH125|
    \\

    & \verb|\_gamgam.merge.AOD.e4277\_s2608\_s2183\_r7772\_r7676}|
    \\
    \hline


\end{tabular}
\caption{My caption}
\label{my-label}
\end{table*}

\end{document}

您可以将代码分成三行(如表格中的最后一项),从而使表格更小。

相关内容