\documentclass[paper=a4,pagesize,DIV13,10pt,german]{scrartcl}
\usepackage{showframe}
\usepackage{babel}
\usepackage[T1]{fontenc}
\usepackage[utf8]{inputenc}
\usepackage{listings,showexpl}
\usepackage{xcolor}
\usepackage{tabularx,calc}
\parindent0pt
\begin{document}
\subsubsection*{tabular + lstlistings}
Die Seite hat die Textbreite:\,\the\textwidth, die sich jeweils aus der Addition von
Namens- und Spaltenbreite zusammensetzt.
\bigskip
\newlength\NAME
\settowidth{\NAME}{Name}
Namensbreite:\,\the\NAME% nur_zur_Demo
\begin{tabular}{@{} lp{\textwidth-\NAME}}
Name&
\begin{minipage}[t]{\linewidth}Spaltenbreite:\,\the\linewidth -- % nur_zur_Demo
\begin{lstlisting}[breaklines=true,basicstyle=\small\ttfamily]
$x$ = 'a short string'
\end{lstlisting}
\end{minipage} \\
\end{tabular}
\newlength\NAMEI
\settowidth{\NAMEI}{Der Name ist Schall und Rauch}
Namensbreite:\,\the\NAMEI% nur_zur_Demo
\begin{tabular}{@{}lp{\textwidth-\NAMEI}}
Der Name ist Schall und Rauch&
\begin{minipage}[t]{\linewidth}Spaltenbreite:\,\the\linewidth -- % nur_zur_Demo
\begin{lstlisting}[breaklines=true,basicstyle=\small\ttfamily]
$x$ = 'a not so short but never ending and very long string'
\end{lstlisting}
\end{minipage} \\
\end{tabular}
\end{document}
Lesezeichen