独自の環境で特殊文字を自動的にエスケープするにはどうすればよいですか?

独自の環境で特殊文字を自動的にエスケープするにはどうすればよいですか?

ソースコードの例用の環境を作成する必要があります。次のようになります。

コード例:

------------------------------------------------

# これはコード例です

「こんにちは」とエコーする

------------------------------------------------


問題は、特殊文字 (特にハッシュ) を自動的にエスケープするように強制する方法がわからないことです。そのため、ユーザーはハッシュを入力するたびにバックスラッシュを入力する必要がありません。


私のコード

\def\terminalText#1\end{\hspace*{2em}\texttt{#1}\\\end}

\newenvironment{codeExample}{
\vspace*{1.5em}
\noindent
Code example:\\
\hspace*{1.3em}\hdashrule[0.5ex]{435pt}{0.9pt}{1.5mm}\\
\terminalText}
{\hspace*{1.3em}\hdashrule[0.5ex]{435pt}{0.9pt}{1.5mm}}

このコードは、環境内に特殊文字を書き込むまでは正常に動作しますが、その場合、次のエラーが発生します。

! Paragraph ended before \terminalText was complete.


verbatim質問によると、私は環境に何らかのラッパーを作ろうとさえした。新しい環境定義でそのまま使用可能ですか?しかし、次のエラーが発生します:

! LaTeX Error: \begin{codeExample} on input line 535 ended by \end{verbatim}.

私の2番目のコード

\newenvironment{codeExample}{
\vspace*{1.5em}
\noindent
Code Example:\\
\hspace*{1.3em}\hdashrule[0.5ex]{435pt}{0.9pt}{1.5mm}\\
\verbatim
}
{%
\endverbatim
\hspace*{1.3em}\hdashrule[0.5ex]{435pt}{0.9pt}{1.5mm}}

答え1

パッケージを使用するとverbatim、2 番目の例のコードはすぐに動作します (dashruleパッケージも含まれている場合)

\documentclass{article}

\usepackage{verbatim}
\usepackage{dashrule}


\newenvironment{codeExample}{
\vspace*{1.5em}
\noindent
Code Example:\\
\hspace*{1.3em}
\hdashrule[0.5ex]{435pt}{0.9pt}{1.5mm}

\verbatim
}
{%
\endverbatim
\hspace*{1.3em}
\hdashrule[0.5ex]{435pt}{0.9pt}{1.5mm}
}




\begin{document}

\begin{codeExample}
# This is the code example

echo 'Hello'
\end{codeExample}

\end{document}

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

listingsコード例をタイプセットするための「より良い」、よりクリーンな方法として、パッケージを検討してください。

編集以下はリストの出力例ですtcolorbox

\documentclass{article}

\usepackage{verbatim}
\usepackage{dashrule}

\usepackage[most]{tcolorbox}


\newenvironment{codeExample}{
\vspace*{1.5em}
\noindent
Code Example:\\
\hspace*{1.3em}
\hdashrule[0.5ex]{435pt}{0.9pt}{1.5mm}

\verbatim
}
{%
\endverbatim
\hspace*{1.3em}
\hdashrule[0.5ex]{435pt}{0.9pt}{1.5mm}
}


\newtcblisting[auto counter]{codeex}[1][]{%
  arc=0pt,
  auto outer arc,
  colbacktitle=yellow,
  coltitle=black,
  title={Code Example \thetcbcounter},
  listing options={language=bash},
  listing only,
  lowerbox=ignored,
  before upper=\hdashrule[0.5ex]{\textwidth}{0.9pt}{1.5mm},
  after upper=\hdashrule[0.5ex]{\textwidth}{0.9pt}{1.5mm}
  #1
}

\begin{document}

\begin{codeExample}
# This is the code example

echo 'Hello'
\end{codeExample}

\begin{codeex}
echo 'Hello' 

\end{codeex}

\end{document}

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

関連情報