59

I need the characters «» in my LaTeX document. I'm writing in English though, and I don't want to use Babel. I have the following hack but I'd like a better way:

\newcommand{\q}[1]{{%
\font\larm = larm1000%
\larm%
\char 190}{#1}{%
\font\larm = larm1000%
\larm%
\char 191}}

6 Answers 6

65

There are several ways to do this:

  • With standard methods, you will find \guillemotleft and \guillemotright. For this you need \usepackage[T1]{fontenc} (which is recommended anyways).
  • Using the language switching capabilities of babel, e.g. \foreignlanguage.
  • Using csquotes and its \foreignquote command.

Personally, I would recommend the third option.

The similar looking mathmode symbols ≪ and ≫ (much less/greater than) are created with \ll and \gg.

7
  • 10
    I'd probably favour csquotes, as it means you keep the semantics of the mark-up and can reuse the source in other places more readily.
    – Joseph Wright
    Sep 2, 2010 at 18:34
  • 14
    Unfortunately it is indeed spelled incorrectly. It should be guillemetleft and guillemetright (with an "e"). A guillemot with an "o" is a seabird :-) But I think we're stuck with it. Jan 19, 2012 at 10:48
  • @PeterFlynn In my case it works only with ''o''.
    – Dog_69
    Oct 16, 2019 at 22:51
  • 2
    Of course. Read what I said. It was misspelled when created. Jan 4, 2020 at 12:19
  • See my last answer, \MarkOuterQuote{"} is simpler with csquote package
    – Metal3d
    Apr 28, 2020 at 7:01
32

There's also a convenient way to do it with Latin Modern:

\documentclass{article}

\usepackage{lmodern}

\begin{document}

<<Quoted text>>.

\end{document}
3
  • 1
    Nice and intuitive! Mar 8, 2011 at 15:59
  • Tried inside a knitr document. and this was the only way that really worked for me. I must admit I am surprised cause the other answers looked sound, too. However thanks Andrey!
    – hans0l0
    Dec 19, 2012 at 9:45
  • Does not work for me. I use koma-script book with babel
    – lalebarde
    May 6, 2014 at 15:03
17

You could type it directly if you use an utf8 encoding :

\documentclass{article}
\usepackage[T1]{fontenc}
\usepackage[utf8]{inputenc}
\begin{document}
«For example.»
\end{document}

But, the automatic spacing isn't correct — at least for French typography. As suggested in the comments, you can always input manually the correct spacing (~, for non-breaking space).

1
  • 1
    I think you can add the due non-breaking spaces manually with the ~ character.
    – Olivier
    Feb 26, 2023 at 21:45
13

I find this way is very convenient:

package: \usepackage[frenchb]{babel}

in text: \og text \fg{}

2
  • 4
    This is indeed the correct way when using French with babel.
    – egreg
    Oct 31, 2014 at 20:35
  • @egreg and wrong for non-French text.
    – vonbrand
    Sep 1, 2018 at 23:09
4

The best I now use in french is:

\usepackage{csquotes}
\MakeOuterQuote{"}

I now can use " to as "guillemet" and it's correctly replaced by « and »

3
  • This did not work in French for me.
    – Cedric
    Aug 3, 2020 at 13:04
  • Weird, it works perfectly for me (I'm french)
    – Metal3d
    Jan 9, 2021 at 8:35
  • Have you tried with Babel, cause it definitely worked here
    – Tiwenty
    Jul 21, 2021 at 15:35
2

I tried several of those options all leading to a small square instead of «». This did the trick for me.

\documentclass{article}  
\usepackage[francais]{babel} % guillemets \og text \fg{}
\usepackage{aeguill} % guillemets
 \begin{document}
 \og text \fg{}
 \end{document}
1
  • 1
    The OP requests this without use of Babel. Also, Babel has various unwanted side effects such as hyphenation, change of parindent in the first line, change of itemization bullets etc. Mar 28, 2021 at 21:14

You must log in to answer this question.