我正在尝试使用 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}
您可以将代码分成三行(如表格中的最后一项),从而使表格更小。