Enumitem:父列表改变嵌套列表的属性

Enumitem:父列表改变嵌套列表的属性

如果我有一个嵌套列表(基于 enumitem),例如:

\begin{itemize}
\item A
\item A
\item
  \begin{enumerate}[nosep,leftmargin=3cm,labelsep=0pt]
  \item B
  \item K
    \begin{itemize}
    \item Z
    \item P
    \end{itemize}
  \end{enumerate}
\end{itemize}

嵌套列表将采用父级的值,产生奇怪的结果,例如:

在此处输入图片描述

(查看 Z/P 与标签的接近程度)

是否可以将设置“隔离”到单个列表中?我想我可以在 的定义中手动写入所有参数,itemize但我不知道默认值是什么,也不知道要设置的所有值的列表是什么(这似乎有点脏)。

平均能量损失

\documentclass{article}
\usepackage{xcolor}
\usepackage{enumitem}
\newcommand*{\marvosymbol}[1]{{\fontfamily{mvs}\fontencoding{U}\fontseries{m}\fontshape{n}\selectfont\char#1}}
\setlist[itemize]{label={\strut\textcolor{blue!50!white}{\marvosymbol{123}}},leftmargin=6mm,}


\begin{document}


\begin{itemize}
\item A
\item A
\item
  \begin{enumerate}[nosep,leftmargin=3cm,labelsep=0pt]
  \item B
  \item K
    \begin{itemize}
    \item Z
    \item P
    \end{itemize}
  \end{enumerate}
\end{itemize}

\end{document}

答案1

您想要这样的东西吗?或者,鉴于您想要的东西不可用,这样的方法是否是一种合理的解决方法?

基本上,我们在文档开头保存各个维度的值,并设置所有列表以使用这些值。还提供了一个宏来打印当前值和默认值。

\documentclass[a4paper]{article}
% ateb: https://tex.stackexchange.com/a/700973/ addaswyd o gwestiwn tobiasBora: https://tex.stackexchange.com/q/700886/
\usepackage[scale=.75]{geometry}
\usepackage{xcolor}
\usepackage{enumitem}
\newcommand*{\marvosymbol}[1]{{\fontfamily{mvs}\fontencoding{U}\fontseries{m}\fontshape{n}\selectfont\char#1}}
\setlist[itemize]{label={\strut\textcolor{blue!50!white}{\marvosymbol{123}}},leftmargin=6mm,}
\newlength\defaultlabelsep
\newlength\defaultitemsep
\newlength\defaultparsep
\newlength\defaulttopsep
\newlength\defaultpartopsep
\newlength\defaultlistparindent
\newlength\defaultlabelwidth
\newlength\defaultitemindent
\newlength\defaultleftmargin
\newlength\defaultrightmargin
\AtBeginDocument{%
  \setlength\defaultlabelsep{\labelsep}%
  \setlength\defaultitemsep{\itemsep}%
  \setlength\defaultparsep{\parsep}%
  \setlength\defaulttopsep{\topsep}%
  \setlength\defaultpartopsep{\partopsep}%
  \setlength\defaultlistparindent{\listparindent}%
  \setlength\defaultlabelwidth{\labelwidth}%
  \setlength\defaultitemindent{\itemindent}%
  \setlength\defaultleftmargin{\leftmargin}%
  \setlength\defaultrightmargin{\rightmargin}%
  \setlist{%
    labelsep=\defaultlabelsep,
    itemsep=\defaultitemsep,
    parsep=\defaultparsep,
    topsep=\defaulttopsep,
    partopsep=\defaultpartopsep,
    listparindent=\defaultlistparindent,
    labelwidth=\defaultlabelwidth,
    itemindent=\defaultitemindent,
    leftmargin=\defaultleftmargin,
    rightmargin=\defaultrightmargin,
  }%
  \showlstvalues
}
\NewDocumentCommand \showlstvalues {}
{%
  labelsep=\the\labelsep;\par
  itemsep=\the\itemsep;\par
  parsep=\the\parsep;\par
  topsep=\the\topsep;\par
  partopsep=\the\partopsep;\par
  listparindent=\the\listparindent;\par
  labelwidth=\the\labelwidth;\par
  itemindent=\the\itemindent;\par
  leftmargin=\the\leftmargin;\par
  rightmargin=\the\rightmargin;\par
  defaultlabelsep=\the\defaultlabelsep;\par
  defaultitemsep=\the\defaultitemsep;\par
  defaultparsep=\the\defaultparsep;\par
  defaulttopsep=\the\defaulttopsep;\par
  defaultpartopsep=\the\defaultpartopsep;\par
  defaultlistparindent=\the\defaultlistparindent;\par
  defaultlabelwidth=\the\defaultlabelwidth;\par
  defaultitemindent=\the\defaultitemindent;\par
  defaultleftmargin=\the\defaultleftmargin;\par
  defaultrightmargin=\the\defaultrightmargin;\par
}
\begin{document}
\begin{itemize}
  \item A
  \item A
  \item
  \begin{enumerate}[nosep,leftmargin=3cm,labelsep=0pt]
    \item B
    \item K
    \begin{itemize}
      \item Z
      \item P
    \end{itemize}
  \end{enumerate}
\end{itemize}\begin{itemize}
  \item \showlstvalues
  \item
  \begin{enumerate}[nosep,leftmargin=3cm,labelsep=0pt]
    \item \showlstvalues
    \begin{itemize}
      \item \showlstvalues
    \end{itemize}
  \end{enumerate}
\end{itemize}
\end{document}

具有和不具有默认设置的列表以及非默认和当前值的列表

相关内容