有时我需要在小页面中附上问题列表,以便在右侧放置图片。当小页面以列表开头时,会出现缩进问题,而当前面有一些文本时,缩进问题就会解决。如何避免此问题。
第三种情况是我想要避免的:我希望它看起来像第一种。
\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}