マクロの後の改行を抑制する

マクロの後の改行を抑制する

マクロによって後で挿入される改行を抑制するにはどうすればよいですか? 改行を 1 回だけオフにして、スキップされた改行の後に再びオンにするコマンドはありますか?
次のマクロがテキストを書き出す前に新しい段落を作成して開始することを無視するようなものです。
そのため、テキストのみが印刷され、段落を開始する改行は印刷されません。 このようなコマンドは可能ですか?

要求された例:
書き込み: "first linebreak spaces foo"
必要なのは: "first spaces foo"

\documentclass{article}
\usepackage[T1]{fontenc}
\usepackage{enumitem}
\begin{document}
\begin{itemize}
\item[]{first} \begin{verbatim}             foo
             bar
\end{verbatim} \item[] {second} more text
\end{itemize}
\end{document}

答え1

の場合、これはverbatim「トリッキー」です。デフォルトでは、この環境は改行コマンドを発行し、その内容を行全体にわたってタイプセットします (ここでは、リスト内にあることを考慮に入れます)。

fancyvrbverbatim 環境をボックス化するために、次の機能を使用できます。

\documentclass{article}
\usepackage[T1]{fontenc}
\usepackage{enumitem}
\usepackage{fancyvrb}
\begin{document}

\begin{itemize}
\item[first]
\begin{BVerbatim}[baseline=t]
foo
bar
\end{BVerbatim}

\item[second] more text
\end{itemize}
\end{document}

インデントされた出力が必要でない限り、verbatim 環境の内容をインデントしてはいけないことに注意してください。

の使い方は\item[] {first}疑わしいです。コマンドには\itemオプションの引数しかなく、必須の引数がないので、次の出力とまったく同じになります。

\item[] first

私はfirstオプションの引数として を入れました。お好みでどうぞ。ラベルなしの が欲しい場合はitemize、次のように言う方が簡単です。

\begin{itemize}[label={}]

\itemを使用しているので、単に を使用しますenumitem

ここに画像の説明を入力してください

ラベルなしの変更されたリストは次のとおりです。

\documentclass{article}
\usepackage[T1]{fontenc}
\usepackage{enumitem}
\usepackage{fancyvrb}
\begin{document}

\begin{itemize}[label={}]
\item first 
\begin{BVerbatim}[baseline=t]
foo
bar
\end{BVerbatim}

\item second more text
\end{itemize}
\end{document}

ここに画像の説明を入力してください

関連情報