Непрерывная граница с математической разметкой внутри разметки кода/алгоритма

Непрерывная граница с математической разметкой внутри разметки кода/алгоритма

В настоящее время я столкнулся с эстетической проблемой. Границы моего раздела кода/алгоритма разделены внутрикодовой математической разметкой:

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

Таблица была создана с помощью следующего кода:

\documentclass{article}
\usepackage[utf8]{inputenc}
\usepackage{amsmath, amsfonts}
\usepackage{listings}

\title{Title}
\author{Author}
\date{Date}

\begin{document}

\maketitle

\lstset{
numbers=left, 
numberstyle=\small, 
numbersep=8pt, 
frame = single, 
language=Python, 
framexleftmargin=15pt
}

\begin{lstlisting}[escapeinside={(*}{*)}]
if (*$\exists s \in S \subset \mathbb{R}^2 \times \{\text{label } | \text{ label } \in \{0,1\} \}$*) with label 1:
    (*$r = \underset{\text{label(s) = 1} }{\max ||s||}$*)
else:
    (*$r = \underset{\text{label(s) = 0} }{\min ||s||} - 10^{-1000} $*)
return B[0, r]
\end{lstlisting}

\end{document}

Кто-нибудь знает, как сделать так, чтобы вертикальные границы были непрерывными, несмотря на математическую разметку? Или хотя бы убрать вертикальные границы?

Кстати, я работаю в Overleaf.

Спасибо!

решение1

Вы можете использовать его tcblistingдля создания рамы.

Или, чтобы удалить вертикальные границы, просто укажите frame=none.

\documentclass{article}
\usepackage[T1]{fontenc}
\usepackage{tcolorbox}
\usepackage{amsmath, amssymb}

\tcbuselibrary{listings, breakable, skins}

\title{Title}
\author{Author}
\date{Date}

\newtcblisting{mylisting}{
  enhanced,
  breakable,
  listing only,
  sharp corners,
  arc=0mm,
  colback=white,
  boxsep=1mm,
  top=0mm,
  bottom=0mm,
  left=6mm,
  right=1mm,
  listing options={
    numbers=left, 
    numberstyle=\small, 
    numbersep=8pt, 
    language=Python, 
    escapeinside={(*}{*)}
  }
}

\begin{document}

\maketitle


\begin{mylisting}
if (*$\exists s \in S \subset \mathbb{R}^2 \times \{\text{label } | \text{ label } \in \{0,1\} \}$*) with label 1:
    (*$r = \underset{\text{label(s) = 1} }{\max ||s||}$*)
else:
    (*$r = \underset{\text{label(s) = 0} }{\min ||s||} - 10^{-1000} $*)
return B[0, r]
\end{mylisting}

\end{document}

решение2

Это была ошибка, listings.styописанная в документации под заголовком8.2

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

и измененный вариант MWE:

\documentclass{article}
\usepackage[utf8]{inputenc}
\usepackage{moreverb}
\usepackage{amsmath,amsfonts,listings}
\usepackage{mdframed}
\begin{document}

\lstset{
numbers=left, 
numberstyle=\small, 
numbersep=2pt, 
%frame = single, 
language=Python, 
framexleftmargin=15pt
}

\begin{verbatimwrite}{temp.c}
if (*$\exists s \in S \subset \mathbb{R}^2 \times \{\text{label } | \text{ label } \in \{0,1\} \}$*) with label 1:
    (*$r = \underset{\text{label(s) = 1} }{\max ||s||}$*)
else:
    (*$r = \underset{\text{label(s) = 0} }{\min ||s||} - 10^{-1000} $*)
return B[0, r]
\end{verbatimwrite}

\begin{mdframed}
\lstinputlisting[escapeinside={(*}{*)}]{./temp.c}
\end{mdframed}


\end{document}

Выход

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

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