标记链接,Markdown 风格

标记链接,Markdown 风格

在 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枚世界杯奖牌。

相关内容