Как вывести текстовое содержание ссылки в LaTeX? - PullRequest
4 голосов
/ 07 февраля 2009

У меня есть раздел:

\section{Introduction} \label{sec:introduction}

Мне нужна ссылка на раздел, где текст ссылки - это название раздела. Я могу использовать hyperref:

The \hyperrf[sec:introduction]{Introduction} introduces the paper.

Но для этого необходимо повторить заголовок раздела («Введение»). Есть ли способ получить это? ref возвращает номер раздела, что неверно. autoref возвращает «раздел», а затем номер раздела, что тоже неверно.

Ответы [ 3 ]

10 голосов
/ 07 февраля 2009

Есть несколько пакетов, которые предоставляют это для вас. nameref распространяется как часть hyperref для этого:
http://tug.ctan.org/cgi-bin/ctanPackageInformation.py?id=nameref

Существует более общий пакет для перекрестных ссылок в основном всего, называемый zref: http://tug.ctan.org/cgi-bin/ctanPackageInformation.py?id=zref

Автор того же автора, что и hyperref, Heiko Oberdiek; это тот, который я бы выбрал. Вот пример:

\documentclass[oneside,12pt]{article}
\usepackage[user,titleref]{zref}
\begin{document}
\section{Introduction of sorts.}\zlabel{sec:intro}
Hello
\subsection{Structure}
We begin in `\ztitleref{sec:intro}'.
\end{document}

Обратите внимание, что он даже удаляет завершающий период в заголовке раздела.

1 голос
/ 07 февраля 2009

Насколько я знаю, стандартного способа сделать это не существует. Проще говоря, команды секционирования не хранят названия секций там, где их можно легко найти. Да, они вставляются в оглавление (и связанный вспомогательный файл) и метки установлены, но доступ к ним ненадежен в лучшем случае и обычно невозможен без дополнительного контекста, который почти всегда недоступен к тому времени, когда вам нужно вернуться в раздел.

Пример кода, который вы разместили, выглядит так, как я написал бы. Может быть пакет для автоматизации этого, но если он существует, то это, вероятно, довольно сложный код, поскольку на самом деле это не очень распространенный вариант использования. На самом деле, излагать всю грамматику нацистами окончательный текст, который вы создаете, неверен; слово «введение» должно быть написано строчными буквами внутри предложения, и это не может быть достигнуто (вообще) с обратными ссылками на фактические заголовки разделов.

Я бы просто смирился и выписал ссылки, подобные этой, вручную. Их не будет достаточно, чтобы оправдать автоматизацию. Конечно, если вы делаете что-то более сложное, чем предполагает ваш пример (многие автоматически сгенерированные разделы или что-то еще), все может быть иначе, но если это так, то это действительно совсем другой вопрос.

0 голосов
/ 07 февраля 2009

Вы можете попробовать использовать

  • \newsavebox
  • \savebox
  • \usebox

, который не спасет вас от печатания, но даст вам один авторитетный источник для каждого заголовка


И вы можете поискать ctan.org, я подозреваю, что это уже сделано.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...