我需要将对表的引用更改为“табл. CHAPTER_NUM.TABLE_NUM”,我尝试执行以下操作:
\documentclass[a4paper, ukrainian, utf8, 14pt]{extreport}
\setcounter{secnumdepth}{5}
\makeatletter
\renewcommand\p@table{табл. \thechapter.\arabic{table}\expandafter\@gobble}
\makeatother
\begin{document}
\chapter{Chapter}
\section{Section}
Lorem ispum \ref{t:table}.
\begin{table}
\label{t:table}
\begin{tabular}{| c | c | c | c | c | c |}
\hline
\multicolumn{1}{|p{2cm}|}{Col} &
\multicolumn{1}{p{2.2cm}|}{Lorem} &
\multicolumn{1}{p{2.2cm}|}{Ispum} &
\multicolumn{1}{p{2.2cm}|}{Dolor} \\ \hline
1 & 50 & 1,44 & 1,85 \\ \hline
2 & 50 & 1,44 & 1,85 \\ \hline
3 & 51 & 1,44 & 1,85 \\ \hline
4 & 45 & 1,44 & 1,85 \\ \hline
5 & 53 & 1,44 & 1,85 \\ \hline
\end{tabular}
\end{table}
\end{document}
它对于图形很有效,但对于表格却没有任何作用。
也许还有其他方法可以改变\ref
格式?
PS 我正在使用 XeTex。
答案1
没有\caption
之前\label{t:table}
,因此标签引用的是前一节。
示例文件包含一些其他建议和一些简化:
\documentclass[a5paper]{report}% a5paper to get a smaller image for TeX.SX
\usepackage{caption}
\usepackage{booktabs}
\usepackage{siunitx}
\sisetup{output-decimal-marker={,}}
\makeatletter
\renewcommand\p@table{Table.\@ }
\makeatother
\begin{document}
\chapter{Chapter}
\section{Section}
Lorem ispum \ref{t:table}.
\begin{table}
\centering
\caption{Table caption}
\label{t:table}
\begin{tabular}{
S[table-format=1.0]
S[table-format=2.0]
S[table-format=1.2]
S[table-format=1.2]
}
\toprule
{Col} & {Lorem} & {Ipsum} & {Dolor} \\
\midrule
1 & 50 & 1,44 & 1,85 \\
2 & 50 & 1,44 & 1,85 \\
3 & 51 & 1,44 & 1,85 \\
4 & 45 & 1,44 & 1,85 \\
5 & 53 & 1,44 & 1,85 \\
\bottomrule
\end{tabular}
\end{table}
\end{document}