「Missing $ inserted」エラーを防ぐために、ドキュメントを数学なしとして宣言することは可能ですか?

「Missing $ inserted」エラーを防ぐために、ドキュメントを数学なしとして宣言することは可能ですか?

すべてのアンダースコア ( \_) をエスケープするか、 を適用することが可能であることはわかっています\usepackage{underscore}

エスケープは面倒で、アンダースコアはパッケージを分割し\textbf{a_b}ます\includegraphics{filename_with_underscore}

複数のアンダースコアを含む数学的表現のないテキスト (私の場合は URL 内) に対するより良い解決策はありますか?

答え1

URL を\url{http://.....}(url または hyperref) でマークすると、改行がより適切に処理されます。urlパッケージは URL での改行のみを許可し、注釈は追加しないことに注意してください。hyperref改行に同じコードを使用しますが、リンクをアクティブ リンクにします。デフォルトでは、これにより色付きの装飾が追加されますが、パッケージにはそれを制御または無効にするオプションがいくつかあります。

しかし、_を通常の文字として使用したい場合は、

\catcode`\_=12 

必ず

\usepackage[T1]{fontenc} 

OT1 フォントには文字がないため_

答え2

アンダースコアを数式モードの外部でそのように印刷し、数式モードでは通常どおりに動作させることができます。

\documentclass{article}
\usepackage[T1]{fontenc}

\catcode`_=12
\begingroup\lccode`~=`_\lowercase{\endgroup\let~\sb}

\begin{document}

Under_score and $a_{1}$.

\end{document}

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

色付きの URL の問題については、hyperref関連するオプションを使用してロードするだけです。\urlstyleまた、デフォルトのフォントを変更することもできます。

\documentclass{article}
\usepackage[T1]{fontenc}
\usepackage{hyperref}

\hypersetup{colorlinks=false}

\catcode`_=12
\begingroup\lccode`~=`_\lowercase{\endgroup\let~\sb}

\begin{document}

Under_score and $a_{1}$, see at
\url{http://tex.stackexchange.com}


\bigskip

\urlstyle{rm}

This URL uses the normal font
\url{http://tex.stackexchange.com}

\end{document}

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

関連情報