编辑

编辑

我使用 LaTeX 软件包编写了一份问卷paperandpencil.styhttp://www.qdds.de/index.php?id=129)。该软件包以某种方式禁用了页码,但我需要问卷调查有这些页码。有没有办法强制/重新启用页码或创建自己的页码,类似于文章类中的标准编号?

以下是我的序言和一个简短的例子。

\documentclass[a4paper, 12pt]{article}
\usepackage{geometry}
\geometry{a4paper, top=10mm, bottom=20mm, left=10mm, right=10mm, headsep=10mm, footskip=12mm}
\usepackage[interviewer, nonumbers]{paperandpencil}
\setlength{\answerwidth}{\linewidth}

\begin{document}

\setcounter{page}{75}
\addtocounter{section}{7}
\section{Example Code}

\startbox
\begin{flushleft}
\textbf{This is an example.}
\end{flushleft}
\stopbox

\end{document}

不幸的是,我对 LaTeX 的了解并不包括对软件包源代码的理解,而且文档中也paperandpencil.sty没有页码。考虑到这是我的德国大学创建的软件包,我猜你们都不知道。我已经禁用了所有不必要的软件包,但找不到任何交互。如果有人能指出我的错误,或者,如果没有,能想出一个解决方案,如何手动将页码插入文档,我将非常高兴。

提前致谢!

编辑:抱歉,我清理了序言中所有不必要的部分。

答案1

这是一个最低限度的工作恢复页码并编译无错误的示例。

\documentclass[a4paper, 12pt]{book}
\usepackage{paperandpencil}
\pagestyle{plain}
\begin{document}
  \pagenumbering{arabic}
  \setcounter{page}{75}
  \addtocounter{section}{7}
  \section{Example Code}

  \begin{flushleft}
    \textbf{This is an example.}
  \end{flushleft}

\end{document}

采用 <code>plain</code> 样式的页码

编辑

仅对此进行一些说明。该.sty文件包含一些可疑的代码。例如:

\renewcommand*\thechapter{\bf{\arabic{chapter}.}}

这不仅要求你使用定义章节的类(例如bookreport但不是`文章),它还使用长期弃用的命令来设置字体粗细,或者更准确地说,它是滥用一个早已弃用的命令。

\bf是 LaTeX2e 之前的命令。它从不接受参数。也就是说,即使它是设置粗体的正确方法,也不应该这样使用。

备择方案:

\renewcommand*\thechapter{\textbf{\arabic{chapter}.}}

或者

\renewcommand*\thechapter{\bfseries\arabic{chapter}.}

但是以这种方式定义事物的问题是,如果\thechapter在交叉引用中使用,您将得到粗体和一个后续点,这可能不是您想要的。\thechapter实际上应该只设置计数器的基本格式,即阿拉伯数字或罗马数字或其他格式。这是从book.cls

\renewcommand \thechapter {\@arabic\c@chapter}

如果包使用这个(如果需要)并\chapter适当地处理默认格式,那就更好了。

但是,该包不会重新定义\thesection。因此,当您将其与默认book.cls定义结合时:

\renewcommand \thesection {\thechapter.\@arabic\c@section}

最终,章节号和节号之间不只有一个点,而是两个点(如我的 MWE 输出所示)。如果您定义一个章节(例如,为了避免出现零点),那么您将得到:

格式不佳的章节

在我看来这根本就不对劲。

恐怕在不理解代码的情况下使用此软件包可能会令人沮丧。例如,它根本没有仔细选择宏名,这些宏名可能不会与其他软件包使用的宏名冲突。例如,它不使用内部命令的前缀,并且它定义了几个双字母宏(例如\df\km),这不是好的做法。

这可能是有意的,但包也以一种会增加大量垂直间距的方式定义了环境,例如它一起使用centertabular,这将在其内容之前和之后添加垂直间距。

相关内容