Renewcommand labelitem이 여러 언어에서 작동하지 않습니다.

Renewcommand labelitem이 여러 언어에서 작동하지 않습니다.

에 대한 총알에 문제가 있습니다 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}

(여기에는 표시되지 않은 단일 페이지에 출력을 얻기 위해 교활한 트릭을 사용했습니다.) 프랑스어의 경우 \usepackage[T1]{fontenc}. 나는 추천할 수 없다 utf8x.

여기에 이미지 설명을 입력하세요

답변3

대신 , iflang와 함께 패키지를 사용할 수 있습니다 . 열거 항목에 넘겨줄 때 간격을 지정해야 할 수도 있습니다 . 프랑스어 부분에서도 글머리 기호 기호로 돌아가려면 을 사용하면 됩니다 . 그런데 프랑스어의 항목화 표시는 .enumitemenumeratefrenchb\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의 게시물을 참조하세요.)

관련 정보