根据我的问题这里\caption
,我在 里面添加了 ,\wrapfigure
表示侧边栏,以便以后可以使用 来引用它\nameref{name}
。但是,我现在在侧边栏标题上方看到了标题:
有没有一种方法可以让我声明一个标题,但实际上不让它显示任何内容,除了能够通过 引导用户访问它之外没有其他原因\nameref
?
我想过改变我的环境以便它能\caption*{}
输出侧边栏的标题,但是它却\ref{}
不再能正确地获取它(而是获取当前章节)。
这是一个完整的例子:
\documentclass{book}
\usepackage{graphicx}
\usepackage{wrapfig}
\usepackage{hyperref}
\usepackage{color}
\newcommand{\dummy}{}
\newenvironment*{lsidebar}[2][0.5]
{
\renewcommand{\dummy}{#1}
\wrapfigure{l}{#1\textwidth}
\caption{#2}
\rule{#1\textwidth}{1pt}
\rule{#1\textwidth}{18pt}
\vspace{-18pt}
\centerline{\textcolor{white}{#2}}
\vspace{5pt}
\footnotesize
\leftskip=5pt
\rightskip=5pt
\setlength{\parskip}{0.2cm}
\setlength{\parindent}{0pt}
}
{
\leftskip=0pt
\rightskip=0pt
\setlength{\parindent}{0pt}
\rule{\dummy\textwidth}{1pt}
\rule[.19in]{\dummy\textwidth}{2.5pt}
\endwrapfigure
}
\begin{document}
\chapter{First}
\label{ch:First}
\begin{lsidebar}{Example Sidebar}
\label{sb:Example}
An example sidebar.
\end{lsidebar}
Refer to sidebar \nameref*{sb:Example}.
\end{document}
显示的内容如下:
请注意侧边栏上方多余的“图 1.1:示例侧边栏”。
答案1
您可以更新保存计数器和名称引用的\@currentlabel
和。然后插入一个来标记超级目标。这样或将跳转到正确的位置。\@currentlabelname
\phantomsection
\ref
\nameref
\documentclass{book}
\usepackage{graphicx}
\usepackage{wrapfig}
\usepackage{hyperref}
\usepackage{color}
\newcommand{\dummy}{}
\makeatletter
\newenvironment*{lsidebar}[2][0.5]{%
\renewcommand{\dummy}{#1}%
\wrapfigure{l}{#1\textwidth}
\renewcommand{\@currentlabel}{#2}% Update \ref marker
\renewcommand{\@currentlabelname}{#2}% Update \nameref marker
\phantomsection% Set hyper target
\rule{#1\textwidth}{1pt}
\rule{#1\textwidth}{18pt}
\vspace{-18pt}
\centerline{\textcolor{white}{#2}}
\vspace{5pt}
\footnotesize
\leftskip=5pt
\rightskip=5pt
\setlength{\parskip}{0.2cm}
\setlength{\parindent}{0pt}
}
{
\leftskip=0pt
\rightskip=0pt
\setlength{\parindent}{0pt}
\rule{\dummy\textwidth}{1pt}
\rule[.19in]{\dummy\textwidth}{2.5pt}
\endwrapfigure
}
\makeatother
\begin{document}
\chapter{First}
\begin{lsidebar}{Example Sidebar}
\label{sb:Example}
An example sidebar.
\end{lsidebar}
Refer to sidebar \nameref{sb:Example}.
\end{document}