unicode-math 패키지와 결합된 LuaTeX의 화살표 길이

unicode-math 패키지와 결합된 LuaTeX의 화살표 길이

unicode-math아마도 다소 간단한 질문이 있습니다. 위나 아래에 더 긴 표현식을 작성할 때 화살표가 늘어나도록 LuaLaTeX 내에서 패키지를 사용할 수 있습니까 ?

예를 들어 패키지가 unicode-math로드된 다음 코드는 늘어난 화살표를 생성하지 않으며 화살표 위의 텍스트가 화살표 자체보다 훨씬 깁니다.

% TeX engine: LuaLaTeX   
% TeX Live 2014   
% TeX encoding = UTF-8
\documentclass{minimal}
\usepackage{amsmath,
            unicode-math}

\begin{document}

$a \xrightarrow{b \to \infty} c$

\end{document}

답변1

나는 이것이 로드될 때 와 unicode-math동등한 기능을 제공해야 하는 와 (U+23AF HORIZONTAL LINE EXTENSION) 에 대한 문자 모양을 제공하지 않는 Latin Modern Math의 버그라고 생각합니다 . 관련 질문 보기\std@minusamsmath\harrowextenderFontspec이 extarrows 패키지를 손상시키는 이유

당신의 문제에 대해 당신은 할 수 있습니다

\documentclass{article}
\usepackage{amsmath,unicode-math}

\makeatletter
\AtBeginDocument{\Umathcharnumdef\std@minus\Umathcodenum`- }% \std@minus is minus
\makeatother

\begin{document}

$a \xrightarrow{b \to \infty} c$

\end{document}

\harrowextender가능한 경우 더 나은 해결 방법을 사용해야 합니다 .

\documentclass{article}
\usepackage{amsmath,unicode-math}
%\setmathfont{Asana Math} % if uncommented, \harrowextender would be used

\makeatletter
\AtBeginDocument{%
  \check@mathfonts
  \iffontchar\textfont\tw@\string"23AF
    \renewcommand{\relbar}{\mathrel\harrowextender}%
  \else
    \Umathcharnumdef\std@minus\Umathcodenum`-
  \fi}
\makeatother

\begin{document}

$a \xrightarrow{b \to \infty} c$

\end{document}

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

두 번째 코드는 \check@mathfonts글꼴이 수학 계열과 연결되어 있는지 확인하는 데 사용됩니다(LaTeX는 일반적으로 문서에서 사용할 수 없는 수학 계열을 사용하는 것을 피하기 위해 첫 번째 공식이 조판될 때까지 이 작업을 수행하지 않습니다).

를 사용하면 unicode-math로 정의된 수학 글꼴이 \setmathfont수학 계열 2에 연결되므로 에 해당하는 문자가 \harrowextender글꼴에 존재하는지 확인합니다( texdoc etex에 대한 e-TeX 매뉴얼 참조 \iffontchar). 문자가 존재하는 경우 \relbar해당 기호를 수학 관계로 재정의합니다. 그렇지 않으면 이 컨텍스트에서 \std@minus사용되는 이름 아래에 빼기 기호를 사용합니다 .amsmath

코드가 없으면 \std@minus"수학 계열 2에서 문자 0을 선택하십시오"가 됩니다. 이는 전통적인 TeX 수학 글꼴에는 적합하지만 더 이상 unicode-math. 따라서 이 경우 \std@minus빼기 기호와 동일한 코드를 갖는 수학 문자로 재정의합니다( 명령 texdoc xetex에 대한 자세한 내용은 XeTeX 매뉴얼 참조 \Umath...).

관련 정보