有没有办法测试当前点是在脚注内还是脚注外?
我想到的用例是提供一份文档的两个版本,一个“屏幕”版本和一个“打印”版本,并且我想在打印版本中自动将 更改为\href{<URL>}{<text>}
,<text>\footnote{\url{<URL>}}
但在脚注中除外,因为这样做没有意义,\href{<URL>}{<text>}
可以更改为 <text> (\url{<URL>})
。
答案1
下面是一个适合您用例的可能答案。对于此解决方案,我重新定义了\footnote
和\href
并使用了if
-语句。要真正检查一个人是否处于某个环境中,请参阅这个问题。
\documentclass{article}
\usepackage{hyperref}
\newif\ifprinted
\printedtrue % for printet version
% \printedfalse % for screen version
\newif\iffoot
\footfalse
\ifprinted
\let\origfootnote\footnote
\renewcommand{\footnote}[1]{\foottrue\origfootnote{#1}\footfalse}
\renewcommand{\href}[2]{
\iffoot
#2 \url{#1}
\else
#2\footnote{#1}
\fi
}
\fi
\begin{document}
One of the best \TeX-communities can be found on \href{https://tex.stackexchange.com/}{\TeX.SE}.
There is a high probabilty that your \TeX-question is answered in a Q\&A-site\footnote{See for example \href{https://tex.stackexchange.com/}{\TeX.SE}.}.
\end{document}