Editor de texto para imprimir código C++

Editor de texto para imprimir código C++

Estoy buscando un editor para imprimir (en papel) código C++. Actualmente estoy en la escuela de ingeniería y el instructor nos pidió que enviemos el código en papel.

¡Quiere nombre + apellido, el número de clase (en el encabezado), el número de página en la parte inferior y las palabras reservadas en negrita para cada página!

En Windows se puede hacer con notepadd++. Pero estoy en Linux y no he encontrado un IDE o editor de texto que funcione. (Ya lo he probado SCITE, gedity Syntaxic)

Respuesta1

Bueno, si quieres hacer un esfuerzo adicional, hazlo en LaTeX y proporciona un archivo PDF de nivel profesional. No has mencionado tu distribución, así que daré instrucciones para sistemas basados ​​en Debian. Sin embargo, la misma idea básica se puede realizar en cualquier Linux.

  1. Instalar un sistema LaTeX y los paquetes necesarios.

    sudo apt-get install texlive-latex-extra latex-xcolor texlive-latex-recommended
    
  2. Cree un nuevo archivo (llámelo report.tex) con el siguiente contenido:

    \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}
    

    Solo asegúrese de cambiar /path/to/your/code.cla penúltima línea para que apunte a la ruta real de su archivo C. Si tiene más de un archivo para incluir, agregue uno \newpagey luego uno nuevo \lstinputlistingpara el otro archivo.

  3. Compilar un PDF (esto crea report.pdf)

    pdflatex report.tex    
    

Probé esto en mi sistema con un archivo de ejemplo que encontréaquíy crea un PDF que se ve así:

primera página del pdf creado

Para obtener un ejemplo más completo que encontrará automáticamente todos los archivos .c en la carpeta de destino y creará un archivo PDF indexado con cada uno en una sección separada, consulte mi respuesta.aquí.

Respuesta2

Normalmente uso enscript: algo como

$ enscript --highlight=cpp
           --header='|Real Name|Class 101'
           --footer='|Page $% of $=|'
           -poutput.ps *.cpp

será un comienzo: esto escribe la salida postscript en output.ps, por lo que puede obtener una vista previa y sobrescribirla mientras modifica la configuración y luego imprimirla una vez que esté satisfecho. Consulte la página de manual para obtener opciones más amplias.

EDITARhacer que el pie de página funcione correctamente es un poco complicado con enscript; nunca lo había notado porque nunca lo he requerido. si guardasEste archivoa ~/.enscript/so.hdr(probablemente necesite crear el directorio), en realidad obtendrá el resultado requerido con

$ enscript --highlight=cpp
           --header='|Real Name|Class 101'
           --footer='|Page $% of $=|'
           --fancy-header=so
           -poutput.ps *.cpp

donación

ingrese la descripción de la imagen aquí


Apenas,

  • LaTeχ es la mejor calidad y la que más trabajo requiere para configurar,
  • enscript o a2ps son intermedios tanto en calidad como en trabajo,
  • El comando de vim :hardcopyes fácil pero no tan flexible, y
  • resaltar la sintaxis manualmente en un editor que no reconoce el código supone un gran esfuerzo para obtener un rendimiento deficiente.

Respuesta3

Puedes usar el :TOhtmlcomando en vim. Esto representa lo que ve (es decir, resaltado de sintaxis) como html. A partir de ahí, funciona un navegador web que puede imprimir en PDF, ya que normalmente puede personalizar el contenido del encabezado/pie de página.

Probablemente sea similar al :hardcopycomando mencionado por Useless, pero no puedo verificarlo en mi sistema en este momento.

Otra posibilidad es imprimir desde QtCreator, sin embargo, no parece haber una manera de configurar los encabezados/pies de página.

Respuesta4

Ya que pides uneditor, puede imprimir directamente desde Emacs, utilizando ps-print-buffer.

Los encabezados y pies de página están en el grupo Personalizar llamado ps-print-headers.

Suponiendo que utiliza el bloqueo de fuente, probablemente tenga el resaltado de sintaxis necesario. Se puede ajustar, si es necesario, mediante la ps-extend-facefunción.


Dicho esto, todavía te recomiendo que utilices una herramienta de "pulido" adecuada, como listados a2ps, enscript o LaTeX+.

información relacionada