Изменить размер табуляции и автоматический отступ (пакет: listings/minted)

Изменить размер табуляции и автоматический отступ (пакет: listings/minted)

Я использую пакеты 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}

Вот результат:

введите описание изображения здесь

Связанный контент