
マクロによって後で挿入される改行を抑制するにはどうすればよいですか? 改行を 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
「トリッキー」です。デフォルトでは、この環境は改行コマンドを発行し、その内容を行全体にわたってタイプセットします (ここでは、リスト内にあることを考慮に入れます)。
fancyvrb
verbatim 環境をボックス化するために、次の機能を使用できます。
\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}