
Estou tendo problemas com as balas de itemize
.
Preciso ter uma parte do meu documento em inglês e outra em francês. Portanto eu uso:
\usepackage[english,french]{babel}
então, no meu documento, uso quando necessário:
\selectlanguage{english}
\selectlanguage{french}
Também usei no preâmbulo:
\renewcommand{\labelitemi}{$\bullet$}
E o resultado é que na minha lista não tenho uma bala e sim um travessão! E eu gostaria de uma bala.
Algo que notei é que se eu usar apenas
\usepackage[english]{babel}
(então todo o documento está em inglês) o problema desaparece e eu tenho os marcadores. Mas preciso do inglês e do francês por causa das palavras “capítulo” e “chapitre”, por exemplo.
Alguém tem uma solução para poder usar marcadores nas listas de um documento com inglês e francês?
Aqui está um exemplo prático:
\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}
Responder1
Isso é french
zombaria, tente adicionar isso
\addto\captionsenglish{
\renewcommand{\labelitemi}{$\bullet$}
}
Basicamente french
altera listas, mas english
não (AFAIR). Então, adicionamos essa mudança de volta paraenglish
Edite, para ignorar french
tudo junto, use
\usepackage[shortlabels]{enumitem}
\setlist[itemize]{label=\textbullet}
enumitem
é um pacote muito bom de se conhecer, a shortlabels
opção o torna um substituto 1-1 para o enumerate
pacote.
Responder2
Use \frenchbsetup{StandardItemLabels=true}
, portanto babel-french
não usará listas detalhadas no estilo francês.
\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}
(Usei um truque tortuoso para obter a saída em uma única página, não mostrada aqui.) Observe que com o francês é altamente recomendável ter arquivos \usepackage[T1]{fontenc}
. Eu não posso recomendar utf8x
.
Responder3
Você pode usar o iflang
pacote junto com enumitem
, em vez de enumerate
. Observe que talvez você também precise especificar espaçamentos ao frenchb
passar para enumitem. Se quiser voltar com o símbolo de bala, mesmo na parte francesa, é só usar \setlistitemize,1]{label=\textbullet}
. Aliás, acho que o marcador itemize em francês deveria ser um arquivo 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}
Responder4
O babel
pacote executa diversas tarefas de maneira retardada, ou seja, quando a \begin{document}
instrução é encontrada. Para que sua (re)definição \labelitemi
funcione, você também precisa atrasá-la. Assim, substitua
\renewcommand{\labelitemi}{$\bullet$}
com
\AtBeginDocument{\renewcommand{\labelitemi}{$\bullet$}}
ou, melhor ainda, com
\AtBeginDocument{\renewcommand{\labelitemi}{\textbullet}}
(Se você deseja uma solução que funcione explicitamente com babel
ela, consulte a postagem de @daleif.)