为什么 itemize 环境会在分页符时改变左栏颜色?

为什么 itemize 环境会在分页符时改变左栏颜色?

leftbar在页面末尾使用环境时遇到了一些问题。似乎当它包含一个itemize在分页符之前结束的环境时,关联的颜色leftbar会变成另一种颜色而不是正确的颜色(这里是蓝色而不是绿色)。

梅威瑟:

\documentclass[a4paper, 10pt]{article}
\usepackage[margin=1.5cm, top=1.5cm, portrait]{geometry} % format de la page

\usepackage[french]{babel} % franciser le document (règles de typographie française)
\usepackage[T1]{fontenc} % améliore césures et le copié-collé dans les pdf
\usepackage[ansinew]{inputenc} % codage d'entrée du fichier

\usepackage{libertine}
\renewcommand*\familydefault{\sfdefault}  %% Only if the base font of the document is to be sans serif

\usepackage{setspace}

\usepackage{framed, color}

\usepackage[outerbars,color]{changebar}
\usepackage{lipsum}

\newcommand{\defbar}[1]{
  \cbcolor{green}
  \begin{changebar}
    \noindent\underline{Définition :} #1
  \end{changebar}
    \vspace{.4cm}
  }

\newcommand{\exebar}[1]{
  \cbcolor{blue}
  \begin{changebar}
    \noindent\underline{Exemple :} #1
  \end{changebar}
    \vspace{.4cm}
  }

\begin{document}

\begin{center}
\fontsize{16}{16} \textbf{Chapitre 1 : Algèbre générale et arithmétique}
\end{center}

\hrule

\vspace{\baselineskip}

\section{Les groupes}

\subsection{Structure de groupe}

\defbar{\lipsum[2] \lipsum[2]}

\exebar{\lipsum[2]}

\defbar{\lipsum[3-4]}

\exebar{\lipsum[4] \lipsum[6]}

\defbar{\lipsum[6] \lipsum[6]

Just another line.}

\subsection{Sous-groupe}

\defbar{Here is a new one-line text.

\begin{itemize}
\item The itemize that breaks it all.
\end{itemize}

Some extra-line.}

\exebar{Some property.}

\exebar{Some theorem.}

\end{document}

正如您在该示例中看到的,页面末尾的左侧栏在分页符之前是蓝色(而不是绿色),然后是绿色。

我已经思考这个问题有一段时间了,我所能发现的就是:

  • 颜色条问题是由于分页符和itemize分页符处的环境造成的(用一行文本替换它,蓝条就会变成绿色);
  • 由于某种原因,该左栏的颜色与下一个左栏环境相关联(如果将下一个 \exebar 更改为 \defbar,则栏颜色将变为绿色)。

我的问题如下:为什么颜色条会发生变化?我应该怎么做才能防止它发生变化?

亚历克斯。

答案1

我提供了一个绕过解决方案,不是使用,而是使用带有盒子和选项的changebar强大软件包。tcolorboxbreakableborderline

在此处输入图片描述

可以使用 来控制“条形图”的移动,使用和barshiftleft来控制条形图的颜色:defbarcolor=exebarcolor=

\documentclass[a4paper, 10pt]{article}
\usepackage[margin=1.5cm, top=1.5cm, portrait]{geometry} % format de la page

\usepackage[french]{babel} % franciser le document (règles de typographie française)
\usepackage[T1]{fontenc} % améliore césures et le copié-collé dans les pdf
\usepackage[utf8]{inputenc} % codage d'entrée du fichier


\usepackage[most]{tcolorbox}
\usetikzlibrary{calc}



\usepackage{libertine}
\renewcommand*\familydefault{\sfdefault}  %% Only if the base font of the document is to be sans serif


\usepackage{lipsum}


\newlength{\barshiftleft}
\setlength{\barshiftleft}{8pt}

\tcbset{
  defbarcolor/.colorlet=tcbcol@defbarcolor,
  exebarcolor/.colorlet=tcbcol@exebarcolor,
  chbaroptions/.style={enhanced,breakable,frame hidden, colback=white,after=\vskip0.4cm,size=tight,defbarcolor=green,exebarcolor=blue}
}

\NewDocumentCommand{\exebar}{+O{}+m}{%
  \begin{tcolorbox}[chbaroptions,#1,
    underlay={\draw[tcbcol@exebarcolor,line width = 2pt] ($(frame.north west)-(\barshiftleft,0)$) -- ($(frame.south west)-(\barshiftleft,0)$);} ]
    \noindent\underline{Exemple :} {#2}%
  \end{tcolorbox}
}

\NewDocumentCommand{\defbar}{+O{}+m}{%
  \begin{tcolorbox}[chbaroptions,#1,
    underlay={\draw[tcbcol@defbarcolor,line width = 2pt] ($(frame.north west)-(\barshiftleft,0)$) -- ($(frame.south west)-(\barshiftleft,0)$);} ]
    \noindent\underline{Définition :} {#2}%
  \end{tcolorbox}
}


\begin{document}

\begin{center}
\fontsize{16}{16} \textbf{Chapitre 1 : Algèbre générale et arithmétique}
\end{center}

\hrule

\vspace{\baselineskip}

\section{Les groupes}

\subsection{Structure de groupe}

\defbar{\lipsum[2] \lipsum[2]}

\exebar[exebarcolor=violet]{\lipsum[2]}

\defbar{\lipsum[3-4]}

\exebar{\lipsum[4] \lipsum[6]}

\defbar{\lipsum[6] \lipsum[6]

Just another line.}

\subsection{Sous-groupe}

\defbar{Here is a new one-line text.

\begin{itemize}
\item The itemize that breaks it all.
\end{itemize}

Some extra-line.

\lipsum[5]
}

\exebar{Some property.}

\exebar{Some theorem.}

\end{document}

相关内容