Renewcommand-Labelitem funktioniert nicht mit mehreren Sprachen

Renewcommand-Labelitem funktioniert nicht mit mehreren Sprachen

Ich habe Probleme mit den Aufzählungszeichen für itemize.
Ich muss einen Teil meines Dokuments auf Englisch und einen auf Französisch haben. Daher verwende ich:

\usepackage[english,french]{babel}

dann verwende ich in meinem Dokument, wenn es nötig ist:

\selectlanguage{english}
\selectlanguage{french}

Ich habe in der Präambel auch verwendet:

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

Und das Ergebnis ist, dass ich in meiner Liste keinen Aufzählungspunkt, sondern einen Strich habe! Und ich hätte gern einen Aufzählungspunkt.

Mir ist aufgefallen, dass wenn ich nur

\usepackage[english]{babel}

(das gesamte Dokument ist also auf Englisch) Das Problem verschwindet und ich habe die Aufzählungszeichen. Aber ich brauche sowohl Englisch als auch Französisch, zum Beispiel wegen der Wörter „Kapitel“ und „chapitre“.

Kennt also jemand eine Lösung, um in einem Dokument mit Englisch und Französisch Aufzählungszeichen für Listen verwenden zu können?

Hier ist ein funktionierendes Beispiel:

\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}

Antwort1

Das ist frenchverspotten, versuchen Sie dies hinzuzufügen

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

Ändert grundsätzlich frenchListen, aber englishnicht (AFAIR). Also fügen wir einen solchen Schalter wieder hinzuenglish


Bearbeiten, um frenchalles zusammen zu ignorieren, verwenden Sie

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

enumitemist ein sehr gutes Paket, das man kennen sollte, durch die shortlabelsOption ist es ein 1:1-Ersatz für das enumeratePaket.

Antwort2

Verwenden Sie \frenchbsetup{StandardItemLabels=true}, es babel-frenchwerden also keine Einzelauflistungen im französischen Stil verwendet.

\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}

(Ich habe einen raffinierten Trick verwendet, um die Ausgabe auf einer einzigen Seite zu erhalten, der hier nicht gezeigt wird.) Beachten Sie, dass bei Französisch die Verwendung von dringend empfohlen wird \usepackage[T1]{fontenc}. Ich kann dies nicht empfehlen utf8x.

Bildbeschreibung hier eingeben

Antwort3

iflangSie können das Paket zusammen mit enumitemanstelle von verwenden enumerate. Beachten Sie, dass Sie möglicherweise auch Leerzeichen angeben müssen, wenn frenchbSie sie an enumitem übergeben. Wenn Sie das Aufzählungszeichen zurückgeben möchten, auch im französischen Teil, verwenden Sie einfach \setlistitemize,1]{label=\textbullet}. Übrigens denke ich, dass der Aufzählungsmarker im Französischen ein sein sollte 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} 

Bildbeschreibung hier eingeben

Bildbeschreibung hier eingeben

Antwort4

Das babelPaket führt verschiedene Aufgaben verzögert aus, d. h. wenn die \begin{document}Anweisung angetroffen wird. Damit Ihre (Neu-)Definition von \labelitemifunktioniert, müssen Sie sie auch verzögern. Ersetzen Sie daher

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

mit

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

oder noch besser mit

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

(Wenn Sie eine Lösung suchen, die explizit damit babelund nicht damit umgeht, lesen Sie den Beitrag von @daleif.)

verwandte Informationen