Ajustar márgenes para puntos en el margen con xsim

Ajustar márgenes para puntos en el margen con xsim

¿Con xsim, cómo puedes ajustar el espacio entre el ejercicio y el número de puntos, usando el estilo predeterminado?

Si cambio los márgenes horizontales manualmente de mi documento (usando geometry), entonces el número de puntos en realidad está fuera del área de impresión, ¿cómo puedo solucionar este problema?

MWE:

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

da:

ingrese la descripción de la imagen aquí

Respuesta1

El estilo predeterminado se define así:

\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}%
        }%
    }%
}
{}

Como puede ver, el título del ejercicio está escrito como archivo \subsection*. Si se dan puntos, se escriben con un \marginpar. Esto significa que la posición de los puntos está controlada por las dimensiones del documento (ancho del texto, margen parsep,…). En mi humilde opinión, su problema es que \rule{1.2cm}{1pt}es demasiado amplio para su margen o que los puntos están escritos detrás en lugar de debajo de la regla.

Una posibilidad:

\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}

ingrese la descripción de la imagen aquí

información relacionada