如何使用 escapeinside 将列表居中

如何使用 escapeinside 将列表居中

我希望将代码列表居中,其中包含一些乳胶数学符号(例如\对全部)。不幸的是,它导致我的列表向右移动。它现在位于列表的左边缘而不是列表的中心。

\begin{figure}[h]
    \centering
    \begin{tabular}{c}{
            \begin{lstlisting}[language=customLanguage]
{
    %*$\forall formula here $*)
    %*$\forall second formula here $*) 
}\end{lstlisting}
    }\end{tabular}
    \caption{my caption.}
    \label{fig:example}
\end{figure}

结果如下:向右移动

但是!如果我删除 \escapeinside 语法来运行 Latex 代码,如下所示:

\begin{figure}[h]
    \centering
    \begin{tabular}{c}{
            \begin{lstlisting}[language=customLanguage]
{
    \forall formula here $*)
    %*$\forall second formula here $*) 
}\end{lstlisting}
    }\end{tabular}
    \caption{my caption.}
    \label{fig:example}
\end{figure}

然后我得到了正确的定位,但显然不是预期的文本:在此处输入图片描述

有什么办法可以让我鱼与熊掌兼得吗?

我的 .sty 文件:

% Define IDP
\lstdefinelanguage{customLanguage}{
    ... % irrelevant stuff
}
\lstset{
    language=customLanguage,
    tabsize=3,
    basicstyle=\footnotesize,  
    %frame=none,
    %frame=single,
    escapeinside={\%*}{*)},          % if you want to add LaTeX within your code
    showstringspaces=false,
    breaklines = true,
    alsoletter=(,
    commentstyle=\commentstyle,
    keywordstyle=[1],
    keywordstyle=[2]\color{BrickRed}\bfseries,
    keywordstyle=[3]\color{OliveGreen}\bfseries,
    keywordstyle=[4]\color{Blue}\bfseries,
    keywordstyle=[5]\color{Violet}\bfseries,
    literate={~} {$\sim$}{1}
}
\newcommand{\code}[1]{\texttt{#1}}

相关内容