- Questo topic ha 0 risposte, 1 partecipante ed è stato aggiornato l'ultima volta 11 anni, 3 mesi fa da .
-
Topic
-
Salve a tutti,sto scrivendo un manuale utente con delle parti di documentazione di codice XML, che pensavo di realizzare in maniera compatta con degli ambienti di tipo description, come nel codice seguente che ho scritto unendo vari pezzi trovati on-line:
`
\documentclass[11pt,% % corpo del font principale
a4paper,% % carta A4
twoside,openright,% % fronte-retro
]{scrreprt}\usepackage{listings,xcolor}
\definecolor{darkgreen}{rgb}{0.0,0.6,0.0}\lstdefinelanguage{XML}
{
morestring=“,
morestring={>}{<}, morecomment=[s]{}{?>},
morecomment={},
moredelim=[l][basicstyle]{>},
morekeywords={xmlns,version,type,value,Value,app,com} % list your attributes here
}
\lstdefinestyle{MyXML}
{
language=XML,
basicstyle=\small\ttfamily,
keywordstyle=\color{darkgreen},
identifierstyle=\color{blue},
stringstyle=\color{red},
commentstyle=\color{gray}\upshape,
emphstyle=\itshape,
columns=fullflexible,
breaklines=true,
keepspaces=true,
showstringspaces=false,
frame=single,
}% Environment per allineare le descrizioni con la label più lunga
\newenvironment{listingsdescr}[1]
{\begin{list}{}%
{\renewcommand\makelabel[1]{##1\hfill}%
\settowidth\labelwidth{\makelabel{#1}}%
\setlength\leftmargin{\labelwidth}
\addtolength\leftmargin{\labelsep}}}
{\end{list}}% Per utilizzare i listati come label nelle item
\newcommand*{\lstitem}[2][]{
\setbox0\hbox{\lstinline[#1]|#2|}
\item[\usebox0]\leavevmode
}\renewcommand{\ttdefault}{pcr}
\begin{document}
\begin{listingsdescr}{\lstinline[style=MyXML]|standalone|}
\lstitem[style=MyXML]{time} \begin{description}
\lstitem[style=MyXML,morekeywords={app}]{app}Periodo (espresso in s) corrispondente alla frequenza definita dal parametro XXX.
\lstitem[style=MyXML,morekeywords={com}]{com}Periodo (espresso in s) corrispondente alla frequenza definita dal parametro YYY.
\end{description}
\lstitem[style=MyXML]{standalone}Some text
\end{listingsdescr}\end{document}
`Per rendere tutto più compatto, vorrei però che l’etichetta “app” rimanesse sulla stessa riga del tag “time” invece di andare alla riga successiva, come il semplice testo dell’elemento “standalone”.
Non essendo un esperto di linguaggio TeX o LaTeX, non ho idea del perchè ci sia questa differenza di comportamento, nè ho idea di come fare ciò che voglio. Sospetto che la causa sia l’uso dell’hbox nella definizione comando \lstitem: ho provato a togliere il comando \leavevmode, ma sembra non funzionare. Qualcuno sa darmi una mano?Vi ringrazio in anticipo per l’aiuto.
Davide
- Devi essere connesso per rispondere a questo topic.