6

In Markdown, you can do

[google.][1]
...
[1]:http://www.google.com

In LaTeX, I've tried

\href{\ref{1}}{google?}
...
\label{1}{http://www.google.com}

But that doesn't work, and I'm tired of having long URLs in my document. How do you label and reference a URL?

  • 2
    FWIW, this is the default style in ConTeXt: see documentation for \useURL – Aditya Jun 12 '13 at 13:43
  • Is there any package I can import to get this functionality in regular LaTeX? – Scott Jun 12 '13 at 13:49
7

Here a small suggestion:

\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}

The procedure can be simplified if you define your links in the preamble. Then you don't need to write something to the aux file.

4

A simple solution. In my document preamble, I wrote:

\newcommand{\sage}{http://www.sagemath.org}

Then, when I wanted to reference it, I used

\href{\sage}{This text will be linked to sagemath.org}
1

And I've since written a package called latex-markdown-linking to include similar formatting.

\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}

will give you

Bode Miller has won 6 Olympic medals and 5 World Cup medals.

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service, privacy policy and cookie policy

Not the answer you're looking for? Browse other questions tagged or ask your own question.