如何测试我当前是否在脚注中

如何测试我当前是否在脚注中

有没有办法测试当前点是在脚注内还是脚注外?

我想到的用例是提供一份文档的两个版本,一个“屏幕”版本和一个“打印”版本,并且我想在打印版本中自动将 更改为\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}

相关内容