Látex pacote para fazer realce de sintaxe de código em várias línguas
-
08-07-2019 - |
Pergunta
Estou à procura de um pacote LaTeX que faz destaque de sintaxe no código. Por exemplo, agora eu uso o bloco verbatim para escrever código:
\begin{verbatim}
<html>
<head>
<title>Hello</title>
</head>
<body>Hello</body>
</html>
\end{verbatim}
E isso funciona bem para exibir o código no meu documento. Mas, suponhamos que eu queria destacar a marcação HTML a forma como um IDE faria no documento de saída? Existe um pacote que poderia ajudar?
Eu gostaria de fazer o mesmo para várias linguagens como Java, C #, HTML, CSS e assim por diante.
Solução
Você pode usar o href="http://www.ctan.org/tex-archive/macros/latex/contrib/listings/" rel="noreferrer"> pacote . Ele suporta várias línguas diferentes e há muitas opções para personalizar a saída.
\documentclass{article}
\usepackage{listings}
\begin{document}
\begin{lstlisting}[language=html]
<html>
<head>
<title>Hello</title>
</head>
<body>Hello</body>
</html>
\end{lstlisting}
\end{document}
Outras dicas
Depois de pedir uma pergunta semelhante eu criei um outro pacote que utiliza Pygments, e ofertas muito poucos mais opções do que texments
. É chamado minted
e está bastante estável e utilizável.
Apenas para apresentá-lo, aqui está um código destacado com cunhadas:
Eu recomendo Pygments . Ele aceita um pedaço de código em qualquer idioma e saídas sintaxe destacada LaTeX código. Ele usa fancyvrb e pacotes da cor para produzir sua saída. Eu, pessoalmente, prefiro que o pacote listagem. Acho fancyvrb cria resultados muito mais bonita.
lgrind faz isso. É um pacote LaTeX madura que tem sido em torno desde que Adão era um cowboy e tem suporte para várias linguagens de programação.
Gostaria de usar a cunhadas pacote como mencionado a partir o desenvolvedor Konrad Rudolph vez do listando pacote . Aqui está o porquê:
pacote de lista ??strong>
O pacote listando não suporta cores por padrão. Para usar cores que você precisa para incluir o pacote de cores e definir cor-regras por si mesmo com o \ lstset comando como explicado para o código Matlab aqui .
Além disso, o pacote de lista não funciona bem com unicode, mas você pode corrigir esses problemas, como explicado aqui e aqui .
O código a seguir
\documentclass{article}
\usepackage{listings}
\begin{document}
\begin{lstlisting}[language=html]
<html>
<head>
<title>Hello</title>
</head>
<body>Hello</body>
</html>
\end{lstlisting}
\end{document}
produz a seguinte imagem:
pacote cunhadas
As cores suporta pacotes cunhadas, unicode e aparência impressionante. No entanto, a fim de usá-lo, você precisa ter o Python 2.6 e pygments . No Ubuntu, você pode verificar a sua versão python no terminal com
python --version
e você pode instalar pygments com
sudo apt-get install python-pygments
Em seguida, uma vez cunhadas faz chamadas para pygments, você precisa compilar com -shell-escape como este
pdflatex -shell-escape yourfile.tex
Se você usar um editor de látex como texmaker ou algo assim, eu recomendaria para adicionar um usuário comando, de modo que você ainda pode compilá-lo no editor.
O código a seguir
\documentclass{article}
\usepackage{minted}
\begin{document}
\begin{minted}{html}
<!DOCTYPE html>
<html>
<head>
<title>Hello</title>
</head>
<body>Hello</body>
</html>
\end{minted}
\end{document}
produz a seguinte imagem:
Eu use lstlistings em papéis, mas para a saída de cor (para slides) Eu uso pygments vez.
Gostaria de sugerir definindo o seu próprio pacote com base no código seguinte tex; isso lhe dá total liberdade. http://ubuntuforums.org/archive/index.php/t-331602. html