명령이 있습니다"---
(키릴 문자 emdash)이 있습니다.바벨패키지(러시아어용). 일반적인 영어 대시보다 짧고 ---
주위에 공백이 더 짧습니다(또한 내가 볼 수 있듯이 깨지지 않습니다). 그러한 공간의 너비는 얼마입니까? 공간 의 너비와 같습니까 \,
?
답변1
이 명령은 \cyrdash
대시 인쇄를 담당합니다. 현재 언어가 러시아어인 경우 문자 22(em-대시와 동일한 슬롯이지만 T2A 인코딩 글꼴에서는 더 짧음)를 인쇄하거나
\hbox to 0.8em{--\hss--}
현재 인코딩이 T2A가 아닌 경우 이는 두 개의 대시를 중첩하여 전체 너비가 0.8em이 되도록 함을 의미합니다(따라서 글꼴에 따라 변경됨). 정의는 "-
약간 복잡합니다.
\declare@shorthand{russian}{"-}{%
\def\russian@sh@tmp{%
\if\russian@sh@next-\expandafter\russian@sh@emdash
\else\expandafter\russian@sh@hyphen\fi}%
\futurelet\russian@sh@next\russian@sh@tmp}
\def\russian@sh@hyphen{\nobreak\-\bbl@allowhyphens}
\def\russian@sh@emdash#1#2{\cdash-#1#2}
\def\cdash#1#2#3{\def\tempx@{#3}%
\def\tempa@{-}\def\tempb@{~}\def\tempc@{*}%
\ifx\tempx@\tempa@\@Acdash\else
\ifx\tempx@\tempb@\@Bcdash\else
\ifx\tempx@\tempc@\@Ccdash\else
\errmessage{Wrong usage of cdash}\fi\fi\fi}
\def\@Acdash{\ifdim\lastskip>\z@\unskip\nobreak\hskip.2em\fi
\cyrdash\hskip.2em\ignorespaces}%
\def\@Bcdash{\leavevmode\ifdim\lastskip>\z@\unskip\fi
\nobreak\cyrdash\penalty\exhyphenpenalty\hskip\z@skip\ignorespaces}%
\def\@Ccdash{\leavevmode
\nobreak\cyrdash\nobreak\hskip.35em\ignorespaces}%
기본적으로 이는 을 "-
생산하는 \russian@sh@hyphen
반면 을 의미 "--
합니다 \russian@sh@emdash
.
이전 문제에서는 \nobreak
앞의 단어 부분에 하이픈을 넣을 수 있습니다. 그런 다음 임의의 하이픈을 삽입하여 다음 단어 부분에 하이픈을 넣을 수 있습니다.
후자는 다음 두 토큰을 살펴봅니다(첫 번째 토큰은 still 입니다 -
). 세 번째 문자에 따르면 네 가지 경우가 있습니다
"---
문제\@Acdash
;"--~
문제\@Bcdash
;"--*
문제\@Cdash
;- 위의 어느 것도 없으므로
"--
뒤에는 (무시된) 공백과-
,~
또는 이외의 다른 토큰이 옵니다~
.
네 번째 경우에는 오류가 Wrong usage of cdash
발생합니다.
이 경우
"---
선행 공백이 있는 경우 이를 제거하고, 이 경우 너비 0.2em의 줄바꿈 방지 공백을 삽입한 다음\cyrdash
너비 0.2em의 줄바꿈 방지 공백을 추가로 삽입합니다.이 경우
"--~
앞의 공백이 있는 경우 제거하고 삽입\cyrdash
한 다음 명시적인 하이픈과 같은 페널티를 적용하고 다음 공백을 무시합니다.이 경우는
"--*
"대화"에 대한 것입니다. 앞에는 공백이 없고 뒤에는\cyrdash
0.35em의 공백이 옵니다. 다음 공백은 무시합니다.
정의에 오류가 있습니다. "---
단락 시작 부분에서 예상치 못한 결과가 발생할 수 있습니다. \leavevmode
다른 두 매크로와 마찬가지로 처음에 있어야 합니다 .
\documentclass{article}
\usepackage[T2A]{fontenc}
\usepackage[utf8]{inputenc}
\usepackage[russian]{babel}
%% fix the error
\makeatletter
\def\@Acdash{\leavevmode\ifdim\lastskip>\z@\unskip\nobreak\hskip.2em\fi
\cyrdash\hskip.2em\ignorespaces}%
\makeatother
\begin{document}
\verb|"-|: a"-b
\verb|"---|: a"---b a "--- b
\verb|"--~|: a"--~b a "--~ b
\verb|"--*|: "--*a "--* a
\end{document}