答案1
所以我之前一直在使用cleverref
。我阅读了它的文档,得到了我需要的一切,除了\nameref
命令。所以我探索了nameref
包并得到了我想要的东西。感谢@cabohah 指出nameref
。
\documentclass[12pt]{article}
\usepackage[english, ukrainian]{babel}
\usepackage[utf8]{inputenc}
\usepackage[T1]{fontenc}
\usepackage{geometry}
\geometry{
paper=a4paper,
inner=2cm, outer=2cm, top=2cm, bottom=2cm,
bindingoffset=0cm,
textwidth=\textwidth, textheight=\textheight,
includehead=false, includefoot=false, portrait, twoside}
\usepackage{amsmath}
\numberwithin{equation}{section}
\usepackage{amsthm}
\usepackage{thmtools}
\declaretheoremstyle[
notefont=\normalfont\sffamily, notebraces={}{},
headfont=\bfseries\itshape,
bodyfont=\normalfont\itshape,
headformat=\NAME\ \NUMBER \NOTE,
headpunct=\sffamily.\\,
spaceabove=5mm, spacebelow=5mm,
postheadspace=0mm, headindent=3mm,
]{thmstyle}
\declaretheorem[style=thmstyle, numberwithin=section, name=Теорема]{thm}
\declaretheorem[style=thmstyle, numberwithin=section, name=Означення]{dfn}
\usepackage{amsfonts}
\usepackage{amssymb}
\usepackage{mathtools}
\usepackage[hidelinks]{hyperref}
\usepackage{cleveref}
\Crefname{section}{Розд.}{Розд.}
\crefname{page}{стр.}{стр.}
\crefname{thm}{трм.}{трм.}
\Crefname{thm}{Трм.}{Трм.}
\crefname{dfn}{озн.}{озн.}
\Crefname{dfn}{Озн.}{Озн.}
\usepackage{nameref}
\newcommand{\fullref}[1]{(Див. \hyperref[#1]{\nameCref{#1}\ \labelcref*{#1}\ [\nameref*{#1}], \cpageref{#1}})}
\begin{document}
\section{Вступ}
Бла бла бла
\section{Теореми та визначення}
\label{sec:b}
\begin{thm}[Диз'юктивне розкладання булевої функція за \(k\) змінними]
\label{thm:dnf:k}
Будь-яку булеву функцію \(f(x_1, x_2,\ldots, x_n)\) можна зобразити в такій формі:
\begin{multline}
f(x_1,\dots,x_k,x_{k+1},\dots,x_n)
=\bigvee_{\mathclap{(\sigma_1,\sigma_2,\dots,\sigma_n)}}
x_1^{\sigma_1}\land x_2^{\sigma_2}\land\dots\land x_k^{\sigma_k}\land
f(\sigma_1,\sigma_2,\dots,\sigma_k, x_{k-1},\dots,x_n)
\end{multline}
\end{thm}
\begin{dfn}[Двійковий параметер \(\sigma\) і позначення \(x^\sigma\)]
\label{dfn:bin}
\begin{gather}
x, \sigma \in \mathbb{B},\\
x^\sigma = \begin{cases}\overline{x},\ \text{якщо }\sigma = 0,\\ x,\ \text{якщо } \sigma = 1.\end{cases}
\end{gather}
\end{dfn}
\section{Роздуми}
\dots за теоремою 5. \fullref{thm:dnf:k}\\
\dots з списку теорем та визначень. \fullref{sec:b}\\
\dots визначення. \fullref{dfn:bin}
\section{Кінець}
\end{document}