我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
强大软件包。tcolorbox
breakable
borderline
可以使用 来控制“条形图”的移动,使用和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}