如何使用 exsheets 给标题加下划线?

如何使用 exsheets 给标题加下划线?

最近我发现exsheets,在制作工作表和练习册时,我通常不使用粗体字体,而是在标题下加下划线。

我确信有一种简单的方法可以强调标题exsheets- 但到目前为止我还无法令人满意地解决这个问题。

我最好的两种方法是:

\documentclass{article}
\usepackage[german]{babel}
\usepackage{exsheets}
\SetupExSheets{solution/print=true}

% the underline-hack
\DeclareInstance{exsheets-heading}{myheadings}{default}{
     runin = true ,
     number-post-code = \space,
     attach = {
        main[l,vc]title[l,vc](0pt,0pt) ;
        main[l,vc]points[l,vc](\marginparsep,0pt)},
     join = {
        title[r,B]number[l,B](.333em,0pt)},
     post-code = \rule{.125\linewidth}{.3pt}
    }

\begin{document}

\SetupExSheets{ 
    headings-format = \underline,
    headings        = runin }
\begin{question}
Some question ...
\end{question}

\SetupExSheets{ 
    headings-format = \normalfont,
    headings        = myheadings }
\begin{question}
Another question ...
\end{question}

\end{document}

输出为:

在此处输入图片描述

第一种方式会导致糟糕的结果,第二种方式则会导致黑客攻击。

有没有更好的方法让标题加下划线?

答案1

令人惊讶的是,我终于找到了一种方法来获得带下划线的标题 - 再次使用 hack:

首先我将正确的标题留空:

\DeclareInstance{exsheets-heading}{myheadings2}{default}{
     runin = true ,
     number-post-code = \space,
    }

然后我使用这些pre-body-hook定义来获得我想要的下划线标题:

\SetupExSheets{
    headings-format = \normalfont,
    question/pre-body-hook = \underline{Übung \GetQuestionProperty{counter}{\CurrentQuestionID}} \space,
    solution/pre-body-hook = \underline{Lösung \GetQuestionProperty{counter}{\CurrentQuestionID}} \space,
    headings        = myheadings2 
}

即使解决方案不是很漂亮,也有一个很好的副作用:可以将其与exsheets:将解决方案链接回问题。所以现在可以直接点击标题从问题跳转到解决方案,反之亦然(如果我没有忽略什么的话):

\SetupExSheets{
    question/pre-body-hook = {%
    \hyperlink{sol:\CurrentQuestionID}{\underline{Question 
      \GetQuestionProperty{counter}{\CurrentQuestionID}}}\par
  },
  solution/pre-hook = {%
    \hypertarget{sol:\CurrentQuestionID}{}%
  },
  solution/pre-body-hook = {%
    \hyperref[qu:\CurrentQuestionID]{\underline{Solution 
      \GetQuestionProperty{counter}{\CurrentQuestionID}}}\par
  },
  headings = myheadings2 }

相关内容