LaTeX lstlisting подчеркнутый

#latex #lstlisting

#Латекс #lstlisting

Вопрос:

Есть ли простой способ подчеркнуть весь код в lstlisting среде? Мое текущее решение выглядит следующим образом, но я им не очень доволен.

 begin{lstlisting}[mathescape]
   $ul{if(gt(x1, 0)) then} $
   ...
end{lstlisting}
  

Спасибо за любые советы.

Комментарии:

1. вы имеете в виду, что не хотите подчеркивать каждую строку в списке?

2. да, я не хочу использовать math env в каждой строке и подчеркивать каждую строку отдельно.

Ответ №1:

В соответствии со страницей 5 в руководстве пользователя (найдено здесь):

 lstset{keywordstyle=underbar} 
  

Комментарии:

1. Это работает только для ключевых слов. Но я не использую никакого специального синтаксиса, поэтому у меня нет ключевых слов. Я хочу, чтобы весь код был подчеркнут. Я попробовал lstset{basicstyle=underbar} , но это также не работает.

Ответ №2:

Если вы хотите подчеркнуть всю строку (а не только ключевые слова), лучшее решение, которое я могу придумать, — это сделать что-то вроде приведенных ниже строк:

 usepackage{listings}

newcommand{lstul}[1]{underline{mbox{tt #1}}}

begin{document}

begin{lstlisting}[mathescape]
  $lstul{if condition}$
      $lstul{statement 1}$
  $lstul{statement 2}$
  ...
end{lstlisting}


end{document}
  

Комментарии:

1. Это решение не сильно отличается от моего, которое я опубликовал в своем вопросе, за исключением того, что я назвал команду ul, а не lstul .

2. Конечно. Я не был уверен, что вам в нем не понравилось, поэтому я предположил, что вас беспокоил выделенный курсивом математический шрифт, который можно решить с помощью mbox.

3. Из-за этого код выглядит запутанным. И вы не можете включить код из внешнего файла :/

4. хорошие моменты. Еще один момент: разве подчеркнутый код не выглядит уродливо? 🙂 Я бы предпочел прочитать стандартное форматирование списка. На каком языке вы вводите текст? Это псевдокод? Не могли бы вы опубликовать фактическое содержимое списка в своем вопросе, возможно?

5. Да, это выглядит не очень хорошо, но я должен отформатировать его в этом стиле, потому что это для курса в университете.