环绕图和脚注、超链接

环绕图和脚注、超链接

我想在文本中添加一个图形。文本应该环绕该图形,因此使用环境包装图。我需要在图的标题中添加脚注,其中包括对来源的引用(作为 URL)。

我花了大量时间浏览这些网站,寻找解决方案。

我不想使用包括\footnotemark在浮动环境中、在浮动环境\footnotetext之外以及手动增加计数器的解决方案,因为它无法与超链接产生正确的链接...

以下是 MWE:

\documentclass[11pt,a4paper,bibtotoc,idxtotoc,headsepline,footsepline,%
 footexclude,BCOR12mm,DIV13]{scrbook}
\usepackage[pdftex,colorlinks=true,linkcolor=red,citecolor=red,%
 anchorcolor=red,urlcolor=red,bookmarks=true,%
 bookmarksopen=true,bookmarksopenlevel=0,plainpages=false%
 bookmarksnumbered=true,hyperindex=false,pdfstartview=,%
 ,hyperindex=false,
  ]{hyperref}

\usepackage{graphicx}

\usepackage{wrapfig}
\usepackage{footnote}
\usepackage{caption}

%  \makesavenoteenv{wrapfigure}
%  \makesavenoteenv{figure}

\begin{document}

Lorem ipsum dolor sit amet, consetetur sadipscing elitr, sed diam nonumy eirmod tempor invidunt ut labore et dolore magna aliquyam erat, sed diam voluptua. At vero eos et accusam et justo duo dolores et ea rebum. Stet clita kasd gubergren, no sea takimata sanctus est Lorem ipsum dolor sit amet.Lorem ipsum dolor sit amet, consetetur sadipscing elitr, sed diam nonumy eirmod tempor invidunt ut labore et dolore magna aliquyam erat, sed diam voluptua. At vero eos et accusam et justo duo dolores et ea rebum. Stet

\begin{wrapfigure}{l}{0.25\textwidth}
\includegraphics[width=0.20\textwidth]{johnny}
%  \captionof{figure}[johnny lof]{\copyright johnny inc. \footnote{\url{google.com}} } 
\end{wrapfigure}

ipsum dolor sit amet.Lorem ipsum dolor sit amet, consetetur sadipscing elitr, sed diam nonumy eirmod tempor invidunt ut labore et dolore magna aliquyam erat, sed diam voluptua. At vero eos et accusam et justo duo dolores et ea rebum. Stet clita kasd gubergren, no sea takimata sanctus est Lorem ipsum dolor sit amet.Lorem ipsum dolor sit amet, consetetur sadipscing elitr, sed diam nonumy eirmod tempor invidunt ut labore et dolore magna aliquyam erat, sed diam voluptua. At vero eos et accusam et justo duo dolores et ea rebum. Stet clita kasd gubergren, no sea takimata sanctus est Lorem ipsum dolor sit amet.Lorem ipsum dolor sit amet, consetetur sadipscing elitr, sed diam nonumy eirmod tempor invidunt ut labore et dolore magna aliquyam erat, sed diam voluptua. At vero eos et accusam et justo duo dolores et ea rebum. Stet clita kasd gubergren, no 

\end{document}

答案1

好吧,也许这有点小题大做,但是尽管如此(代码下面有解释):

\documentclass[11pt,a4paper,bibtotoc,idxtotoc,headsepline,footsepline,%
footexclude,BCOR12mm,DIV13]{scrbook}
\usepackage[pdftex,colorlinks=true,linkcolor=red,citecolor=red,%
 anchorcolor=red,urlcolor=red,bookmarks=true,%
 bookmarksopen=true,bookmarksopenlevel=0,plainpages=false%
 bookmarksnumbered=true,hyperindex=false,pdfstartview=,%
 ,hyperindex=false,
  ]{hyperref}

\usepackage{graphicx}

\usepackage{wrapfig}
\usepackage{footnote}
\usepackage{caption}

%  \makesavenoteenv{wrapfigure}
%  \makesavenoteenv{figure}

\makeatletter
\newcommand{\wrapfigfoot}{%
\addtocounter{footnote}{+1}%
\addtocounter{Hfootnote}{+1}%
\global\let\Hy@saved@currentHref\@currentHref%
\hyper@makecurrent{Hfootnote}%
\global\let\Hy@footnote@currentHref\@currentHref%
\global\let\@currentHref\Hy@saved@currentHref%
}
\makeatother


\begin{document}

Lorem ipsum dolor sit amet, consetetur sadipscing elitr, sed diam nonumy eirmod tempor
invidunt ut labore et dolore magna aliquyam erat, sed diam voluptua. At vero eos et
accusam et justo duo dolores et ea rebum. Stet clita kasd gubergren, no sea takimata
sanctus est Lorem ipsum dolor sit amet.Lorem ipsum dolor sit amet, consetetur sadipscing
elitr, sed diam nonumy eirmod tempor invidunt ut labore et dolore magna aliquyam erat,
sed diam voluptua. At vero eos et accusam et justo duo dolores et ea rebum. Stet

\begin{wrapfigure}{l}{0.25\textwidth}
\includegraphics[width=0.20\textwidth]{johnny}
\captionof{figure}[johnny lof]{\copyright johnny inc.\footnotemark and xyz\footnotemark}
\end{wrapfigure}
\addtocounter{footnote}{-2}%  -1 times total number of footnote(mark)s in the wrapfigure
\addtocounter{Hfootnote}{-2}% -1 times total number of footnote(mark)s in the wrapfigure
\wrapfigfoot\footnotetext{\href{http://www.google.com/}{google.com}}
\wrapfigfoot\footnotetext{just another footnote in wrapfigure environment}

ipsum dolorsit amet.Lorem ipsum dolor sit amet, consetetur sadipscing elitr, sed diam
nonumy eirmod tempor invidunt ut labore et dolore magna aliquyam erat, sed diam voluptua.
At vero eos et accusam et justo duo dolores et ea rebum. Stet clita kasd gubergren,
no sea takimata sanctus est Lorem ipsum dolor sit amet.Lorem ipsum dolor sit amet,
consetetur sadipscing elitr, sed diam nonumy eirmod tempor invidunt ut labore et dolore
magna aliquyam erat, sed diam voluptua. At vero eos et accusam et justo duo dolores
et ea rebum. Stet clita kasd gubergren, no sea takimata sanctus est Lorem ipsum dolor
sit amet.Lorem ipsum dolor sit amet, consetetur sadipscing elitr, sed diam nonumy eirmod
tempor invidunt ut labore et dolore magna aliquyam erat, sed diam voluptua. At vero eos
et accusam et justo duo dolores et ea rebum. Stet clita kasd gubergren,
no\footnote{another footnote} end.

\newpage

Lorem ipsum\ldots

\AtEndDocument{
\ifnum\value{Hfootnote}=\value{footnote}%OK
  \PackageInfo{footnote}{%
    Number of Hyperfootnotes \arabic{Hfootnote} = number of footnotes \arabic{footnote}!
    \MessageBreak}
\else
  \PackageError{footnote}{%
    Hyperfootnote \arabic{Hfootnote} != footnote \arabic{footnote}!%
   }{Did you make a mistake with\MessageBreak%
     \string\footnotemark , \string\footnotetext , or \MessageBreak%
     \string\addtocounter { Hfootnote or footnote } ?%
   }
\fi%
}

\end{document}

好的,有几个问题:

  1. \url{google.com}google.com不链接到 Google,而是链接到硬盘上的 (DOS 命令?!) 文件 。\href{http://www.google.com/}{google.com}改用,其中第一个参数是 url,第二个参数是要在文档中显示的文本。
  2. 脚注被困在环境中。因此,\footnotemark 在环境内部和\footnotetext{The text of the footnote}环境结束后都是必要的。
  3. 当使用多个脚注标记/文本时,脚注编号是错误的。此问题可以通过使用 \addtocounter{footnote}{数字}手动。
  4. Hyperref-footnote-numbers 不受以下因素影响 \addtocounter{footnote}{数字},因此也需要手动更改它们:\addtocounter{Hfootnote}{数字},另外还从 hyperref 包中复制了一些代码,我将它们打包到\wrapfigfoot命令中。

为了测试超脚注和普通脚注编号是否相等,我添加了一些要在文档末尾执行的代码。
(我只是希望它能被理解,或者至少能解决你的问题。)

相关内容