shdoc 和 KOMA-Script

shdoc 和 KOMA-Script

为什么以下示例适用于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

您应该报告这些错误。

相关内容