我正在寻找一个编辑器来打印(在纸上)C++ 代码。我目前在工程学校,老师要求我们提交纸质代码。
他想要名字+姓氏、班级编号(在标题上)、底部的页数以及每页粗体显示的保留字!
在 Windows 上,可以使用notepadd++
.但我在 Linux 上,还没有找到可用的 IDE 或文本编辑器。 (我已经尝试过SCITE
,,gedit
和Syntaxic
)
答案1
好吧,如果您想更进一步,请使用 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 文件,每个文件位于单独的部分中,请参阅我的答案这里。
答案2
我通常会使用 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
给予
大致,
- LaTeχ 是最好的质量和最多的设置工作,
- enscript 或 a2ps 在质量和工作上都处于中等水平,
- vim 的
:hardcopy
命令很简单,但不够灵活,而且 - 在非代码识别编辑器中手动进行语法突出显示需要付出很大的努力,但回报却很差。
答案3
可以:TOhtml
在vim中使用该命令。这会将您看到的内容(即语法突出显示)呈现为 html。从那里,可以打印为 pdf 的网络浏览器可以工作,因为您通常可以自定义页眉/页脚内容。
这可能类似于:hardcopy
Useless 提到的命令,但我现在无法在我的系统上验证。
另一种可能性是从 QtCreator 打印,但是似乎没有办法设置页眉/页脚。
答案4
既然你要求编辑,您可以使用 直接从 Emacs 打印ps-print-buffer
。
页眉和页脚位于名为 的自定义组中ps-print-headers
。
假设您使用字体锁定,您可能具有所需的语法突出显示。如有必要,可以使用该ps-extend-face
功能进行调整。
话虽如此,我仍然建议您使用适当的“研磨”工具,例如 a2ps、enscript 或 LaTeX+listings。