멋진 헤드라인을 만들고 싶습니다. 튀어 나오지 않고 프레임과 정확히 일치하도록. 회색 머리글의 너비와 높이를 어떻게 설정합니까? 이 작업이 자동으로 수행될 수 있습니까?
그런데 왜 단어가 다른 색상으로 눈에 띄지 않는가, 결국 패키지 색상을 사용하는 것입니다. 감사합니다
\documentclass[11pt]{article}
\usepackage[utf8]{inputenc}
\usepackage[T2A]{fontenc}
\usepackage[english,russian]{babel}
\usepackage{listings}
\lstset{inputencoding=utf8,extendedchars=false,keepspaces=true}
\renewcommand{\lstlistingname}{Листинг}
\usepackage{color} %% это для отображения цвета в коде
\usepackage{caption}
\DeclareCaptionFont{white}{\color{white}} %% это сделает текст заголовка белым
%% код ниже нарисует серую рамочку вокруг заголовка кода.
\DeclareCaptionFormat{listing}{\colorbox[rgb]{0.25,0.25,0.25}{\parbox{\textwidth}{#1#2#3}}}
\captionsetup[lstlisting]{format=listing,labelfont=white,textfont=white}
\begin{document}
\lstset{
language=C,
numbers=left,
numberstyle=\small,
numbersep=8pt,
frame = single,
framexleftmargin=25pt,
framexrightmargin=75pt,
captionpos=t
}
\begin{lstlisting}[label=some-code,caption={Это крутой исходный код}]
int main(void) // главная программа
{
int i, j; // инициализация счётчиков
// Сей код множит матрицу величиною 3x3
for (i=0; i<3; ++i) {
for (j=0; j<3; ++j) printf("%5.1f", m[i*3+j]);
putchar('\n');
}
// Вызов басурманской библиотеки BLAS
cblas_dgemv(CblasRowMajor, CblasNoTrans,
3, 3, 1.0, m, 3, x, 1, 0.0, y, 1);
// Подаём челобитную на экран
for (i=0; i<3; ++i) printf("%5.1f\n", y[i]);
return 0;
}
\end{lstlisting}
\end{document}
답변1
이런 뜻인가요?
헤더 캡션 위와 아래의 공간은 abovecaptionskip=
매개변수 및 belowcaptionskip=
매개변수로 제어됩니다. 저는 T2A 폰트가 없어서 xelatex Noto Serif
로 사용 fontspec
하고 컴파일해서 파라미터 값으로 사용했는데 belowcaptionskip=0.5em
필요에 따라 변경/조정이 가능합니다.
색상은 (많은) 매개변수를 사용하여 수행됩니다(예: 키워드의 경우).keywordstyle=\color{blue}\bfseries,
다른 매개변수에 대해서는 설명서의 6페이지를 참조하십시오(do texdoc listings
).
MWE
\documentclass[11pt]{article}
%\usepackage[utf8]{inputenc}
%\usepackage[T2A]{fontenc}
\usepackage{xcolor} %% это для отображения цвета в коде
\usepackage{fontspec}
\setmainfont{Noto Serif}
\usepackage[english,russian]{babel}
\usepackage{listings}
\lstset{inputencoding=utf8,extendedchars=false,keepspaces=true}
\renewcommand{\lstlistingname}{Листинг}
\usepackage{caption}
\DeclareCaptionFont{white}{\color{yellow}} %% это сделает текст заголовка белым
%% код ниже нарисует серую рамочку вокруг заголовка кода.
\DeclareCaptionFormat{listing}{\colorbox[rgb]{0.25,0.25,0.25}{\parbox{\textwidth}{#1#2#3}}}
\captionsetup[lstlisting]{format=listing,labelfont=white,textfont=white}
\begin{document}
\lstset{
language=C,
numbers=left,
numberstyle=\small,
numbersep=8pt,
frame = single,
framexleftmargin=25pt,
framexrightmargin=75pt,
captionpos=t,
% abovecaptionskip=0pt,
belowcaptionskip=0.5em,
keywordstyle=\color{blue}\bfseries,
}
\begin{lstlisting}[label=some-code,caption={Это крутой исходный код}]
int main(void) // главная программа
{
int i, j; // инициализация счётчиков
// Сей код множит матрицу величиною 3x3
for (i=0; i<3; ++i) {
for (j=0; j<3; ++j) printf("%5.1f", m[i*3+j]);
putchar('\n');
}
// Вызов басурманской библиотеки BLAS
cblas_dgemv(CblasRowMajor, CblasNoTrans,
3, 3, 1.0, m, 3, x, 1, 0.0, y, 1);
// Подаём челобитную на экран
for (i=0; i<3; ++i) printf("%5.1f\n", y[i]);
return 0;
}
\end{lstlisting}
\end{document}