
Я использую pandoc, который парсит markdown в LaTeX. В этом случае я настроил pandoc на использование babel на испанском языке и написал `"avg"`, что pandoc перевел как \texttt{"avg"}
.
Когда я это делаю, я получаю первую строку на следующем изображении:
Поэтому я опубликовалПроблема в github pandoc. Но вряд ли ее удастся решить, если мы не будем знать, почему LaTeX ведет себя таким образом.
Есть идеи?
Я думаю, что решение связано сэта почта, но я не очень понимаю LaTeX.
Спасибо!
Обновлять
Это минимизированный код, который выводит изображение:
\documentclass[spanish,]{article}
\usepackage[spanish]{babel}
\begin{document}
\texttt{"avg"}
\texttt{"a}
\verb|"a|
\end{document}
решение1
Поведение легко объяснить, взглянув наКуадро 2в документации babel-spanish
:
"a
"A
"o
"O
Порядковые числительные: 1. а 1. А 1. о 1. О
Это означает, что такой вход, как
1"a
будет отображаться как
1. а
но любое появление "a
станет . a (и аналогично для "A
, "o
и "O
).
Вы можете глобально отключить это, используя es-noshorthands
опцию
\usepackage[spanish,es-noshorthands]{babel}
но вы также можете просто отключить "
с помощью
\usepackage[spanish]{babel}
\addto\extraspanish{\spanishdeactivate{"}}
Если вы хотите сохранить сокращения, но отключить их только для \ttfamily
или , \texttt
вы можете сделать следующее
\documentclass[spanish,]{article}
\usepackage[spanish]{babel}
\usepackage{xpatch}
\begingroup\lccode`~=`"
\lowercase{\endgroup
\xapptocmd\ttfamily{\let~"}{}{}
}
\begin{document}
\texttt{"avg"}
\texttt{"a}
\verb|"a|
\end{document}
что переопределит активный "
только в \ttfamily
контексте, чтобы произвести просто "
. В обычных контекстах "
сочетания клавиш будут по-прежнему доступны.
решение2
В Babel используйте также option es-noshorthand
. Ваш минимальный пример будет выглядеть так:
\documentclass{article}
\usepackage[spanish,es-noshorthands]{babel}
\begin{document}
\texttt{"avg"}
\texttt{"a}
\verb|"a|
\end{document}
И вот что получается:
Больше этогоздесь.