提问于:
浏览数:
3489
## 编译环境
操作系统
* [x] Windows 7/8/10
* [ ] macOS
* [ ] Linux
Tex发行版
* [x] TexLive `2020`
* [ ] MikTeX `版本号`
* [ ] CTeX
## 我的问题
使用 `tabu` 宏包时,`\label` 总是无法正常使用,具体如下:
我的需求是交叉引用的格式为 `表 2-1` (section-table)的格式,并且某些表格不编号,所以有以下代码
```
\documentclass{ctexart}
\usepackage{longtable}
\usepackage{tabu}
\counterwithin{table}{section}
\renewcommand{\thetable}{\arabic{section}-\arabic{table}}
\usepackage{hyperref}
\begin{document}
\section{测试}
\begin{longtabu} to \linewidth {p{1.8cm}X}
\caption{第一个表格\label{table:tab1}}\\
字母 & 含义 \\ \hline \endhead
A & 主部件;分部件 \\\tabucline[0.1pt]{-}
B & 换能器,将非电气量转换为电气量,反之亦然 \\\tabucline[0.1pt]{-}
C & 电容器 \\\tabucline[0.1pt]{-}
D & 二值器件;延时器件;存储器 \\\tabucline[0.1pt]{-}
E & 混合件 \\\tabucline[0.1pt]{-}
F & 保护器件 \\\tabucline[0.1pt]{-}
G & 发生器;电源器件 \\\tabucline[0.1pt]{-}
H & 信号器件 \\\tabucline[0.1pt]{-}
K & 继电器;接触器 \\\tabucline[0.1pt]{-}
L & 电感;电抗器 \\\tabucline[0.1pt]{-}
M & 电机 \\\tabucline[0.1pt]{-}
N & 模拟集成电路 \\\tabucline[0.1pt]{-}
P & 测量装置;测试装置 \\\tabucline[0.1pt]{-}
O & 电源电路的机械开关 \\\tabucline[0.1pt]{-}
R & 电阻 \\\tabucline[0.1pt]{-}
S & 开关;选择器 \\\tabucline[0.1pt]{-}
T & 变压器;电压调节器 \\\tabucline[0.1pt]{-}
U & 调制器;变调器 \\\tabucline[0.1pt]{-}
V & 真空管;半导体(离散) \\\tabucline[0.1pt]{-}
W & 传输路径;波导;天线 \\\tabucline[0.1pt]{-}
X & 终端;插座;插头;链接;接头 \\\tabucline[0.1pt]{-}
Y & 电动机械设备 \\\tabucline[0.1pt]{-}
Z & 网络;混合变压器;滤波器;均衡器;限幅器 \\\hline
\end{longtabu}
\begin{longtabu} to \linewidth {p{1.8cm}X}
\addtocounter{table}{-1}\\
字母 & 含义 \\ \hline \endhead
M & 电机 \\\tabucline[0.1pt]{-}
N & 模拟集成电路 \\\tabucline[0.1pt]{-}
P & 测量装置;测试装置 \\\tabucline[0.1pt]{-}
O & 电源电路的机械开关 \\\tabucline[0.1pt]{-}
R & 电阻 \\\tabucline[0.1pt]{-}
S & 开关;选择器 \\\tabucline[0.1pt]{-}
T & 变压器;电压调节器 \\\tabucline[0.1pt]{-}
U & 调制器;变调器 \\\tabucline[0.1pt]{-}
V & 真空管;半导体(离散) \\\tabucline[0.1pt]{-}
W & 传输路径;波导;天线 \\\tabucline[0.1pt]{-}
X & 终端;插座;插头;链接;接头 \\\tabucline[0.1pt]{-}
Y & 电动机械设备 \\\tabucline[0.1pt]{-}
Z & 网络;混合变压器;滤波器;均衡器;限幅器 \\\hline
\end{longtabu}
\begin{longtabu} to \linewidth {p{1.8cm}X}
\caption{第三个表格\label{table:tab3}}\\
字母 & 含义 \\ \hline \endhead
A & 主部件;分部件 \\\tabucline[0.1pt]{-}
B & 换能器,将非电气量转换为电气量,反之亦然 \\\tabucline[0.1pt]{-}
C & 电容器 \\\tabucline[0.1pt]{-}
D & 二值器件;延时器件;存储器 \\\tabucline[0.1pt]{-}
E & 混合件 \\\tabucline[0.1pt]{-}
F & 保护器件 \\\tabucline[0.1pt]{-}
G & 发生器;电源器件 \\\tabucline[0.1pt]{-}
H & 信号器件 \\\tabucline[0.1pt]{-}
K & 继电器;接触器 \\\tabucline[0.1pt]{-}
L & 电感;电抗器 \\\tabucline[0.1pt]{-}
\end{longtabu}
引用第一个表格:\autoref{table:tab1},引用第三个表格:\autoref{table:tab3}
\section{测试2}
引用第四个表格:\autoref{table:tab4}
\begin{longtabu} to \linewidth {p{1.8cm}X}
\caption{第四个表格\label{table:tab4}}\\
字母 & 含义 \\ \hline \endhead
A & 主部件;分部件 \\\tabucline[0.1pt]{-}
B & 换能器,将非电气量转换为电气量,反之亦然 \\\tabucline[0.1pt]{-}
C & 电容器 \\\tabucline[0.1pt]{-}
D & 二值器件;延时器件;存储器 \\\tabucline[0.1pt]{-}
E & 混合件 \\\tabucline[0.1pt]{-}
F & 保护器件 \\\tabucline[0.1pt]{-}
G & 发生器;电源器件 \\\tabucline[0.1pt]{-}
H & 信号器件 \\\tabucline[0.1pt]{-}
K & 继电器;接触器 \\\tabucline[0.1pt]{-}
L & 电感;电抗器 \\\tabucline[0.1pt]{-}
\end{longtabu}
\end{document}
```
第二个表格中,使用了 `\addtocounter{table}{-1}`,这是因为这个表格不编号,如果不加的话第三个表格的标号就是 `1-3`,但是加了的话,引用“第三个表格”的时候点击会跳转到第二个表格。
另外,为了使表格编号格式为 `section-table` 的形式,加了 `\renewcommand{\thetable}{\arabic{section}-\arabic{table}}`,但是这样一来在第二个 `section` 引用第四个表格时点击会跳转到第一个表格。
请问怎么解决这两个问题?
4 回答
0
`\addtocounter{table}{-1} ` 加的位置不对
应该加在这里,再次编译就没问题了
```
\addtocounter{table}{-1}
\begin{longtabu*} to \linewidth {p{1.8cm}X}
\caption{第三个表格\label{table:tab3}}\\
字母 & 含义 \\ \hline \endhead
A & 主部件;分部件 \\\tabucline[0.1pt]{-}
B & 换能器,将非电气量转换为电气量,反之亦然 \\\tabucline[0.1pt]{-}
C & 电容器 \\\tabucline[0.1pt]{-}
D & 二值器件;延时器件;存储器 \\\tabucline[0.1pt]{-}
E & 混合件 \\\tabucline[0.1pt]{-}
F & 保护器件 \\\tabucline[0.1pt]{-}
G & 发生器;电源器件 \\\tabucline[0.1pt]{-}
H & 信号器件 \\\tabucline[0.1pt]{-}
K & 继电器;接触器 \\\tabucline[0.1pt]{-}
L & 电感;电抗器 \\\tabucline[0.1pt]{-}
\end{longtabu*}
```
0
不编号不会用`\caption*{}`么?费这劲干嘛?
0
`tabu` 已经很长时间没维护了,考虑别的吧。
0
## 解决了!
在引用 `hyperref` 宏包时添加选项 `hypertexnames=false` 即可
你的回答
请登录后回答
你的回答将会帮助更多人,请务必认真回答问题。