为什么以下示例适用于report
,但不适合scrreprt
:
\documentclass{scrreprt}
\usepackage{shdoc}
\begin{document}
\begin{sh}
\begin{shbox}
\shline{}{Test}
\end{shbox}
\end{sh}
\end{document}
有趣的事实:我有一个基于scrreprt
此编译此示例的类(确实有效),但是在框前打印出了“无”。
答案1
这是软件包中的一个错误shdoc
。它使用
\ifthenelse{\f@size<6}{%
这是一个整数比较,但\f@size
并不总是整数。如果您使用选项,您会在标准类中遇到相同的错误11pt
:
\documentclass[11pt]{report}
\usepackage{shdoc}
\begin{document}
\begin{sh}
\begin{shbox}
\shline{}{Test}
\end{shbox}
\end{sh}
\end{document}
还有其他类似的比较。还有类似这样的比较
\ifnum\value{shlinenumber}<10%
这至少是危险的。这里应该终止对 10 号的扫描,例如使用\relax
。
我不喜欢行尾处缺少一些%
after宏{
和一些不需要的after 宏。但也许它们不是问题。我甚至在 中发现了一个空行。但我不确定这是否是预期的段落。%
\shread
您应该报告这些错误。