【问题标题】:Tweaking \autoref to behave somewhat like \vref [closed]调整 \autoref 的行为有点像 \vref [关闭]
【发布时间】:2010-11-05 16:03:23
【问题描述】:

我想通过以下方式修改 \autoref 命令:如果 \autoref 命令和标签在同一页面上,它的行为类似于 \autoref*(即没有超链接)。否则,它的行为通常。

谢谢, 毗湿奴

【问题讨论】:

标签: latex cross-reference


【解决方案1】:

如果您可以使用\myautoref 而不是\autoref,则以下内容将如您所愿:

\documentclass{article}
\usepackage{lipsum}
\usepackage[pdftex,colorlinks]{hyperref}

\makeatletter
\def\my@setref#1#2#3{%
  \ifx#1\relax\protect\G@refundefinedtrue
  \else\expandafter#2#1\fi}
\def\pagenum#1{\expandafter\my@setref\csname
    r@#1\endcsname\@secondoffive{#1}}%
\def\myautoref#1{\def\refnum{\pagenum{#1}}%
    \ifnum\refnum=\thepage\relax\autoref*{#1}%
    \else\autoref{#1}\fi}

\makeatother
\begin{document}

\section{First}\label{first}

\lipsum[1-3]

\myautoref{first} 

\lipsum[4-8]

\myautoref{first}

\end{document}

【讨论】:

    【解决方案2】:

    我必须解决一个类似问题并找到更短的内容(对我来说更容易理解):

    \usepackage{ifthen}
    \newcommand{\myautoref}[1]{
        \ifthenelse%
            {\equal{\pageref{#1}}{\thepage}}%
            {\autoref*{#1}}%
            {\autoref{#1}}
    }
    

    【讨论】:

    • 我还有一个小问题是 \thepage 返回的是当前对象(section、subsection 或 subsubsection)的页码,而不是在该文本将出现的页面上。
    猜你喜欢
    • 2011-10-04
    • 2013-04-08
    • 1970-01-01
    • 2021-05-30
    • 1970-01-01
    • 2013-06-14
    • 2013-09-24
    • 2012-11-17
    • 2014-04-07
    相关资源
    最近更新 更多