Настройка полей для точек на полях с помощью xsim

Настройка полей для точек на полях с помощью xsim

Как xsimможно настроить расстояние между упражнением и количеством баллов, используя стиль по умолчанию?

Если я вручную изменю горизонтальные поля документа (с помощью geometry), то количество точек фактически окажется за пределами области печати. ​​Как это исправить?

МВЭ:

\documentclass{article}
\usepackage{xsim}
\usepackage{geometry}
\geometry{hmargin=1in}
\begin{document}
    \begin{exercise}[points = {10}]
        Write.
    \end{exercise}
\end{document}

дает:

введите описание изображения здесь

решение1

Стиль по умолчанию определяется следующим образом:

\DeclareExerciseEnvironmentTemplate{default}{%
  \subsection*
    {%
      \XSIMmixedcase{\GetExerciseName}\nobreakspace
      \GetExerciseProperty{counter}%
      \IfInsideSolutionF
        {%
          \GetExercisePropertyT{subtitle}
            { {\normalfont\itshape\PropertyValue}}%
        }%
    }
  \GetExercisePropertyT{points}
    {%
      \marginpar
        {%
          \IfInsideSolutionF{\rule{1.2cm}{1pt}\slash}%
          \printgoal{\PropertyValue}
          \GetExercisePropertyT{bonus-points}{~(+\printgoal{\PropertyValue})}%
          ~\XSIMtranslate {point-abbr}%
        }%
    }%
}
{}

Как вы видите, название упражнения набрано как \subsection*. Если указаны точки, они набраны с \marginpar. Это означает, что положение точек контролируется размерами документа (textwidth, marginparsep, …). IMHO ваша проблема скорее в том, что поле \rule{1.2cm}{1pt}слишком широкое для вашего поля или что точки написаны за линейкой, а не под ней.

Одна из возможностей:

\documentclass{article}

\usepackage{geometry}
\geometry{
  hmargin = 1in ,
  showframe
}

\usepackage{xsim}
\xsimsetup{
  exercise/template = custom
}


\DeclareExerciseEnvironmentTemplate{custom}{%
  \subsection*
    {%
      \XSIMmixedcase{\GetExerciseName}\nobreakspace
      \GetExerciseProperty{counter}%
      \IfInsideSolutionF
        {%
          \GetExercisePropertyT{subtitle}
            { {\normalfont\itshape\PropertyValue}}%
        }%
    }
  \GetExercisePropertyT{points}
    {%
      \marginpar
        {%
          \IfInsideSolutionF{\rule{1.2cm}{1pt}/\\}% <<<< NEW
          \printgoal{\PropertyValue}
          \GetExercisePropertyT{bonus-points}{~(+\printgoal{\PropertyValue})}%
          ~\XSIMtranslate {point-abbr}%
        }%
    }%
}
{}



\begin{document}

\begin{exercise}[points = 10]
  Write.
\end{exercise}

\end{document}

введите описание изображения здесь

Связанный контент