最近我发现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 }