#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. Да, это выглядит не очень хорошо, но я должен отформатировать его в этом стиле, потому что это для курса в университете.