我正在寻找一个编辑器来打印(纸上)C ++代码。我目前在工程学校,导师要求我们在纸上提交代码。
他想要名字+姓氏,类号(在标题上),底部的页数以及每页加粗的保留字!
在Windows上,可以使用notepadd++
。但是我在Linux上,但是找不到有效的IDE或文本编辑器。(我已经尝试过SCITE
,gedit
和Syntaxic
)
我正在寻找一个编辑器来打印(纸上)C ++代码。我目前在工程学校,导师要求我们在纸上提交代码。
他想要名字+姓氏,类号(在标题上),底部的页数以及每页加粗的保留字!
在Windows上,可以使用notepadd++
。但是我在Linux上,但是找不到有效的IDE或文本编辑器。(我已经尝试过SCITE
,gedit
和Syntaxic
)
Answers:
好吧,如果您想加倍努力,请使用LaTeX并提供专业级别的PDF文件。您没有提到您的发行版,因此我将为基于Debian的系统提供指导。相同的基本思想可以在任何Linux上完成。
安装LaTeX系统和必要的软件包
sudo apt-get install texlive-latex-extra latex-xcolor texlive-latex-recommended
创建一个report.tex
包含以下内容的新文件(称为):
\documentclass{article}
\usepackage{fancyhdr}
\pagestyle{fancy}
%% Define your header here.
%% See http://texblog.org/2007/11/07/headerfooter-in-latex-with-fancyhdr/
\fancyhead[CO,CE]{John Doe, Class 123}
\usepackage[usenames,dvipsnames]{color} %% Allow color names
%% The listings package will format your source code
\usepackage{listings}
\lstdefinestyle{customasm}{
belowcaptionskip=1\baselineskip,
xleftmargin=\parindent,
language=C++,
breaklines=true, %% Wrap long lines
basicstyle=\footnotesize\ttfamily,
commentstyle=\itshape\color{Gray},
stringstyle=\color{Black},
keywordstyle=\bfseries\color{OliveGreen},
identifierstyle=\color{blue},
xleftmargin=-8em,
showstringspaces=false
}
\begin{document}
\lstinputlisting[style=customasm]{/path/to/your/code.c}
\end{document}
只要确保更改/path/to/your/code.c
倒数第二行,使其指向C文件的实际路径即可。如果要包含多个文件,请为另一个文件添加一个\newpage
,然后添加一个新\lstinputlisting
文件。
编译PDF(这将创建report.pdf
)
pdflatex report.tex
我使用在这里找到的示例文件在系统上对此进行了测试,它创建了一个如下所示的PDF:
要获得更全面的示例,该示例将自动在目标文件夹中找到所有.c文件,并在单独的部分中创建每个目录都带有索引的PDF文件,请在此处查看我的答案。
我通常会使用enscript:
$ enscript --highlight=cpp
--header='|Real Name|Class 101'
--footer='|Page $% of $=|'
-poutput.ps *.cpp
将是一个开始-这会将postscript输出写入output.ps
,因此您可以在修改配置时预览并覆盖该配置,然后在满意时打印它。有关更多非常广泛的选项,请参见手册页。
编辑使页脚正常工作对enscript有点痛苦-我从未注意到,因为我从不需要它。如果将此文件保存到~/.enscript/so.hdr
(可能需要创建目录),则实际上将获得所需的输出
$ enscript --highlight=cpp
--header='|Real Name|Class 101'
--footer='|Page $% of $=|'
--fancy-header=so
-poutput.ps *.cpp
给予
大致,
:hardcopy
命令很简单,但不那么灵活,并且emscript
。它有很多选项,并且效果非常好。
由于您需要编辑器,因此可以使用从Emacs直接打印ps-print-buffer
。
页眉和页脚位于名为的“自定义”组中ps-print-headers
。
假设您使用字体锁,则可能需要突出显示语法。可以根据需要使用该ps-extend-face
功能进行调整。
话虽如此,我仍然建议您使用适当的“研磨”工具,例如a2ps,enscript或LaTeX +列表。
为了完整起见,尽管我不建议使用该解决方案,但该lp
程序有一个-o prettyprint
可以进行语法突出显示的选项。
您可以像这样使用它:
lp -t "Name Surname | Class" -o document-format=application/x-csource -o prettyprint path/to/code.cpp
在这里,我使用-t
(title)选项设置标题。我不能更改页脚(但页码显示在顶部)。您可以使用选项设置文件类型-o document-format
(可接受值的列表应在/usr/share/cups/mime/mime.types
或中/etc/cups/mime/mime.types
),但如果文件具有正确的扩展名,则没有必要。而且,语法高亮远非完美。
您只需要LibreOffice Writer。
粘贴您的C / C ++代码。
找到单词并将Bold变成所有C ++关键字。
您可以在这里找到它们:http : //en.cppreference.com/w/cpp/keyword
查找单词按Ctrl +F。选择“大小写匹配”,然后单击“查找全部”(如屏幕截图所示)。
之后,您需要带有您的名称和页码的页眉和页脚。
编辑:(Christophe Strobbe评论:)
有一个LibreOffice扩展用于代码着色:Code Colorizer Formatter。(我尚未测试过。)