我想让学生更难从 PDF 中复制/粘贴代码列表。
如何实现这一点?我希望他们真正理解代码,合上书本,用自己的头脑去写。
目前,lstlisting 设置如下
\lstset{%
basicstyle=\footnotesize\ttfamily, % Standardschrift
numbers=left, % Ort der Zeilennummern
numberstyle=\tiny, % Stil der Zeilennummern
numbersep=5pt, % Abstand der Nummern zum Text
tabsize=4, % Groesse von Tabs
extendedchars=true, %
breaklines=true, % Zeilen werden Umgebrochen
frame=b,
showspaces=false, % Leerzeichen anzeigen ?
showtabs=false, % Tabs anzeigen ?
xleftmargin=17pt,
showstringspaces=false % Leerzeichen in Strings anzeigen ?
keywordstyle=\color{Red},
stringstyle=\color{OliveGreen},
identifierstyle=\color{Blue},
frame=shadowbox,
rulesepcolor=\color{Gray},
escapeinside={\%*}{*)}, % if you want to add a comment within your code
mathescape=false,
columns=flexible
}
答案1
使用独立课程并制作仅包含代码的 pdf。现在将其作为图形图像放回您的说明中。虽然有方法可以从图像中提取文本,但初级程序员不太可能知道如何操作。此外,如果您想让使用任何形式的复制 OCR 分析变得更加困难,那么请手动编写代码,然后将其扫描为要包含的图像。作为一名计算机科学讲师,我警告学生,如果他们不亲自学习基础知识,那么这种早期采取的“捷径”将在课程后期变得非常明显并受到惩罚,届时任何补救措施都将非常困难。
答案2
不要给他们 pdf!给他们一张纸;然后他们就被迫输入代码。这就是我与 LaTeX 学生合作的方式。当他们都收到不同的错误和警告消息时,他们就会准备好代码以包含在他们自己的 LaTeX 代码中。
有了showspaces=true
它,showstringspaces=true
学生们复制代码可能会变得有点困难。