
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 french
verspotten, versuchen Sie dies hinzuzufügen
\addto\captionsenglish{
\renewcommand{\labelitemi}{$\bullet$}
}
Ändert grundsätzlich french
Listen, aber english
nicht (AFAIR). Also fügen wir einen solchen Schalter wieder hinzuenglish
Bearbeiten, um french
alles zusammen zu ignorieren, verwenden Sie
\usepackage[shortlabels]{enumitem}
\setlist[itemize]{label=\textbullet}
enumitem
ist ein sehr gutes Paket, das man kennen sollte, durch die shortlabels
Option ist es ein 1:1-Ersatz für das enumerate
Paket.
Antwort2
Verwenden Sie \frenchbsetup{StandardItemLabels=true}
, es babel-french
werden 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
.
Antwort3
iflang
Sie können das Paket zusammen mit enumitem
anstelle von verwenden enumerate
. Beachten Sie, dass Sie möglicherweise auch Leerzeichen angeben müssen, wenn frenchb
Sie 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}
Antwort4
Das babel
Paket führt verschiedene Aufgaben verzögert aus, d. h. wenn die \begin{document}
Anweisung angetroffen wird. Damit Ihre (Neu-)Definition von \labelitemi
funktioniert, 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 babel
und nicht damit umgeht, lesen Sie den Beitrag von @daleif.)