Pakiet LaTeX do podświetlania składni kodu w różnych językach
Szukam pakietu LaTeX, który podświetla składnię w kodzie. Na przykład teraz używam bloku verbatim do pisania kodu:
\begin{verbatim}
<html>
<head>
<title>Hello</title>
</head>
<body>Hello</body>
</html>
\end{verbatim}
I to działa dobrze, aby wyświetlić kod na moim dokumencie. Ale załóżmy, że chciałem podkreślić znacznik HTML tak, jak IDE w dokumencie wyjściowym? czy jest jakaś paczka, która mogłaby pomóc?
Chciałbym zrobić to samo dla różnych języków, takich jak Java, C#, HTML, CSS i tak dalej.
7 answers
Możesz użyć pakietu listings . Obsługuje wiele różnych języków i istnieje wiele opcji dostosowywania wyjścia.
\documentclass{article}
\usepackage{listings}
\begin{document}
\begin{lstlisting}[language=html]
<html>
<head>
<title>Hello</title>
</head>
<body>Hello</body>
</html>
\end{lstlisting}
\end{document}
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2008-11-18 23:43:01
Po zadaniu podobnego pytania stworzyłem kolejny pakiet, który używa pigmentów i oferuje sporo więcej opcji niż texments
. Nazywa się minted
i jest dość stabilny i użyteczny.
Żeby się pochwalić, oto kod podświetlony wybitymi:
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2020-06-20 09:12:55
Polecam Pigmenty . Akceptuje fragment kodu w dowolnym języku i wyświetla podświetlony Kod LaTeX. Wykorzystuje pakiety fancyvrb i color do produkcji swoich danych wyjściowych. Osobiście wolę go od pakietu ofertowego. Myślę, że fancyvrb daje znacznie ładniejsze rezultaty.
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2009-09-20 21:39:11
IGrind robi to. Jest to dojrzały Pakiet LaTeX, który istnieje od czasów, gdy adam był kowbojem i ma wsparcie dla wielu języków programowania.
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2013-05-20 20:25:49
Użyłbym wybity pakiet Jak wspomniano od dewelopera Konrad Rudolph zamiast listing pakiet . Oto dlaczego:
Listing package
Pakiet listingu domyślnie nie obsługuje kolorów. Aby użyć kolorów, musisz dołączyć pakiet kolorów i samodzielnie zdefiniować reguły kolorów za pomocą polecenia \lstset, Jak wyjaśniono dla kodu matlab tutaj.
Ponadto pakiet listing nie działa dobrze z unicode, ale możesz naprawić te problemy, jak wyjaśniono tutaj i tutaj .
Następujący kod
\documentclass{article}
\usepackage{listings}
\begin{document}
\begin{lstlisting}[language=html]
<html>
<head>
<title>Hello</title>
</head>
<body>Hello</body>
</html>
\end{lstlisting}
\end{document}
Tworzy następujący obrazek:
paczka wybita
Wybity Pakiet obsługuje kolory, unicode i wygląda niesamowicie. Jednak, aby go używać, musisz mieć python 2.6 i pigmenty . W Ubuntu możesz sprawdzić swoją wersję Pythona w terminalu za pomocą
python --version
Oraz możesz zainstalować pigmenty za pomocą
sudo apt-get install python-pygments
Następnie, ponieważ minted wywołuje pygments, musisz skompilować go za pomocą - shell-escape w ten sposób
pdflatex -shell-escape yourfile.tex
Jeśli używasz edytora latex, takiego jak TexMaker czy coś takiego, polecam dodać polecenie user-command, abyś mógł je jeszcze skompilować w edytorze.
Następujący kod
\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}
Tworzy następujący obrazek:
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2017-04-13 12:34:29
Najczęściej używam lstlistingów w papierach, ale do kolorowych wydruków (do slajdów) używam pigmentów.
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2009-08-05 17:27:16
Sugerowaĺ 'bym zdefiniowanie wĹ' asnego pakietu w oparciu o nastÄ ™ pujÄ ... cy kod tex-a; daje to peĹ 'nÄ ... wolnoĹ" ć. http://ubuntuforums.org/archive/index.php/t-331602.html
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2009-11-14 17:13:23