xsim 연습 환경에서 열거 항목 목록이 있는 원치 않는 수직 공간

xsim 연습 환경에서 열거 항목 목록이 있는 원치 않는 수직 공간

저는 xsim 패키지를 사용하여 운동 세트를 만들고 있습니다. 일부 연습은 소개 텍스트 없이 (a), (b) 부분 등으로 즉시 시작됩니다. 나는 여기에서 다른 답변을 사용하여 'before'에 대해 topsep = 0pt 및 음수 vspace를 사용하여 열거 항목 목록을 설정했습니다. 위 첨자가 수직 정렬에 영향을 미치는 것으로 보이는 이 예의 연습 2를 제외하고는 대부분의 경우 괜찮아 보입니다.

(a) 부분이 항상 연습 번호와 올바르게 정렬되도록 열거 항목 목록을 설정하는 더 좋은 방법이 있습니까?

\documentclass[a4paper,11pt]{memoir}
\usepackage[T1]{fontenc} 
\usepackage[defaultsans]{opensans}
\usepackage{newtxtext,newtxmath}

\setlength{\parskip}{0.6em}
\setlength{\parindent}{0pt}

\usepackage{xsim}

\DeclareExerciseEnvironmentTemplate{margin}  % simulate margin-nr style from exsheets
{%
\par\vspace{\baselineskip}
\Needspace*{2\baselineskip}
\noindent
\llap{%
\smash{%
\tabular[t]{@{}r@{}}
\sffamily\textbf{\GetExerciseProperty{counter}\,}
\endtabular
} % notice the space
}%
}
{}

\xsimsetup{
    exercise/template = margin,
    solution/template = margin
}

\usepackage{enumitem}
\newlist{exampartsnoskip}{enumerate}{2}
\setlist[exampartsnoskip]{topsep=0pt,before={\vspace*{-1.85em}},label={(\alph*)},itemsep=0.1em,leftmargin=\oddsidemargin}
\setlist[exampartsnoskip,1]{label=(\alph*)}


\begin{document}

\begin{exercise}
\begin{exampartsnoskip}
    \item First
    \item Second
\end{exampartsnoskip}
\end{exercise}

\begin{exercise}
\begin{exampartsnoskip}
\item Evaluate $\left(36^\frac12+16^\frac14\right)^\frac13$
\item Second
\end{exampartsnoskip}
\end{exercise}

\begin{exercise}
\begin{exampartsnoskip}
    \item $\dfrac{x}{\dfrac{1}{x+1}}$
    \item Second
\end{exampartsnoskip}
\end{exercise}

\end{document}

연습 2의 정렬 문제 스크린샷

답변1

margin다음을 사용하여 템플릿을 구현할 수도 있습니다 trivlist.

\documentclass[a4paper,11pt]{memoir}
\usepackage[T1]{fontenc} 
\usepackage[defaultsans]{opensans}
\usepackage{newtxtext,newtxmath}

\setlength{\parskip}{0.6em}
\setlength{\parindent}{0pt}

\usepackage{showframe}

\usepackage{xsim}

\DeclareExerciseEnvironmentTemplate{margin}{%
  \trivlist
  \item[\llap{\sffamily\textbf{\GetExerciseProperty{counter}}}]\relax
}
{\endtrivlist}

\xsimsetup{
  exercise/template = margin,
  solution/template = margin
}

\usepackage{enumitem}
\newlist{examparts}{enumerate}{2}
\setlist[examparts]{
  topsep=0pt,
  % before={\vspace*{-1.85\baselineskip}},
  label={(\alph*)},
  itemsep=0.1em,
  leftmargin=\oddsidemargin
}
\setlist[examparts,1]{label=(\alph*)}

\begin{document}

\begin{exercise}
  \begin{examparts}
    \item First
    \item Second
  \end{examparts}
\end{exercise}

\begin{exercise}
  \begin{examparts}
    \item Evaluate $\left(36^\frac12+16^\frac14\right)^\frac13$
    \item Second
  \end{examparts}
\end{exercise}

\begin{exercise}
  \begin{examparts}
    \item $\dfrac{x}{\dfrac{1}{x+1}}$
    \item Second
  \end{examparts}
\end{exercise}

\end{document}

여기에 이미지 설명을 입력하세요

답변2

여기에 이미지 설명을 입력하세요

내부 표현식의 크기가 너무 큰 높이가 외부 레이블 번호의 위치에 영향을 미치도록 하려면 해당 숫자 설정을 지연한 다음 내부 레이블에 고정해야 합니다. LaTeX는 기본적으로 중첩 목록에 대해 비슷한 작업을 수행하지만 여기서는 수동으로 수행합니다.

\documentclass[a4paper,11pt]{memoir}
\usepackage[T1]{fontenc} 
\usepackage[defaultsans]{opensans}
\usepackage{newtxtext,newtxmath}

\setlength{\parskip}{0.6em}
\setlength{\parindent}{0pt}

\usepackage{xsim}

\DeclareExerciseEnvironmentTemplate{margin}  % simulate margin-nr style from exsheets
{%
\par\vspace{\baselineskip}
\Needspace*{2\baselineskip}
\protected\gdef\exno{\llap{%
\sffamily\textbf{\GetExerciseProperty{counter}\,} }% notice the space
\gdef\exno{}}%
}
{}

\xsimsetup{
    exercise/template = margin,
    solution/template = margin
}

\usepackage{enumitem}
\newlist{exampartsnoskip}{enumerate}{2}
\setlist[exampartsnoskip]{topsep=0pt,before={\vspace*{-1.85em}},label={(\alph*)},itemsep=0.1em,leftmargin=\oddsidemargin}
\setlist[exampartsnoskip,1]{label=\exno(\alph*)}


\begin{document}

\begin{exercise}
\begin{exampartsnoskip}
    \item First
    \item Second
\end{exampartsnoskip}
\end{exercise}

\begin{exercise}
\begin{exampartsnoskip}
\item Evaluate $\left(36^\frac12+16^\frac14\right)^\frac13$
\item Second
\end{exampartsnoskip}
\end{exercise}

\begin{exercise}
\begin{exampartsnoskip}
    \item $\dfrac{x}{\dfrac{1}{x+1}}$
    \item Second
\end{exampartsnoskip}
\end{exercise}

\end{document}

관련 정보