Escribir código fuente en LaTeX como texto

Escribir código fuente en LaTeX como texto

¿Existe algún paquete que permita el código fuente en LaTeX como texto? Prefiero no utilizar el listingspaquete porque el código ocupa demasiado espacio. Copiar y pegar es tedioso porque los espacios no se conservan.

Respuesta1

Puedo darte un par de consejos sobre paquetes y herramientas con los que comenzar a experimentar. Probé varias herramientas en el pasado:

  • Me gustan los entornos verbatimy verbatim*en TeX. Es una manera fácil y directa de componer una pequeña porción de código de inmediato. Sin embargo, no puede ajustar líneas.

  • Estuve usando el fancyvrbpaquete hace algún tiempo,http://ctan.org/pkg/fancyvrb. Ese fue el primer paquete en el que noté que es posible (en absoluto) hacer referencias cruzadas a los números de línea del código fuente; consulte las páginas 14 y 15 de la documentación.

  • Utilizo el listingspaquete con bastante frecuencia,http://ctan.org/pkg/listings. Es un paquete bastante complejo, pero satisface mis necesidades, especialmente su opción de formatear un archivo externo (el \lstinputlistingcomando). También puede ajustar líneas y agregar un símbolo de apertura y cierre a dichas líneas. Recuerdo que creé mi propio filtro para el lenguaje VBA (Visual Basic para Aplicaciones), fue divertido intentarlo. Hay un nuevo paquete cuando se trata de caracteres codificados en UTF-8; consulte el listingsutf8paquete.http://ctan.org/pkg/listingsutf8. Estaba usando secuencias de escape listingspara resolver ese problema en particular. Estaba escribiendo CJKV (chino, japonés, coreano, vietnamita) en mi código fuente, por ejemplo, さようなら (eso es¡Sayōnara!en japonés es¡Adiós!en Inglés). Una vez estaba presentando la preparación de mis postales PF.

  • Si se trata del Rcódigo, hoy en día existen excelentes herramientas con las que trabajar knitr(http://yihui.name/knitr/) y una herramienta bastante antigua llamada Sweave(http://www.stat.uni-muenchen.de/~leisch/Sweave/).

  • Si está tratando con el Sagecódigo, pruebe el SageTeXestilo,http://ctan.org/pkg/sagetex. Está programado por Robert Mařík de Brno, República Checa, una persona/desarrollador que conocí cara a cara una vez.:-)

  • También uso el Highlightprograma (http://www.andre-simon.de/). Existe una opción para mezclar varios idiomas en un código fuente que se resaltará (LaTeX+Lua, HTML+CSS, etc.). Se llama formateo y reconocimiento de los idiomas anidados dentro de un archivo. Solicité esa característica cuando nació LuaTeX, estoy orgulloso de haberlo hecho. Ambos programas (este y Pygments) proporcionan el formato LaTeX como opción de exportación para otros idiomas. Un estilo se puede extraer a un archivo separado del resto del documento.

  • Vale la pena mencionar una herramienta muy poderosa llamada Pygments(http://pygmentos.org/). Lo estoy usando directamente desde la línea de comandos (o como una biblioteca desde Python) y además en el mundo TeX hay (al menos) dos paquetes para facilitar la conversión: TeXments(http://ctan.org/pkg/texments) y Minted(http://ctan.org/pkg/minted). Hablando de Python, también hay un paquete llamado PythonTeX, consultehttp://ctan.org/pkg/pythontex. ¡Darle una oportunidad!

  • Recientemente aprendí sobre la pandocherramienta,http://johnmacfarlane.net/pandoc/. Es más bien un conversor de formato a formato, pero merece la pena probarlo. Además de los ejecutables independientes para todos los principales sistemas operativos, existe una versión en línea,http://johnmacfarlane.net/pandoc/try/. El formato LaTeX es una opción tanto en el lado de entrada como en el de salida del convertidor. ¡Parece que esta herramienta es (del) futuro!

¡Buena suerte con la composición tipográfica de los códigos fuente!

Respuesta2

Este es el modismo que uso para darles a mis alumnos (que aprenden TeX) el código fuente de la tarea, para que puedan estudiarlo y editarlo cuando escriban sus matemáticas.

\documentclass{article}
\usepackage{verbatim}

\begin{document}

Homework exercises here \ldots 

\newpage

Here is the \LaTeX{} source for this document. You can cut it from the
pdf and use it to start your answers. I used the \verb!\jobname! macro
for the source file name, so you can call your file by any name you like.

\verbatiminput{\jobname}

\end{document}

Respuesta3

Este sirve verbatimboxpara colocarlo en una caja a un tamaño reducido. Es posible reducir aún más el tamaño de la caja con un \scalebox. Mientras que un cuadro no atravesará el límite de una página, el paquete también ofrece versiones "nobox" de algunas de sus macros, que atravesarán una página. Sin embargo, la función de cuadro es útil para incluir palabra por palabra en figuras, tablas y moverla directamente sobre la línea o centrarla.

En este MWE, agregué manualmente \fboxadjuntos alrededor de todos los cuadros textuales, para mayor claridad, pero no son parte del cuadro textual.

\documentclass{article}
\usepackage{verbatimbox}
\usepackage{graphicx}
\parskip 1ex
\parindent 0in
\begin{document}
With verbatimbox, you can tell the macro to make the code ``footnotesize.''\par
\begin{verbbox}[\footnotesize]
Here is my input code text
Line two of my $%& code text
Done now.
\end{verbbox}
\fbox{\theverbbox}\par
If it is from a file, I can do that, too, this time \verb|\scriptsize|:\par
\verbfilebox[\scriptsize]{junk.tex}
\fbox{\theverbbox}\par
Alternately, you could shrink it further with a \verb|\scalebox|:\par
\fbox{\scalebox{.5}{\theverbbox}}\par
If you have need to break across pages, the package offers ``nobox'' versions
of some of its macros.
\end{document}

ingrese la descripción de la imagen aquí

También está elnumberedblockpaquete que permite formatear pequeños bloques de código de una manera como (nota: imagen tomada de los documentos del paquete):

ingrese la descripción de la imagen aquí

Respuesta4

El problema con textualmente es que no divide largas líneas de código, así que uso el spverbatimpaquete en su lugar.

Salida de muestra

\documentclass{article}

\usepackage{spverbatim}

\begin{document}

\begin{spverbatim}
code
code with a very long line that does not fit on the page and so needs to be broken or wrapped
code
\end{spverbatim}

\end{document}

información relacionada