2010-06-11 1 views
5

У меня есть маленький вопрос о дословной среде в латексе ..... Моя проблема в том, как я могу написать «\ end {verbatim}» внутри дословной среды, он предположил, что все внутри verbatim написано так, как будто это выглядит, но это строка для завершения среды, так как я могу это сделать?как писать это дословно латекс

ответ

3

Я думаю, что это может быть невозможно в среде verbatim - по крайней мере, вот что говорит Лампорт в книге LaTeX (первый абзац на стр. 64). Тем не менее, вы можете сделать это с помощью команды \verb: \verb+\end{verbatim}+ работает просто отлично (и на самом деле вы можете использовать любой символ вместо +, пока вы их сопоставляете).

Это говорит о том, что пакет listings достаточно умен, чтобы иметь escape-символ. Например,

\begin{lstlisting}[escapechar=+] 
+\verb!\end{lstlisting}!+ 
\end{lstlisting} 

выполняет именно то, что вы ищете. (Опять же, выберите другой символ, чем +, если вы уже используете это для чего-то еще.)

+0

спасибо, что работает. Mmm Мне нужно немного больше помочь, в среде сложения вы знаете, как я могу сделать то же самое? (write \ end {lstlisting}) Сначала я задаю дословно, потому что обе среды пишут текст внутри, как они написаны .... первое решение, которое приходит мне на ум, просто разбивает текст на две части, поэтому в середине write \ end {lstlisting} внутри a \ verb – mjsr

+0

О, 'lstlisting' достаточно умен, чтобы иметь escape-символ для этого - теперь обновляем ответ. –

1
\\end{verbatim} 

Если сделать это, сделав первоначальный \ в буквальном обратную косую черту.

+0

Это не работает для меня. –

1

Используйте пакет fancyvrb вместо пакета по умолчанию verbatim.

+0

вы можете дать и пример? ..... я прочитал документацию, но я не вижу ответа – mjsr

+0

Вы зашли на ссылку, загрузили пакет 'fancyvrb' и использовали среду' Verbatim' (capital 'V' ?) Если да, то что вы видели? –

0

Ответ Крэга хороший. Альтернативно, \expandafter\string\csname end{verbatim}\endcsname.

Эти решения не будут хорошо разрисовываться: исправление этого затруднительно.

0

У меня есть более простое решение. Напишите non-breaking space, в Emacs это C-x 8 SPC (Windows, хотя я не пробовал это Alt+0160 (on numeric keypad)). Таким образом, вы можете сделать это:

\begin{verbatim} 
\_end{verbatim} 
\end{verbatim} 

где первый \end{verbatim} имеет этот «_», неразрывный характер.

+0

добавляет уродливое пространство, где он не должен – mjsr

+0

нет, это не так. Он добавит этот символ в исходный код, но он решит вашу проблему. –