Ajustando margens para pontos na margem com xsim

Ajustando margens para pontos na margem com xsim

Com xsim, como você pode ajustar o espaço entre o exercício e a quantidade de pontos, usando o estilo padrão?

Se eu alterar manualmente as margens horizontais do meu documento (usando geometry), então o número de pontos está realmente fora da área de impressão, como posso corrigir isso?

MWE:

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

dá:

insira a descrição da imagem aqui

Responder1

O estilo padrão é definido assim:

\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 você pode ver, o título do exercício está escrito como um arquivo \subsection*. Se forem dados pontos, eles serão digitados com uma extensão \marginpar. Isso significa que a posição dos pontos é controlada pelas dimensões do documento (largura do texto, marginparsep,…). IMHO, seu problema é que isso \rule{1.2cm}{1pt}é muito amplo para sua margem ou que os pontos estão escritos atrás e não abaixo da regra.

Uma possibilidade:

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

insira a descrição da imagem aqui

informação relacionada