키릴 문자 emdash(바벨) 주변의 공백

키릴 문자 emdash(바벨) 주변의 공백

명령이 있습니다"--- (키릴 문자 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 입니다 -). 세 번째 문자에 따르면 네 가지 경우가 있습니다

  1. "---문제 \@Acdash;
  2. "--~문제 \@Bcdash;
  3. "--*문제 \@Cdash;
  4. 위의 어느 것도 없으므로 "--뒤에는 (무시된) 공백과 -, ~또는 이외의 다른 토큰이 옵니다 ~.

네 번째 경우에는 오류가 Wrong usage of cdash발생합니다.

  • 이 경우 "---선행 공백이 있는 경우 이를 제거하고, 이 경우 너비 0.2em의 줄바꿈 ​​방지 공백을 삽입한 다음 \cyrdash너비 0.2em의 줄바꿈 ​​방지 공백을 추가로 삽입합니다.

  • 이 경우 "--~앞의 공백이 있는 경우 제거하고 삽입 \cyrdash한 다음 명시적인 하이픈과 같은 페널티를 적용하고 다음 공백을 무시합니다.

  • 이 경우는 "--*"대화"에 대한 것입니다. 앞에는 공백이 없고 뒤에는 \cyrdash0.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}

여기에 이미지 설명을 입력하세요

관련 정보