\newcommand gibt Fehler aus: Argument außer Kontrolle? Absatz wurde beendet, bevor \lstKV@OptArg@@ abgeschlossen war

\newcommand gibt Fehler aus: Argument außer Kontrolle? Absatz wurde beendet, bevor \lstKV@OptArg@@ abgeschlossen war

Ich verwende das listingsPaket in einem Dokument. Um die Verwendung des \lstinlineBefehls zu vereinfachen, habe ich einen neuen Befehl erstellt, der wie folgt aussieht:

\newcommand{\lstcs}[1]{\lstinline[language=[Sharp]C,breaklines=false]#1}

Und ich habe auch versucht:

\newcommand{\lstcs}[1]{\lstinline[language=[Sharp]C,breaklines=false]{#1}}

Offensichtlich verwende ich diesen Befehl, um C#-Code inline aufzulisten. Dies ist mein Beispieldokument, in dem ich genau dieselbe Fehlermeldung erhalte:

\documentclass{scrreprt}
\usepackage{listings}
\newcommand{\lstcs}[1]{\lstinline[language=[Sharp]C,breaklines=false]#1}

\begin{document}

This is \lstcs{CSharpCode()}.

\end{document}

Die Fehlermeldung lautet wie folgt:

Runaway argument?
CSharpCode(). 
./test.tex:8: Paragraph ended before \lstKV@OptArg@@ was complete.
<to be read again> 
               \par 
l.8 

? 
[1{/usr/local/texlive/2012/texmf-var/fonts/map/pdftex/updmap/pdftex.map}]
(./test.aux) )
(\end occurred inside a group at level 1)

### simple group (level 1) entered at line 7 ({)
### bottom level
(\end occurred when \ifx on line 7 was incomplete)
(\end occurred when \ifx on line 7 was incomplete)
(\end occurred when \ifx on line 7 was incomplete)
(\end occurred when \ifx on line 7 was incomplete)
(\end occurred when \ifx on line 7 was incomplete) </usr/local/texlive/2012/texm
f-dist/fonts/type1/public/amsfonts/cm/cmr10.pfb>
Output written on test.pdf (1 page, 11039 bytes).
SyncTeX written on test.synctex.gz.
Transcript written on test.log.

Ich bin ein ziemlicher Neuling bei LaTeX und habe es noch nie \newcommandzuvor verwendet. Ich nehme an, dass dort das Problem liegt.

Ich hoffe ihr könnt mir helfen!

Danke — Chris

Antwort1

Es wird verwirrt, wenn es das Schließen ]zu früh sieht, Sharpalso müssen Sie es mit einem zusätzlichen Paar Klammern einschließen. Außerdem braucht es ein weiteres Paar Klammern um#1

\documentclass{scrreprt}
\usepackage{listings}
\newcommand{\lstcs}[1]{\lstinline[language={[Sharp]C},breaklines=false]{#1}}

\begin{document}

This is \lstcs{CSharpCode()}.

\end{document}

verwandte Informationen