Escrevendo código-fonte em LaTeX como texto

Escrevendo código-fonte em LaTeX como texto

Existe um pacote que permite código-fonte em LaTeX como texto? Prefiro não usar o listingspacote porque o código ocupa muito espaço. Copiar/colar é entediante porque os espaços não são preservados.

Responder1

Posso dar algumas dicas de pacotes e ferramentas para você começar a experimentar. Tentei várias ferramentas no passado:

  • Eu gosto dos ambientes verbatime verbatim*no TeX. É uma maneira fácil e direta de compor uma pequena parte do código imediatamente. No entanto, ele não pode quebrar linhas.

  • Eu estava usando o fancyvrbpacote há algum tempo,http://ctan.org/pkg/fancyvrb. Esse foi o primeiro pacote onde notei que a referência cruzada aos números das linhas do código-fonte é possível (de todo), veja as páginas 14 e 15 da documentação.

  • Eu uso o listingspacote com bastante frequência,http://ctan.org/pkg/listings. É um pacote bastante complexo, mas está atendendo às minhas necessidades, principalmente na opção de formatar um arquivo externo (o \lstinputlistingcomando). Ele também pode quebrar linhas e adicionar um símbolo de abertura e fechamento a essas linhas. Lembro que criei meu próprio filtro para a linguagem VBA (Visual Basic for Applications), foi divertido tentar isso. Há um novo pacote ao lidar com caracteres codificados em UTF-8, consulte o listingsutf8pacote,http://ctan.org/pkg/listingsutf8. Eu estava usando sequências de escape listingspara resolver esse problema específico. Eu estava compondo CJKV (chinês, japonês, coreano, vietnamita) em meu código-fonte, por exemplo, さようなら (isso éSayōnara!em japonês, éAdeus!Em inglês). Uma vez eu estava apresentando a preparação dos meus cartões postais da PF.

  • Se você está lidando com Rcódigo, hoje em dia existem ferramentas excelentes para trabalhar, knitr(http://yihui.name/knitr/) e uma ferramenta bastante antiga chamadaSweave (http://www.stat.uni-muenchen.de/~leisch/Sweave/).

  • Se você estiver lidando com o Sagecódigo, experimente oSageTeX estilo,http://ctan.org/pkg/sagetex. É programado por Robert Mařík de Brno, na República Tcheca, uma pessoa/desenvolvedor que conheci pessoalmente uma vez.:-)

  • Eu também uso oHighlight programa (http://www.andre-simon.de/). Existe a opção de misturar várias linguagens em um código fonte a ser destacado (LaTeX+Lua, HTML+CSS etc.). Chama-se formatação e reconhecimento das linguagens aninhadas dentro de um arquivo, pedi esse recurso quando o LuaTeX nasceu, estou muito orgulhoso de ter feito isso. Ambos os programas (este e Pygments) fornecem o formato LaTeX como opção de exportação para outras linguagens. Um estilo pode ser extraído para um arquivo separado do restante do documento.

  • Vale a pena mencionar uma ferramenta muito poderosa chamadaPygments (http://pygments.org/). Estou usando-o diretamente da linha de comando (ou como uma biblioteca dentro do Python) e no mundo TeX existem (pelo menos) dois pacotes para facilitar a conversão:TeXments (http://ctan.org/pkg/texments) eMinted (http://ctan.org/pkg/minted). Falando em Python, também existe um pacote chamadoPythonTeX , vejahttp://ctan.org/pkg/pythontex. De uma chance!

  • Recentemente aprendi sobre opandoc ferramenta,http://johnmacfarlane.net/pandoc/. É mais um conversor de formato para formato, mas vale a pena tentar. Além dos executáveis ​​independentes para todos os principais sistemas operacionais, há uma versão online,http://johnmacfarlane.net/pandoc/try/. O formato LaTeX é uma opção tanto na entrada quanto na saída do conversor. Parece que esta ferramenta é (do) futuro!

Boa sorte com a composição dos códigos-fonte!

Responder2

Esta é a expressão que uso para fornecer aos meus alunos (aprendendo TeX) o código-fonte da tarefa de casa, para que possam estudá-lo e editá-lo quando escreverem suas 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}

Responder3

Serve verbatimboxpara colocá-lo em uma caixa de tamanho reduzido. É possível reduzir ainda mais o tamanho da caixa com um arquivo \scalebox. Enquanto uma caixa não ultrapassa o limite da página, o pacote também oferece versões "nobox" de algumas de suas macros, que ultrapassam a página. No entanto, o recurso de caixa é bom para incluir literalmente figuras, tabelas e movê-lo diretamente na linha ou centralizá-lo.

Neste MWE, adicionei manualmente \fboxdelimitações em torno de todas as caixas literais, para maior clareza, mas elas não fazem parte da caixa literal.

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

insira a descrição da imagem aqui

Há também onumberedblockpacote que permite formatar pequenos blocos de código de maneira como (nota: imagem retirada da documentação do pacote):

insira a descrição da imagem aqui

Responder4

O problema com o texto literal é que ele não quebra longas linhas de código, então eu uso o spverbatimpacote

Exemplo de saída

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

informação relacionada