我有以下生成表的代码:
\documentclass[a4paper]{article}
\usepackage{booktabs}
\newcommand{\name}[4]{
\begin{table}[!htbp]
\centering
\begin{tabular}{p{\textwidth}}
\toprule
\textbf{#1} \hspace{1em} #2 \\ \midrule
#3 \\ \bottomrule
\end{tabular}
\label{name:#1}
\end{table}
\vspace{-1.25em}
\paragraph{Justification:} #4 \\
}
\begin{document}
\name{AB:CDE:000}{XXX}{YYY}{ZZZ}
Some text \ref{name:AB:CDE:000}
\end{document}
现在每次我需要引用它时,我都需要将引用显示为“名称 - AB:CDE:000”。我该如何实现?
是否也可以将其自动编号为 AB:CDE:000、AB:CDE:010、AB:CDE:020 等?
答案1
由于您没有\caption
在该表中使用指令,因此没有编号标题,并且您不能使用\label
-\ref
机制来创建交叉引用。
对于创建交叉引用的不同方法,我建议您加载包hyperref
并使用其\hypertarget
-机制。请注意,和指令\hyperlink
的第一个参数必须相同。\hypertarget
\hyperlink
\documentclass{article}
\usepackage{booktabs}
\usepackage[colorlinks,allcolors=blue]{hyperref}
\newcommand{\name}[4]{
\begin{table}[!htbp]
\begin{tabular}{@{}p{\textwidth}@{}}
\toprule
\smash{\hypertarget{#1}{\textbf{#1}}} \qquad #2 \\
\midrule
#3 \\
\bottomrule
\end{tabular}
\end{table}
\vspace{-5ex}
\paragraph{Justification:}#4\par
}
\begin{document}
\name{AB:CDE:000}{XXX}{YYY}{ZZZ}
\bigskip\noindent
A cross-reference to table \hyperlink{AB:CDE:000}{AB:CDE:000}.
\end{document}