
の箇条書きに問題がありますitemize
。
文書の一部を英語で、別の部分をフランス語で書く必要があります。そのため、次のようにします。
\usepackage[english,french]{babel}
私の文書では、必要に応じて次のように使用します。
\selectlanguage{english}
\selectlanguage{french}
私は前文でも次のように書きました:
\renewcommand{\labelitemi}{$\bullet$}
その結果、私のリストには箇条書きではなくダッシュが表示されました。箇条書きが欲しいです。
私が気づいたのは、
\usepackage[english]{babel}
(つまり、ドキュメント全体が英語になります) 問題はなくなり、箇条書きが表示されます。ただし、たとえば「chapter」と「chapitre」という単語があるため、英語とフランス語の両方が必要です。
それで、英語とフランス語の文書内のリストに箇条書きを使用できるようにする解決策を持っている人はいますか?
実際の例は以下になります:
\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}
答え1
それはfrench
嘲笑です、これを追加してみてください
\addto\captionsenglish{
\renewcommand{\labelitemi}{$\bullet$}
}
基本的にfrench
リストを変更しますが、english
実際には変更しません(AFAIR)。そのため、このようなスイッチをenglish
編集、french
すべてを無視するには、
\usepackage[shortlabels]{enumitem}
\setlist[itemize]{label=\textbullet}
enumitem
知っておくと非常に良いパッケージです。shortlabels
オプションにより、パッケージの 1 対 1 の置き換えが可能になりますenumerate
。
答え2
を使用します\frenchbsetup{StandardItemLabels=true}
。babel-french
フランス語スタイルの項目別リストは使用されません。
\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}
(出力を 1 ページに収めるために巧妙なトリックを使用しましたが、ここでは示していません。) フランス語の場合は を使用することを強くお勧めします\usepackage[T1]{fontenc}
。 はお勧めできませんutf8x
。
答え3
の代わりに、iflang
と一緒に パッケージを使用できます。enumitem に渡すときにスペースも指定する必要があることに注意してください。箇条書き記号に戻りたい場合は、フランス語の部分でも を使用します。ちなみに、フランス語の itemize マーカーは であるべきだと思います。enumitem
enumerate
frenchb
\setlistitemize,1]{label=\textbullet}
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}
答え4
パッケージは、命令に遭遇したbabel
ときに、さまざまなタスクを遅延して実行します\begin{document}
。 の(再)定義を\labelitemi
機能させるには、遅延させる必要があります。したがって、
\renewcommand{\labelitemi}{$\bullet$}
と
\AtBeginDocument{\renewcommand{\labelitemi}{$\bullet$}}
あるいは、もっと良いのは
\AtBeginDocument{\renewcommand{\labelitemi}{\textbullet}}
(明示的に機能するソリューションが必要な場合はbabel
、@daleif の投稿を参照してください。)