在 minted 环境中自定义换行符

在 minted 环境中自定义换行符

我正在使用 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}

相关内容