Я использую пакеты listings
и minted
для подсветки синтаксиса в LaTeX.
Проблема в том, что отступ слишком большой (обычный табулятор), и я не хочу использовать пространство. Можно ли изменить размер табуляции здесь? Что-то вроде tabsize=2 не работает.
И возможно ли сделать автоматический отступ для моего программного кода? Я имею в виду, что этот listings
пакет (или любой другой) распознает операторы if и т. д. и автоматически делает отступ для всего моего кода.
Вот краткий пример:
\documentclass{article}
\usepackage{listings}
\usepackage{minted}
\begin{document}
\begin{minted}{bash}
#!/bin/bash
parameter1=$1
#some commentary
if [ "$parameter1" == "-h" ] || [ "$parameter1" == "--help" ] ;
then
echo my helpfile
else
#the rest of my programcode
\end{minted}
\end{document}
Оператор if должен выглядеть примерно так:
if [ "$parameter1" == "-h" ] || [ "$parameter1" == "--help" ] ;
then
echo my helpfile
else
#the rest of my programcode
решение1
Вы можете использовать некоторые необязательные аргументы для вашего minted
-environment. Я добавил [obeytabs=true,tabsize=2]
к вашему примеру, а также Tabstops для блока if
и else
. Пожалуйста, внимательно посмотрите на отступы во входном файле и в выходном.
Пожалуйста, прочтитеруководство по minted
эксплуатации -пакетаособенно примечание к obeyetabs
опции.
(Если этот ответ вас не устраивает, вам придется использовать другой красивый принтер (возможно, скрипт SED), чтобы привести свой код к желаемому виду, прежде чем передавать его в LaTeX и minted
. Я не знаю ни одного пакета LaTeX, который мог бы форматировать и красиво печатать ваш исходный код.)
Примечание: мне пришлось заменить символы табуляции во входном файле на пробелы ради TeX.SE, чтобы он напоминал внешний вид моего входного файла.
\documentclass{article}
\usepackage{listings}
\usepackage{minted}
\begin{document}
\begin{minted}[obeytabs=true,tabsize=2]{bash}
#!/bin/bash
parameter1=$1
#some commentary
if [ "$parameter1" == "-h" ] || [ "$parameter1" == "--help" ] ;
then
echo my helpfile
else
#the rest of my programcode
fi
\end{minted}
\end{document}
Вот результат: