\documentclass{book}
\usepackage{amsfonts}
\usepackage{amsmath}
\usepackage[gen]{eurosym}
\usepackage{textcomp}
\usepackage{graphicx}
\usepackage{etoolbox}
\usepackage{titleps}
\usepackage[utf8]{inputenc}
\usepackage[T1]{fontenc}
\usepackage{imakeidx}
\usepackage{enumitem}
\usepackage{float}
% use hidelinks to remove boxes around links to be similar to Texinfo TeX
\usepackage[hidelinks]{hyperref}

\makeatletter
\newcommand{\Texinfosettitle}{No Title}%

% no index headers
\indexsetup{level=\relax,toclevel=section}%
\makeindex[name=cp,title=]%

% style command for var in 'cmd_text' formatting context
\newcommand\Texinfocommandstyletextvar[1]{{\normalfont{}\textsl{#1}}}%

% redefine the \mainmatter command such that it does not clear page
% as if in double page
\renewcommand\mainmatter{\clearpage\@mainmattertrue\pagenumbering{arabic}}
\newenvironment{Texinfopreformatted}{%
  \par\GNUTobeylines\obeyspaces\frenchspacing\parskip=\z@\parindent=\z@}{}
{\catcode`\^^M=13 \gdef\GNUTobeylines{\catcode`\^^M=13 \def^^M{\null\par}}}
\newenvironment{Texinfoindented}{\begin{list}{}{}\item\relax}{\end{list}}


% set defaults for lists that match Texinfo TeX formatting
\setlist[description]{style=nextline, font=\normalfont}

% used for substitutions in commands
\newcommand{\Texinfoplaceholder}[1]{}

\newpagestyle{single}{\sethead[\chaptername{} \thechapter{} \chaptertitle{}][][\thepage]
                              {\chaptername{} \thechapter{} \chaptertitle{}}{}{\thepage}}

% allow line breaking at underscore
\let\Texinfounderscore\_
\renewcommand{\_}{\Texinfounderscore\discretionary{}{}{}}
\renewcommand{\includegraphics}[1]{\fbox{FIG \detokenize{#1}}}

\makeatother
% set default for @setchapternewpage
\makeatletter
\patchcmd{\chapter}{\if@openright\cleardoublepage\else\clearpage\fi}{\Texinfoplaceholder{setchapternewpage placeholder}\clearpage}{}{}
\makeatother
\pagestyle{single}%

\begin{document}
\begin{Texinfoindented}
\begin{description}
\item[{\parbox[b]{\linewidth}{%
\Texinfocommandstyletextvar{a--b}\\
\index[cp]{index entry between item and itemx@index entry between item and itemx}%
\Texinfocommandstyletextvar{b}\\
\Texinfocommandstyletextvar{c}}}]
\begin{Texinfopreformatted}%
\ttfamily l{-}{-}ine
\end{Texinfopreformatted}
\item[{\parbox[b]{\linewidth}{%
\Texinfocommandstyletextvar{d}}}]
\end{description}
\end{Texinfoindented}
\end{document}
