![在 minted 环境中自定义换行符](https://linux22.com/image/386353/%E5%9C%A8%20minted%20%E7%8E%AF%E5%A2%83%E4%B8%AD%E8%87%AA%E5%AE%9A%E4%B9%89%E6%8D%A2%E8%A1%8C%E7%AC%A6.png)
我正在使用 minted 包来列出我的代码。我想自定义换行符,而不是使用断线自动换行的选项。不幸的是,我还没有找到合适的解决方案。我也尝试了 escapeinside,但没有成功。:(
因此,就我而言,我有以下构建的环境:
\begin{minted}[bgcolor=bg, breaklines]{bash}
docker run -it --net rc --name hubot -e ROCKETCHAT_URL=rocketchat.rc:3000 -e ROCKETCHAT_ROOM='' -e LISTEN_ON_ALL_PUBLIC=true -e ROCKETCHAT_USER=<username> -e ROCKETCHAT_PASSWORD=<password> -e ROCKETCHAT_AUTH=password -e BOT_NAME=bot -e EXTERNAL_SCRIPTS=hubot-pugme,hubot-help,hubot-diagnostics rocketchat/hubot-rocketchat
\end{minted}
我想手动设置换行符...也许通过添加?或者在我想要换行的位置使用其他标记。这可能吗,或者您还有其他建议吗?
答案1
下面的示例应该能满足您的需求,或者至少是一个不错的起点。它使用breaklines
来启用换行,但通过使用 来showspaces
启用自定义空格替换字符,然后将其设置为不间断空格,从而禁用空格处的换行。目前,?
变为\linebreak
。根据您的使用方式,可能值得研究\allowbreak
。
\documentclass{article}
\usepackage{minted}
\AtBeginEnvironment{minted}{%
\catcode`?\active
\begingroup\lccode`~=`\?\lowercase{\endgroup\def~{\linebreak}}%
}
\begin{document}
\begin{minted}[breaklines, showspaces, space=~]{bash}
docker run -it --net rc --name hubot ?-e ROCKETCHAT_URL=rocketchat.rc:3000 ?-e ROCKETCHAT_ROOM='' ?-e LISTEN_ON_ALL_PUBLIC=true -e ROCKETCHAT_USER=<username> ?-e ROCKETCHAT_PASSWORD=<password> ?-e ROCKETCHAT_AUTH=password ?-e BOT_NAME=bot ?-e EXTERNAL_SCRIPTS=hubot-pugme,hubot-help,hubot-diagnostics ?rocketchat/hubot-rocketchat
\end{minted}
\end{document}