
Как мне подавить новую строку, которая будет вставлена после макроса? Есть ли команда, которая отключает новую строку ровно один раз и включает ее снова после пропущенной?
Например, игнорируя это, следующий макрос начинает с создания нового абзаца перед записью текста.
Таким образом, будет напечатан только текст, но не перевод строки, начинающий абзац. Возможна ли такая команда?
Как и просили, пример:
пишет: "первые пробелы переноса строки foo"
требуется: "первые пробелы 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}
Обратите внимание, что не следует делать отступы в содержимом дословной среды, если только вы не хотите получить отступы в выводе.
Ваше использование \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}