我使用这些包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]
到您的示例中,以及if
和else
块的 Tabstops。请仔细查看输入文件和输出中的缩进。
请阅读minted
软件包手册特别是对 -option 的注释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}
结果如下: