## 编译环境 操作系统 * [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 回答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` 即可

你的回答

请登录后回答

你的回答将会帮助更多人,请务必认真回答问题。