cleveref, nameref і varioref у Scissor LaTeX
Пакет cleveref здебільшого працює в Scissor LaTeX: \cref і \Cref працюють з окремими мітками, переліками й діапазонами, так само як \cpageref, \namecref, параметри capitalise, noabbrev і nameinlink та \crefname; \nameref друкує номер замість назви, а \vref не дає підказки про сторінку.
Що роблять пакети
cleveref додає до посилання вид об'єкта: \cref{fig:plot} друкує «fig. 1», і вам не треба набирати це слово, а \cref{a,b} поєднує кілька міток у «figs. 1 and 2». nameref друкує назву розділу замість його номера. varioref за допомогою \vref додає підказки про сторінку на зразок «on the next page».
Що тут працює
| Команда | У Scissor LaTeX | Примітки |
|---|---|---|
\cref{label} | Працює | «section 1», «fig. 1», «table 1», «eq. (1)». |
\Cref{label} | Працює | З великої літери, без скорочень: «Figure 1», «Equation (1)». |
\cref{a,b}, \cref{a,b,c} | Працює | «sections 1 and 2». |
\crefrange{a}{b} | Працює | «eqs. (1) to (2)». |
\cpageref{label} | Працює | «page 1». |
\namecref{label}, \labelcref{label} | Працює | Лише назва («eq.») або лише номер («(1)»). |
\crefname, \Crefname | Працює | Власні назви, у преамбулі. |
Параметри capitalise, noabbrev, nameinlink | Працює | Інші параметри ігноруються. |
\nameref{label} (nameref) | Частково | Друкує номер, а не назву. |
\vref, \Vref (varioref) | Частково | Друкує номер без підказки про сторінку. |
Приклади
\cref сам називає вид об'єкта й поєднує кілька міток:
\cref і \Cref
\section{Data}\label{sec:data}
\section{Method}\label{sec:method}
\begin{figure}[h]
\centering
\fbox{A plot of the 44 samples}
\caption{Samples.}\label{fig:samples}
\end{figure}
\begin{table}[h]
\centering
\begin{tabular}{lr} Erika & 44 \\ Hans & 38 \\ \end{tabular}
\caption{Counts.}\label{tab:counts}
\end{table}
As \cref{sec:data,sec:method} explain, \cref{fig:samples} shows
the samples. \Cref{tab:counts} counts them.Рівняння, діапазони й посилання на сторінки:
Рівняння, \crefrange і \cpageref
\begin{equation} a + b = 44 \label{eq:sum} \end{equation}
\begin{equation} a - b = 2 \label{eq:diff} \end{equation}
Adding \crefrange{eq:sum}{eq:diff} gives $a = 23$; \Cref{eq:sum}
is on \cpageref{eq:sum}.Параметри capitalise і noabbrev скрізь пишуть повні назви з великої літери, а \crefname задає власні. З capitalise команда \cref використовує форму вашої назви з великої літери, тож part нижче друкується як «Part»:
Параметри й \crefname
\documentclass{article}
\usepackage[capitalise,noabbrev]{cleveref}
\crefname{section}{part}{parts}
\begin{document}
\section{Overview}\label{sec:overview}
\begin{figure}[h]
\centering
\fbox{Diagram}
\caption{A diagram.}\label{fig:diagram}
\end{figure}
\cref{fig:diagram} belongs to \cref{sec:overview}.
\end{document}\nameref тут друкує номер розділу, а не його назву:
\nameref друкує номер
\section{Related work}\label{sec:related}
John Doe's results are summarised in \nameref{sec:related}.Сумісність
- З установленого TeX сюди: посилання з
\crefі спорідненими командами виглядають так само, як у встановленому TeX.\namerefдає номер замість назви, а\vrefне має підказки «on the next page». - Звідси до встановленого TeX: документи компілюються там без змін. Завантажуйте
cleverefпісляhyperref, як вимагає його посібник.
Повні посібники є на CTAN: ctan.org/pkg/cleveref, ctan.org/pkg/nameref і ctan.org/pkg/varioref. Посібник див. у розділі Мітки й перехресні посилання, а про \autoref у розділі hyperref.
Запитання й відповіді
Чим \cref відрізняється від \Cref?
\cref використовує короткі назви з малої літери на зразок «fig. 1» чи «eq. (1)». \Cref пише їх повністю з великої літери, для початку речення. Параметр capitalise змушує \cref скрізь поводитися як \Cref.
Чи друкує \nameref назву розділу?
Поки що ні. Вона друкує номер розділу, тож речення однаково читається, хоч і інакше. Якщо назва важлива, напишіть її повністю.
Кожен приклад на цій сторінці верстається в Scissor LaTeX під час збирання сайту. Оновлено 2026-11-07.