评论
我从exsheets
文档中抓取了一段代码来为问题和解决方案生成漂亮的标题,但它坏了。这是fancy
当前 CTAN 第 49 页和第 50 页的标题样式文档(2013年12月7日)。
执行
\documentclass{article}
\usepackage{exsheets}
% From the documentation page 49 and 50
\DeclareInstance{exsheets-heading}{fancy}{default}{
toc-reversed = true,
indent-first = true,
vscale = 2,
pre-code = \rule{\linewidth}{1pt},
post-code = \rule{\linewidth}{1pt},
title-format = \large\scshape\color{exsheetsred},
number-format = \large\bfseries\color{exsheetsblue},
points-format = \itshape,
join = { number[r,B] title[l,B] (.333em,0pt) },
attach = {
main[hc,vc]number[hc,vc](0pt,0pt);
main[l,vc]points[r,vc](-\marginparsep,0pt)
}
}
\SetupExSheets{headings=fancy}
\begin{document}
\begin{question}
What does the following code do?
\end{question}
\end{document}
输出
它好像在线内断title[l,B]
了join = { number[r,B] title[l,B] (.333em,0pt) }
。
Runaway argument?
B] (.333em,0pt)\s_obj_end \__prg_break_point:Nn \seq_map_break: {\__seq_pop_ite
m_def: \ETC.
! File ended while scanning use of \__exsheets_join_coffin_sequence:w.
<inserted text>
\par
<*> sheet1.tex
?
答案1
一旦你知道了问题是什么,问题就很明显了。假设你定义了一个宏
\def\foo[#1](#2){...}
并像使用它一样
\foo[1] (2)
你收到错误
Runaway argument?
1] (2)
! Paragraph ended before \foo was complete.
因为它一直在寻找,但永远找不到。这里也发生了同样的事情。和键](
的行基本上是内部命令的分隔参数。您的错误来自以下行join
attach
join = { number[r,B] title[l,B] (.333em,0pt) },
应为
join = { number[r,B]title[l,B](.333em,0pt) },
中间没有空格。然后你的代码给出
文档有误,这是我的复制粘贴错误:exsheets
实现时expl3
忽略了空格。当我将原始代码复制到文档中时,我忘记删除危险的空格了……
顺便说一句:文档中的代码可作为自己的标题实例的示例。如果您只想使用“花哨”的样式,请执行以下操作:
\documentclass{article}
\usepackage[load-headings]{exsheets}
\SetupExSheets{headings=fancy}
\begin{document}
\begin{question}
What does the following code do?
\end{question}
\end{document}