Следующий MWE (заимствован из@Celdor ответ}, где используется tabular
таблица, работает отлично:
\documentclass{article}
\usepackage{array}
\usepackage{xcolor}
\usepackage{listings}
\lstset{language=sql,
keywordstyle=\color{black!30!blue}\bfseries,
columns=flexible,
}
\begin{document}
\noindent\begin{tabular}{w{l}{11cm}|c}
\begin{lstlisting}
SELECT SUM(lo_extendedprice*lo_discount) AS revenue
FROM lineorder, dwdate
WHERE d_yearmonthnum = 199401
AND lo_orderdate = d_datekey
AND lo_discount BETWEEN 4
AND 6 AND lo_quantity
BETWEEN 26 AND 35;
\end{lstlisting} & 1 \\
\end{tabular}
\end{document}
Между тем его преобразование для использования tblr
пакета, даже с опцией verb
, не приводит к:
\documentclass{article}
\usepackage{tabularray}
\usepackage{xcolor}
\usepackage{listings}
\lstset{language=sql,
keywordstyle=\color{black!30!blue}\bfseries,
columns=flexible,
}
\begin{document}
\noindent\begin{tblr}{colspec = {X[j,m] | c},
rowsep=3pt,
verb}
\begin{lstlisting}
SELECT SUM(lo_extendedprice*lo_discount) AS revenue
FROM lineorder, dwdate
WHERE d_yearmonthnum = 199401
AND lo_orderdate = d_datekey
AND lo_discount BETWEEN 4
AND 6 AND lo_quantity
BETWEEN 26 AND 35;
\end{lstlisting} & 1 \\
\end{tblr}
\end{document}
Компиляция MWE выше выдает следующие предупреждения:
Package Listings Warning: Text dropped after begin of listing on input line 1.
! Missing } inserted.
<inserted text>
}
l.25 \end
{tblr}
?
и ничего не производит. Я слишком упростил вставку кода lstlisting
или tabularray
пока не поддерживает это?
На этот вопрос вы можете посмотреть как на последующий вопросОшибка при совместном использовании `listings` и `tabularray`
решение1
Вот обходной путь с использованием filecontents*
:
\documentclass{article}
\usepackage{tabularray}
\usepackage{xcolor}
\usepackage{listings}
\lstset{
language=sql,
keywordstyle=\color{black!30!blue}\bfseries,
columns=flexible,
}
\begin{document}
\begin{filecontents*}[force]{\jobname-sql.tex}
SELECT SUM(lo_extendedprice*lo_discount) AS revenue
FROM lineorder, dwdate
WHERE d_yearmonthnum = 199401
AND lo_orderdate = d_datekey
AND lo_discount BETWEEN 4
AND 6 AND lo_quantity
BETWEEN 26 AND 35;
\end{filecontents*}
\noindent\begin{tblr}{colspec = {X[j,m] | c},
rowsep=3pt,
verb}
\lstinputlisting{\jobname-sql.tex} & 1 \\
\end{tblr}
\end{document}