
Existe um pacote que permite código-fonte em LaTeX como texto? Prefiro não usar o listings
pacote 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
verbatim
everbatim*
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
fancyvrb
pacote 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
listings
pacote 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\lstinputlisting
comando). 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 olistingsutf8
pacote,http://ctan.org/pkg/listingsutf8. Eu estava usando sequências de escapelistings
para 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
R
có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
Sage
có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 o
Highlight
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 chamada
Pygments
(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 o
pandoc
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 verbatimbox
para 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 \fbox
delimitaçõ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}
Há também onumberedblock
pacote que permite formatar pequenos blocos de código de maneira como (nota: imagem retirada da documentação do pacote):
Responder4
O problema com o texto literal é que ele não quebra longas linhas de código, então eu uso o spverbatim
pacote
\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}