![\MakeShortVerb{\§} 및 \usepackage[utf8]{inputenc}](https://rvso.com/image/330816/%5CMakeShortVerb%7B%5C%C2%A7%7D%20%EB%B0%8F%20%5Cusepackage%5Butf8%5D%7Binputenc%7D.png)
출판된 지 10년이 넘은 책이 있습니다. 서문에 다음 코드가 포함되어 있습니다.
\documentclass{article}
\usepackage[cp1251]{inputenc}
\usepackage[T1,T2A]{fontenc}
\usepackage[english,russian]{babel}
\usepackage{shortvrb}
\MakeShortVerb{\§}
\begin{document}
§\begin{i}§
\end{document}
이제 소스 파일을 유니코드로 변환하고 싶습니다. 그러나 cp1251
인코딩을 다음으로 변경한 후utf8
\usepackage[utf8]{inputenc}
다음 문제를 나타내는 오류 메시지와 함께 컴파일이 중지되었습니다 \MakeShortVerb{\§}
.
! Missing \endcsname inserted.
<to be read again>
\protect
l.8 \MakeShortVerb{\В§}
? h
The control sequence marked <to be read again> should
not appear between \csname and \endcsname.
? h
Sorry, I already gave what help I could...
Maybe you should try asking a human?
An error might have occurred before I noticed any problems.
``If all else fails, read the instructions.''
?
! Package inputenc Error: Keyboard character used is undefined
(inputenc) in inputencoding `utf8'.
See the inputenc package documentation for explanation.
Type H <return> for immediate help.
...
l.8 \MakeShortVerb{\В§}
? r
이 문제를 우회하는 방법은 무엇입니까?§
짧은 축어 텍스트의 구분 기호로 여전히 사용하고 싶다고 말할 것도 없습니다 .shortverb
패키지가 인코딩과 호환 됩니까 utf8
?
답변1
@egreg가 다시 너무 빠릅니다. 그런데 점심을 준비하느라...
\documentclass{article}
\usepackage[T1,T2A]{fontenc}
\usepackage[english,russian]{babel}
\usepackage[utf8]{inputenc}
%\usepackage{shortvrb}
\makeatletter
\DeclareUnicodeCharacter{00A7}{\IgorSVerb}
\def\IgorSVerb{\begingroup\def\IgorSVerb{\verb@egroup\endgroup}\verb^^a7}
\makeatother
\begin{document}
Hello
§\begin{i}$&^\}{"'çÂ\]%§
§\begin{i}$&^\}{"'çÂ\]%§
\selectlanguage{english}
§\begin{i}$&^\}{"'çÂ\]%§
§\begin{i}$&^\}{"'çÂ\]%§<
\end{document}
답변2
문제는 UTF-8의 §
길이가 2바이트인데 \MakeShortVerb
하나만 필요하다는 것입니다.
제가 제공할 수 있는 최선의 방법은 다음과 같습니다.
\documentclass{article}
\usepackage[utf8]{inputenc}
\usepackage[T1,T2A]{fontenc}
\usepackage[english,russian]{babel}
\begingroup\uccode`~="C2 \uppercase{\endgroup
\DeclareUnicodeCharacter{00A7}{\verb~}}
\begingroup\uccode`~="A7 \uppercase{\endgroup\def~}{}
\begin{document}
§\begin{i}§
§{-{\§
\end{document}
제한 사항은 UTF-8에서 접두사가 붙은 문자가 <C2>
축어 텍스트에 나타날 수 없다는 것입니다. 금지된 문자 목록은 다음과 같습니다.
¡¢£¤¥¦§¨©ª«¬®¯°±²³´µ¶·¸¹º»¼½¾¿
즉, 유니코드 범위 00A1
– 00BF
.