\newcommand がエラーをスローします: 引数が暴走しましたか? \lstKV@OptArg@@ が完了する前に段落が終了しました

\newcommand がエラーをスローします: 引数が暴走しましたか? \lstKV@OptArg@@ が完了する前に段落が終了しました

私はlistingsドキュメント内でパッケージを使用しています。コマンドの使用を簡素化するために、\lstinline次のような新しいコマンドを作成しました。

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

また、次のことも試しました:

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

明らかに、このコマンドを使用して C# コードをインラインでリストしています。これは、まったく同じエラー メッセージが表示されるサンプル ドキュメントです。

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

\begin{document}

This is \lstcs{CSharpCode()}.

\end{document}

エラーメッセージは次のようになります:

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.

私は LaTeX をあまり使い慣れておらず、これまで使用したことがないので\newcommand、そこに問題があるのではないかと思います。

ご協力いただければ幸いです。

ありがとう — クリス

答え1

]閉じている部分が早すぎると混乱してしまうSharpので、追加の括弧で囲む必要があります。また、周囲にもう 1 組の括弧が必要です。#1

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

\begin{document}

This is \lstcs{CSharpCode()}.

\end{document}

関連情報