列表和小页面缩进问题

列表和小页面缩进问题

有时我需要在小页面中附上问题列表,以便在右侧放置图片。当小页面以列表开头时,会出现缩进问题,而当前面有一些文本时,缩进问题就会解决。如何避免此问题。

第三种情况是我想要避免的:我希望它看起来像第一种。

在此处输入图片描述

\documentclass[10pt,a4paper,french]{article}

\usepackage[utf8]{inputenc}
\usepackage[T1]{fontenc}
\usepackage[french]{babel}

\usepackage{tikz,xparse,calc}

% Redefinir les etiquettes des listes
\usepackage[flushleft,alwaysadjust]{paralist}
    %[flushleft,alwaysadjust] les options annulent le décalage vers la droite

% Défini les étiquettes des listes par défaut.
\setdefaultenum{\bf 1.}{a)}{\it i.)}{}

% Défini les étiquettes des itemize par défaut.
\setdefaultitem{$\bullet$}{$\circ$}{}{}

\setdefaultleftmargin{1.5em}{1.5em}{}{}{}{}

\newcounter{ex}

\NewDocumentEnvironment{ListExos}{sO{0}}{%
    \setcounter{ex}{#2}
    \begin{list}
        % défini la forme de l'étiquette
        {\stepcounter{ex}{%
        \tikz[anchor=base, baseline]
            \node[RndBox,minimum width=20pt] {\theex} ;}}
        % défini les longueurs
        {\setlength{\labelwidth}{0pt}
         \setlength{\leftmargin}{0pt}
         \setlength{\itemindent}{0pt}
         \IfBooleanTF{#1}{\setlength{\itemsep}{0pt}}{}
         %\setlength{\parsep}{2pt} % Espace entre deux paragraphes dans une liste
         %\setlength{\itemsep}{.5em} ne pas toucher car cela
         %\setlength{\labelsep}{0pt} influence les sous liste
         }%
        %\vspace{0.5em}
    }
    {\end{list}}

\tikzset{RndBox/.style args={#1 and #2}{%
    thick,
    fill=#1,
    inner sep=0pt,
    draw=#2,
    text=#2,
    rounded corners=2pt,
    minimum width=.6cm,
    minimum height=1.25em,
    text depth = 0ex,
    font = \bfseries\sffamily
    },
    RndBox/.default={gray!25 and black}
}

\begin{document}

\begin{ListExos}
\item \begin{compactenum}
\item bla
\item bla
\end{compactenum}
\end{ListExos}

\bigskip

\begin{ListExos}
\item \hspace{-20pt}%
\begin{minipage}[t]{\linewidth-4cm}
\raggedrigth% ne pas commencer par une liste directement
\hspace{20pt} Some text before the first question.

\begin{compactenum}
\item bla
\item bla
\end{compactenum}
\end{minipage}
\end{ListExos}

\bigskip

How make it work without some text before the first question.

\begin{ListExos}
\item \hspace{-20pt}%
\begin{minipage}[t]{\linewidth-4cm}
\raggedrigth% ne pas commencer par une liste directement
\hspace{20pt}\begin{compactenum}
\item bla
\item bla
\end{compactenum}
\end{minipage}
\end{ListExos}


\verb+\setlength\itemindent{-20pt}+ doesn't for several lines

\bigskip

\begin{ListExos}
\item \begin{minipage}[t]{5cm}
\raggedright% ne pas commencer par une liste directement

\begin{compactenum}

\item Reproduire une figure du même type que celle ci-contre.

\setlength\itemindent{-20pt}

\item Contruire deux points $B$ et $C$ tels que C soit inscrit dans le triangle $ABC$.

Proposer plusieurs solutions.
\end{compactenum}
\end{minipage}
\end{ListExos}

\end{document}

答案1

我会做很多不同的事情,但是这里有一个针对您上一个环境的可能解决方法:

\begin{ListExos}
  \item %\hspace{-20pt}%
    \begin{minipage}[t]{\linewidth-4cm}
      %\hspace{20pt}%  
      \raggedright% ne pas commencer par une liste directement
      \begin{compactenum}%%
        \item bla
        \setlength\itemindent{-20pt}
        \item bla
      \end{compactenum}
    \end{minipage}
\end{ListExos}

在此处输入图片描述

您的问题部分在于使用了\hspace{20pt}。您正在创建一个框,这将导致列表环境添加垂直空间。相反,我所做的是\itemindent在列表中的项目后重置 。

答案2

把 放进item去就minipage解决了问题。

在此处输入图片描述

\documentclass[10pt,a4paper,french]{article}

\usepackage[utf8]{inputenc}
\usepackage[T1]{fontenc}
\usepackage[french]{babel}

\usepackage{tikz,xparse,calc}

% Redefinir les etiquettes des listes
\usepackage[flushleft,alwaysadjust]{paralist}
    %[flushleft,alwaysadjust] les options annulent le décalage vers la droite

% Défini les étiquettes des listes par défaut.
\setdefaultenum{\bf 1.}{a)}{\it i.)}{}

% Défini les étiquettes des itemize par défaut.
\setdefaultitem{$\bullet$}{$\circ$}{}{}

\setdefaultleftmargin{1.5em}{1.5em}{}{}{}{}

\newcounter{ex}

\NewDocumentEnvironment{ListExos}{sO{0}}{%
    \setcounter{ex}{#2}
    \begin{list}
        % défini la forme de l'étiquette
        {\stepcounter{ex}{%
        \tikz[anchor=base, baseline]
            \node[RndBox,minimum width=20pt] {\theex} ;}}
        % défini les longueurs
        {\setlength{\labelwidth}{0pt}
         \setlength{\leftmargin}{0pt}
         \setlength{\itemindent}{0pt}
         \IfBooleanTF{#1}{\setlength{\itemsep}{0pt}}{}
         %\setlength{\parsep}{2pt} % Espace entre deux paragraphes dans une liste
         %\setlength{\itemsep}{.5em} ne pas toucher car cela
         %\setlength{\labelsep}{0pt} influence les sous liste
         }%
        %\vspace{0.5em}
    }
    {\end{list}}

\tikzset{RndBox/.style args={#1 and #2}{%
    thick,
    fill=#1,
    inner sep=0pt,
    draw=#2,
    text=#2,
    rounded corners=2pt,
    minimum width=.6cm,
    minimum height=1.25em,
    text depth = 0ex,
    font = \bfseries\sffamily
    },
    RndBox/.default={gray!25 and black}
}

\begin{document}
\begin{ListExos}
\begin{minipage}[t]{5cm}
\raggedright% ne pas commencer par une liste directement
\item \begin{compactenum}

\item Reproduire une figure du même type que celle ci-contre.

\item Contruire deux points $B$ et $C$ tels que C soit inscrit dans le triangle $ABC$.

Proposer plusieurs solutions.
\end{compactenum}
\end{minipage}
\end{ListExos}

\end{document}

相关内容