![LaTeX 中宏生成的标签](https://linux22.com/image/406197/LaTeX%20%E4%B8%AD%E5%AE%8F%E7%94%9F%E6%88%90%E7%9A%84%E6%A0%87%E7%AD%BE.png)
我为一些表格创建了一个宏,以便让它们都采用相同的样式。我想在文档正文中引用其中一些表格,因此在我的宏中它们会得到一个标签。不幸的是,即使我运行了几次,它总是显示“是”。
参考第 2 页上的“tab:mess-2_2f”未定义
这是我的宏:
\usepackage{pgfplots}
\pgfplotsset{compat=1.16}
\usepackage{float}
\usepackage{longtable}
\usepackage{color}
\usepackage{siunitx}
\usepackage[table]{xcolor}
\usepackage{colortbl}
\def\messwerte#1#2#3#4#5#6{
\begin{minipage}{\textwidth}
\centering
\begin{minipage}{#2\textwidth}
\begin{longtable}{c}
\arrayrulecolor{blue}
\rowcolors{2}{blue!20}{white}
\begin{tabular}{*{#1}{l|}l}
\rowcolor{blue!40}
#3
\\ \hline
#4
\end{tabular}
\\
\caption{#5}
\label{tab:mess-#6}
\end{longtable}
\end{minipage}
\end{minipage}
}
在文档中我是这样使用它的:
\messwerte{1
}{0.4
}{$U$&\textbf{$n$ in \si[per-mode = reciprocal]{\min^{-1}}}
}{\num{110}&\num{2250}\\
\num{60}&\num{1310}\\
}{Messwerte
}{2_2f
}
我尝试像这样引用它:
\ref{tab:mess-2_2f}
答案1
你有
{2_2f
}
\label{tab:mess-2_2f }
不产生\label{tab:mess-2_2f}
无关,但全部
\begin{minipage}{\textwidth}
\centering
\begin{minipage}{#2\textwidth}
\begin{longtable}{c}
可以替换为
\begin{minipage}{\textwidth}
\centering
由于内部minipage
没有执行任何操作,并且longtable
内部minipage
无法工作,分页被禁用,但在这种情况下它是一个单行、单列表,只包含嵌套,tabular
因此它除了允许\caption
通过非常奇怪的路由外什么也不做。
您可以使用以下方式为表格添加标题
\captionof{table}{#5}
来自(单行)caption-of
包。