É possível declarar que o documento é livre de matemática para impedir "Falta $ inserido"?

É possível declarar que o documento é livre de matemática para impedir "Falta $ inserido"?

Eu sei que é possível escapar de cada sublinhado ( \_) ou aplicar \usepackage{underscore}.

Escapar é tedioso, sublinha quebras de pacote \textbf{a_b}e \includegraphics{filename_with_underscore}.

Existe uma solução melhor para textos sem matemática, incluindo vários sublinhados (no meu caso - em URLs)?

Responder1

É melhor marcar o URL com \url{http://.....}(url ou hiperref), pois assim a quebra de linha será melhor tratada. Observe que o urlpacote permitirá apenas quebra de linha em URLs e não adicionará nenhuma anotação. hyperrefusa o mesmo código para quebra de linha, mas também torna o link um link ativo. Por padrão, isso adiciona uma decoração colorida, mas o pacote tem várias opções para controlar ou desabilitar isso.

Mas se você quiser que _ seja um caractere normal, use

\catcode`\_=12 

Assegure-se de ter

\usepackage[T1]{fontenc} 

já que as fontes OT1 não possuem o _caractere.

Responder2

Você pode fazer com que seus sublinhados sejam impressos fora do modo matemático e fazendo suas tarefas habituais no modo matemático:

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

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

\begin{document}

Under_score and $a_{1}$.

\end{document}

insira a descrição da imagem aqui

Para o problema de URLs coloridos, basta carregar hyperrefcom a opção relevante. Com \urlstylevocê também pode alterar a fonte padrão.

\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}

insira a descrição da imagem aqui

informação relacionada