条件超链接

条件超链接

我正在根据一组相对较大的数据(意思是手动编辑是不可能的)生成一份文档。它涉及谱系,因此有很多重复(模式方面)的信息。我想做的事情之一是提供一个存储在文本文件中的链接,前提是该文件存在。类似

\IfFileExists{includes/I6.fs}{
    \href{\InputIfFileExists{includes/I6.fs}}{TheNameOfMyLink}
}{}

但是,这不起作用。我可以从代码中检查此文件是否存在,但这意味着每次添加链接时,我都需要重新运行该程序,重新生成文件,而这正是我想要避免的事情。

有什么建议么?

答案1

我认为这\InputIfFileExists不会在里面扩展\href。您必须先将文件内容读入宏,然后在 的第一个参数中使用该宏作为链接名称\href

\documentclass{article}

\usepackage{hyperref}


\newread\linkfilehandle

\newcommand{\DisplayLinkFromFile}[2]{%
  \begingroup
  \def\mylinkfile{}
  \IfFileExists{#1}{%
    \openin\linkfilehandle=#1
    \read\linkfilehandle to \mylinkfile
    \href{\mylinkfile}{#2}
    \closein\linkfilehandle
  }{%
    % Do nothing
  }
  \endgroup
}

\begin{document}

\DisplayLinkFromFile{somestupidfile}{My nice link}

\end{document}

somestupidfile.tex只包含行http://tex.stackexchange.com

相关内容