I know very similar questions have been asked, but I couldn't find a solution to my problem.
My original problem started using the glossaries
package, using an acronym inside the framed
environment, something like this:
\begin{framed}
bla bla \gls{Y2K} bla bla
\end{framed}
The expected behaviour was that next to Y2K should be a footnote, that footnote linking the acronyms, and the explaining text of the footnote at the bottom of the page.
Now I know the problem is not exactly with glossaries
and framed
, but with footnote and \mbox
or \fbox
.
Here's a minimal example that shows the problem:
\documentclass[11pt]{report}
\usepackage[pdftex,pagebackref]{hyperref}
\usepackage[acronym,toc,section=chapter,style=indexgroup,sanitize={name=false,description=false,symbol=true}]{glossaries}
\glsdisablehyper
\defglsdisplayfirst[main]{#1#4\protect\footnote{#2}}
\makeglossaries
\newglossaryentry{Y2K}{name=Y2K,description={Bla bla bla}}
\begin{document}
% Bla bla \gls{Y2K} bla bla % Works fine
\fbox{Bla bla \gls{Y2K} bla bla} % doesn't work as expected
\newpage
\printglossaries
\end{document}
I use pdflatex
, makeglossaries
, pdflatex
to compile.
So, the thing is that I need to use a footnote inside \fbox
, because framed
uses \fbox
and glossaries
uses footnote.
I already tried using this but didn't do anything:
\usepackage[stable]{footmisc}
\usepackage{footnote}
One last thing, this piece of code:
\defglsdisplayfirst[main]{#1#4\protect\footnote{#2}}
I got it from here, maybe it could be tweaked to solve this problem.
EDIT 06-DEC-2013 After a long time I've found a problem with this solution. Instead of fbox I'm using the framed enviroment. When I use the first boxedgls inside framed there's no problem. If I use another framed enviroment after, it also generates the footnote (whether there is or not a gls inside).
MWE:
\documentclass[11pt]{report}
\usepackage{etoolbox}
\usepackage{framed}
\usepackage[pdftex,pagebackref]{hyperref}
\usepackage[acronym,toc,section=chapter,style=indexgroup,sanitize={name=false,description=false,symbol=true}]{glossaries}
\glsdisablehyper
\defglsdisplayfirst[main]{#1#4\protect\footnote{#2}}
\makeglossaries
\newglossaryentry{Y2K}{name=Y2K,description={Bla bla bla}}
\newcommand\glsdoafterbox{}
\let\orgfbox\fbox
\def\fbox#1{\orgfbox{#1}\glsdoafterbox\def\glsdoafterbox{}}
\newcommand{\boxedgls}[1]{%
\glstext{#1}%
\ifglsused{#1}{}%
{%
\footnotemark
\gappto\glsdoafterbox{\footnotetext{\glsentrydesc{#1}}\glsunset{#1}}%
}%
}
\begin{document}
\begin{framed}
Bla bla \boxedgls{Y2K} bla bla
\end{framed}
\newpage
\begin{framed}
Nothing here
\end{framed}
\newpage
\printglossaries
\end{document}