Take the 2-minute tour ×
TeX - LaTeX Stack Exchange is a question and answer site for users of TeX, LaTeX, ConTeXt, and related typesetting systems. It's 100% free, no registration required.

I need to write document containing a lot of URLs but some fragments of these URLs have to be in bold. How can I accomplished this? For urls I use \nolinkurl but I can't use \bf in it.

share|improve this question

1 Answer 1

up vote 14 down vote accepted

You can select the font used for URL using \urlstyle. However bold font isn't supported out-of-the-box. You need to patch the required style definitions as shown below. You need to use a font which supports a bold+text-typer style (expect you want to have the URLs in normal Roman style).

You need to mark the parts of the URL which is different with a different macro. You can define these macros using \DefineUrlCommand from the url package. Note that \url is defined by the url package which is loaded by hyperref which then redefines this macro to an hyperlinked version and provides \nolinkurl as replacement.

Update: I added underline style as now requested. This can be done with the help of the ulem package. I also added other fancy URL styles.

Update 2: Simplified code. Added color example.

\documentclass{article}

\usepackage{hyperref}
%% works with `url` only as well:
%\usepackage{url}

% Use a font which gives you bold text-typer:
\usepackage[T1]{fontenc}
\usepackage{lmodern}

\DeclareUrlCommand{\tturl}{\urlstyle{tt}}
\DeclareUrlCommand{\bftturl}{\def\UrlFont{\bfseries}}
\DeclareUrlCommand{\bfurl}{\def\UrlFont{\bfseries\ttfamily}}

% Colors:
\usepackage{xcolor}
\DeclareUrlCommand{\redurl}{\def\UrlFont{\ttfamily\color{red}}}

% More fancy URL styles:
\usepackage[normalem]{ulem}

\makeatletter
\newcommand*\DeclareFancyUrlCommand[2]{%
    \expandafter\DeclareFancy@UrlCommand
    \expandafter{\csname fancyurl@\expandafter\@gobble\string#2\endcsname}{#1}{#2}%
}
\def\DeclareFancy@UrlCommand#1#2#3{%
    \let#1\empty % must not be \relax
    \useunder{#3}{#1}{}%
    \DeclareUrlCommand{#2}{\def\UrlFont{\ttfamily#1}}%
}
\makeatother

\DeclareFancyUrlCommand{\ulurl}{\uline}
\DeclareFancyUrlCommand{\uulurl}{\uuline}
\DeclareFancyUrlCommand{\uwurl}{\uwave}
\DeclareFancyUrlCommand{\sourl}{\sout}
\DeclareFancyUrlCommand{\xourl}{\xout}
\DeclareFancyUrlCommand{\daurl}{\dashuline}
\DeclareFancyUrlCommand{\dourl}{\dotuline}

\begin{document}

\par\bfurl{http://www.example.com/allbold-onlybold}
\par\bftturl{http://www.example.com/allbold-intexttyper}
\par\tturl{http://www.example.com/}\bftturl{onlythisisbold}
\par\tturl{http://www.example.com/}\ulurl{special$_%part}\tturl{/normal/%$^_/again}
\par\tturl{http://www.example.com/}\uulurl{special$_%part}\tturl{/normal/%$^_/again}
\par\tturl{http://www.example.com/}\uwurl{special$_%part}\tturl{/normal/%$^_/again}
\par\tturl{http://www.example.com/}\sourl{special$_%part}\tturl{/normal/%$^_/again}
\par\tturl{http://www.example.com/}\xourl{special$_%part}\tturl{/normal/%$^_/again}
\par\tturl{http://www.example.com/}\daurl{special$_%part}\tturl{/normal/%$^_/again}
\par\tturl{http://www.example.com/}\dourl{special$_%part}\tturl{/normal/%$^_/again}
\par\tturl{http://www.example.com/}\redurl{special$_%part}\tturl{/normal/%$^_/again}

\end{document}

Result:

Result

share|improve this answer
    
And how can I get underlined parts? Parts in bold are hard to notice when font size is small. –  jesper Mar 3 '11 at 18:16
    
@jesper: Here you go. For completeness I added other styles as well :-) –  Martin Scharrer Mar 3 '11 at 19:07

Your Answer

 
discard

By posting your answer, you agree to the privacy policy and terms of service.

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