Символ экранирования перед % даёт ! Вставлен отсутствующий $.$ ошибка

Символ экранирования перед % даёт ! Вставлен отсутствующий $.$ ошибка

Я пытаюсь включить ссылку в свои ссылки. Ссылка содержит%характер в нем. Для того, чтобы%вести себя как нормальный персонаж я избегаю этого с\характер. Но я получаю

! Missing $ inserted.
<inserted text>
$
l.614 ...ia.org/wiki/Shamir\%27s_Secret_Sharing''}

ошибка.

Вот строка, которая выдает эту ошибку

\hyperref[shamir]{''http://en.wikipedia.org/wiki/Shamir\%27s_Secret_Sharing''}

Я использую hyperrefпакет для добавления ссылок.

решение1

Проблема не в %, а в подчеркивании! Используйте это

\hyperref[shamir]{''http://en.wikipedia.org/wiki/Shamir\%27s\_Secret\_Sharing''}  

решение2

Символы подчеркивания требуют математического режима, они используются для нижних индексов там. Таким образом, вам нужно \_здесь для символа подчеркивания.

В качестве альтернативы можно использовать \urlили \nolinkurl. Последнее означает \urlотсутствие свойства ссылки.

Пример с некоторыми вариантами:

\documentclass{article}
\usepackage[colorlinks]{hyperref}
\begin{document}

\url{http://en.wikipedia.org/wiki/Shamir%27s_Secret_Sharing}

\href{http://en.wikipedia.org/wiki/Shamir%27s_Secret_Sharing}{%
  \nolinkurl{http://en.wikipedia.org/wiki/Shamir\%27s_Secret_Sharing}}

\urlstyle{same}
\href{http://en.wikipedia.org/wiki/Shamir%27s_Secret_Sharing}{%
  \nolinkurl{http://en.wikipedia.org/wiki/Shamir\%27s_Secret_Sharing}}

\href{http://en.wikipedia.org/wiki/Shamir\%27s_Secret_Sharing}{shamir}

\end{document}

Результат

Экранирование символа комментария via \%необходимо, если макросы URL используются внутри аргумента другого макроса.

Связанный контент