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