\nameref не работает с помеченными разделами

\nameref не работает с помеченными разделами

У меня в документе есть приложение, на которое я хочу сослаться по его имени в тексте. Я использую \section*здесь команду starred, потому что не хочу, чтобы приложение отображалось в оглавлении. Однако \namerefпросто вставляет пустое место там, где должно быть слово «Приложение».


Благодаря комментариям я теперь вижу, что проблема на самом деле в titlesecпакете. Я хочу, чтобы мой раздел Appendixотображался как ненумерованный элемент в TOC, но в то же время я хочу сделать там ссылку, \namerefкак описано выше. Поэтому я отредактировал свой пример, чтобы он теперь выглядел так:

\documentclass[11pt, oneside, a4paper]{article}
\usepackage{titlesec}
    \titleformat{\section}{\normalfont\LARGE\bfseries}{\thesection}{1em}{}
    \titleformat{\subsection}{\normalfont\Large\bfseries}{\thesubsection}{1em}{}
    \titleformat{\subsubsection}{\normalfont\large\bfseries}{\thesubsubsection}{1em}{}
    \titleformat{\paragraph}[runin]{\normalfont\large\bfseries}{\theparagraph}{1em}{}
\usepackage[hidelinks]{hyperref}
\usepackage{nameref}
\newcommand{\sectionbreak}{\clearpage}

\begin{document}
    
\tableofcontents  % added this line
    
\section{Section 1}
\label{sec:section_1}

All that can be seen in the \nameref{sec:appendix}.

\section*{Appendix}
\label{sec:appendix}
\addcontentsline{toc}{section}{Appendix}    % added this line

Here comes the appendix.
\end{document}

решение1

Поскольку этот вопрос возник, когда я искал ответы на тот же конфликт с использованием titlesec, hyperrefи \section*{}это требовало маркировки, я хотел бы поделиться обходным путем, который Ульрике Фишер опубликовал на форуме несколько лет спустя. Таким образом, этот вопрос будет связан с тем ответом и, следовательно, будет полезен всем.

Ульрике определила новую команду, которая может быть использована для дополнения помеченного раздела (и других), требующих метки. Вы можете найти ее ответ здесь:nameref не работает для ненумерованных разделов из-за titilesec и latexbangla.

Причину, по которой комбинация 'titlesecс hyperref/ namerefне работает, объясняет Хайко Обердиек в этом вопросе:Конфликт с hyperref и titlesec.

Связанный контент