%EC%97%90%20%EC%83%89%EC%83%81%EC%9D%84%20%EC%A7%80%EC%A0%95%ED%95%98%EC%8B%9C%EA%B2%A0%EC%8A%B5%EB%8B%88%EA%B9%8C%3F.png)
나는 목록에 쉘 프롬프트와 실제 명령이 강조되고 나머지 텍스트는 약간 "음소거"되는 일종의 쉘 기록 언어 스타일을 갖고 싶었습니다.
지금으로서 얻을 수 있는 최선의 방법은 기본 스타일을 "음소거"/"바랜"/"회색으로 표시"로 정의한 다음 쉘 프롬프트 문자(여기 $
)를 단일 주석 구분 기호로 처리한 다음 나머지 주석을 다음과 같이 지정하는 것입니다. 전체 검정색으로 스타일이 지정되고 굵게 표시됩니다.
\documentclass{article}
\usepackage{listings}
\usepackage{xcolor}
\lstdefinelanguage{ShellTranscript}
{sensitive=false,
morecomment=[l][\color{black}\bfseries]{ \$ },
basicstyle=\ttfamily\footnotesize\color{black!70},
}
\begin{document}
Here we go:
\begin{lstlisting}[language=ShellTranscript]
user@box:~ $ ls /usr/
bin games include lib local man sbin share src
user@box:~ $ ls /var/
backups cache lib local lock log mail opt run spool swap tmp
user@box:~ $ echo 'be careful of $ in there!'
be careful of $ in there!
\end{lstlisting}
\end{document}
출력은 다음과 같습니다.
그러나 내가 정말로 원하는 것은 이것이다.
즉, 주석 구분 기호(예: 프롬프트 문자만 $
)만 빨간색이고 굵게 표시되지 않아야 합니다. 이후의 텍스트(실제 명령)는 검정색이고 굵게 표시되어야 합니다. 출력과 같은 나머지 텍스트는 음소거/회색으로 표시되어야 하며 $
"출력 텍스트"에서는 스타일을 지정해서는 안 됩니다(이는 "주석"을 선언하려면 행이 로 시작 user@box
하고 a를 포함하는지 확인해야 함을 의미할 수 있음 $
). $
주석 구분 기호로 사용하세요 ).
목록을 통해 이를 달성할 수 있습니까? 그렇다면 어떻게 달성할 수 있습니까?
답변1
@matexmatics의 솔루션을 다음에서 조정할 수 있습니다.https://tex.stackexchange.com/a/706145/36296이와 같이:
\documentclass{article}
\usepackage{listings}
\usepackage{xcolor}
\usepackage[T1]{fontenc}
\usepackage{beramono}
\colorlet{dollarcol}{red}
\lstdefinelanguage{ShellTranscript}
{sensitive=false,
basicstyle=\ttfamily\footnotesize\color{black!30},
moredelim=[s][\colorlet{dollarcol}{red}]{user@box:~},
moredelim=**[il][\textcolor{dollarcol}{\$}\color{black}\bfseries\colorlet{dollarcol}{black}]{\$}
}
\begin{document}
Here we go:
\begin{lstlisting}[language=ShellTranscript]
user@box:~ $ ls /usr/
bin games include lib local man sbin share src
user@box:~ $ ls /var/
backups cache lib local lock log mail opt run spool swap tmp
user@box:~ $ echo 'be careful of $ in there!'
be careful of $ in there!
\end{lstlisting}
\end{document}