在 Markdown 中你可以这样做
[google.][1]
...
[1]:http://www.google.com
在 LaTeX 中,我尝试过
\href{\ref{1}}{google?}
...
\label{1}{http://www.google.com}
但这样做不行,我厌倦了文档中冗长的 URL。如何标记和引用 URL?
答案1
这里有一个小建议:
\documentclass[a4paper]{article}
\usepackage{hyperref}
\makeatletter
\newcommand*\makrdownlink[2]{%
\immediate\write\@auxout{%
\string\expandafter\string\gdef\string\csname\space markdownlink#1\string\endcsname{#2}%
}%
}
\newcommand*\makrdownref[2]{%
\@ifundefined{markdownlink#1}
{\typeout{Undefined ref~markdownlink#1}\textbf{#2}}%
{\href{\@nameuse{markdownlink#1}}{#2}}%
}
\makeatother
\begin{document}
\makrdownref{2}{google}
\makrdownlink{2}{www.google.com}
\end{document}
如果您在前言中定义链接,则可以简化该过程。这样您就不需要向辅助文件中写入任何内容。
答案2
一个简单的解决方案。在我的文档序言中,我写道:
\newcommand{\sage}{http://www.sagemath.org}
然后,当我想引用它时,我使用
\href{\sage}{This text will be linked to sagemath.org}
答案3
从那时起,我写了一个名为latex-markdown 链接包括类似的格式。
\usepackage{hyperref} % required by linking.sty
\usepackage{linking} % include linking.sty in your compile folder
% Markdown equivalent: [Bode Miller]:https://...
\SSdefine{Bode Miller}{https://en.wikipedia.org/wiki/Bode_Miller}
\begin{document}
% Markdown equivalent: [Bode Miller] has won...
\SSlink{Bode Miller} has won 6 Olympic medals and 5 World Cup medals.
\end{document}
会给你
博德·米勒曾获6枚奥运奖牌、5枚世界杯奖牌。