8

I'm having troubles with the bullets for itemize.
I need to have one part of my document in English and one part in French. Therefore I use:

\usepackage[english,french]{babel}

then in my document I use when it's needed:

\selectlanguage{english}
\selectlanguage{french}

I also used in the preamble:

\renewcommand{\labelitemi}{$\bullet$}

And the result is that in my list I do not have a bullet but a dash! And I would like a bullet.

Something I noticed is that if I only use

\usepackage[english]{babel}

(so the entire document is in English) the problem disappears and I have the bullets. But I need both English and French because of the word "chapter" and "chapitre" for example.

So does anyone have a solution to be able to use bullets for the lists in a document with English and French?

Here is a working example:

\documentclass[10pt,a4paper]{report}
\usepackage[utf8x]{inputenc}
\usepackage{ucs}
\usepackage[english,french]{babel}
%\usepackage[english]{babel}
\usepackage{amsmath,amsthm}
\usepackage{amsfonts}
\usepackage{amssymb}
\usepackage{enumerate}

\renewcommand{\labelitemi}{$\bullet$}

\begin{document}

\selectlanguage{english}

\chapter{First chapter}

This is my list :

 \begin{itemize}
    \item Value 1
    \item Value 2
 \end{itemize}

 \selectlanguage{french}
 \chapter{Second chapitre}

 Ceci est ma liste:

 \begin{itemize}
    \item Valeur 1
    \item Valeur 2
 \end{itemize}

 \end{document}
3
  • Welcome to TeX.SX! Please help us to help you and add a minimal working example (MWE) that illustrates your problem. It will be much easier for us to reproduce your situation and find out what the issue is when we see compilable code, starting with \documentclass{...} and ending with \end{document}. Aug 20, 2014 at 11:13
  • Welcome to the site. In order to help it would be a lot better if you would please provide a fill minimale example that we can copy to our own systems and try in order to see if we get the same problematic result as you describe.
    – daleif
    Aug 20, 2014 at 11:13
  • As you advised I added a working example. Aug 20, 2014 at 11:23

4 Answers 4

9

That is french mocking about, try adding this

\addto\captionsenglish{
  \renewcommand{\labelitemi}{$\bullet$}
}

Basically french alters lists, but english does not (AFAIR). So we add such a switch back to english


Edit, to ignore french all together, use

\usepackage[shortlabels]{enumitem}
\setlist[itemize]{label=\textbullet}

enumitem is a very good package to know, the shortlabels option makes it a 1-1 replacement for the enumerate package.

4
  • I tried your solution. It's changes the bullets for the english part but not the french part. I also added addto\captionsfrench{} and it still doesn't work for the french part. Aug 20, 2014 at 12:20
  • @user1314776, see the update
    – daleif
    Aug 20, 2014 at 13:15
  • Perfect! That works for both now! Thanks a lot! Aug 20, 2014 at 13:28
  • Thanks a lot, the second part did the trick ! But seriously Latex...
    – Fritzip
    Jul 19, 2018 at 5:54
5

Use \frenchbsetup{StandardItemLabels=true}, so babel-french will not use French style itemized lists.

\documentclass[10pt,a4paper]{report}
\usepackage[T1]{fontenc}
\usepackage[utf8]{inputenc}
\usepackage[english,french]{babel}
\usepackage{amsmath,amsthm}
\usepackage{amsfonts}
\usepackage{amssymb}
\usepackage{enumerate}

\frenchbsetup{StandardItemLabels=true}

\begin{document}

\selectlanguage{english}

\chapter{First chapter}

This is my list:

\begin{itemize}
\item Value 1
\item Value 2
\end{itemize}

\selectlanguage{french}

\chapter{Second chapitre}

Ceci est ma liste:

\begin{itemize}
\item Valeur 1
\item Valeur 2
\end{itemize}

\end{document}

(I used a devious trick to get the output in a single page, not shown here.) Note that with French it is highly recommended to have \usepackage[T1]{fontenc}. I can't recommend utf8x.

enter image description here

0
2

You can use the iflang package, together with enumitem, instead of enumerate. Note that maybe you'll also have to specify spacings as frenchbhands over to enumitem. If you want to come back with the bullet symbol, even in the French part, just use \setlistitemize,1]{label=\textbullet}. Btw, I think the itemize marker in french should be an endash.

\documentclass[10pt, a4paper]{report}
\usepackage[utf8]{inputenc}
\usepackage[T1]{fontenc}
\usepackage[english,french]{babel}
\usepackage{iflang}

\usepackage{enumitem}

\setlist[itemize, 1]{label = \IfLanguageName{french}{\textendash}{\textbullet}}

\begin{document}

\selectlanguage{english}

\chapter{First chapter}

This is my list :

 \begin{itemize}
    \item Value 1
    \item Value 2
 \end{itemize}

 \selectlanguage{french}
 \chapter{Second chapitre}

 Ceci est ma liste:

 \begin{itemize}
    \item Valeur 1
    \item Valeur 2
 \end{itemize}


 \chapter{Chapitre troisième}

\setlist[itemize, 1]{label = \textbullet}
 Ceci est ma liste:

 \begin{itemize}
    \item Valeur 1
    \item Valeur 2
 \end{itemize}

 \end{document} 

enter image description here

enter image description here

7
  • 1
    Why utf8x instead of utf8? And why package ucs (same question as ucs is loaded by utf8x)?
    – cgnieder
    Aug 20, 2014 at 12:43
  • @cgnieder: I don't know. It was in the O.P.'s minimal example, and I left it as is. But you're right: I already removed unnecessary packages, I'll change my answer at once.
    – Bernard
    Aug 20, 2014 at 12:53
  • Thanks for the feedback on the packages. I am not an expert in latex and I cam across codes that used these packages this way so I kept this (bad) habit. But I'll correct it. Regarding the solution, it works for the english part but not the french part. Aug 20, 2014 at 13:27
  • Actually the edit made by @daleif (above) corrected the problem. Aug 20, 2014 at 13:29
  • @user1314776: do you mean you do not have dashes for the French part, as I get with my example?
    – Bernard
    Aug 20, 2014 at 13:42
1

The babel package performs various tasks in a delayed manner, i.e., when the \begin{document} instruction is encountered. To get your (re)definition of \labelitemi to work, you also need to delay it. Thus, replace

\renewcommand{\labelitemi}{$\bullet$}

with

\AtBeginDocument{\renewcommand{\labelitemi}{$\bullet$}}

or, better yet, with

\AtBeginDocument{\renewcommand{\labelitemi}{\textbullet}}

(If you want a solution that works explicitly with babel than around it, see the posting of @daleif.)

You must log in to answer this question.

Not the answer you're looking for? Browse other questions tagged .