XeLaTeX, nohyphen, space 및 바벨/폴리글로시아

XeLaTeX, nohyphen, space 및 바벨/폴리글로시아

이 MWE를 고려하십시오

\documentclass[french]{article}
\usepackage{babel}
\usepackage{hyphenat}


\begin{document}
\section{without relax}
Cambridge : University (A)

\nohyphens{Cambridge} : University (B)

\texttt{Cambridge} : University (C)

\verb|Cambridge| : University (D)


\section{with relax}

Cambridge\relax : University (E)

\nohyphens{Cambridge}\relax : University (F)

\texttt{Cambridge}\relax : University (G)

\verb|Cambridge|\relax : University (H)
\end{document}

pdfLaTeX 또는 LuaLaTeX로 실행하면 모든 콜론이 잘 정렬됩니다.

하지만 XeLaTeX로 실행하면 허위 공백(섹션 1)이 있는 것 같은데 relax. 왜 이런 동작이 발생했습니까? 바벨이나 폴리글로시아를 로드하지 않으면 출력도 괜찮습니다.

어떤 아이디어?

답변1

너비가 0인 공백을 삽입하면 문제를 해결할 수 있는 것처럼 보입니다 \nohyphens(그러나 많은 글꼴로 테스트하지는 않았습니다).

\documentclass[french]{article}
\usepackage{babel}
\usepackage{hyphenat}

\begin{document}

Cambridge : University (A)

\nohyphens{Cambridge} : University (B)

\nohyphens{Cambridge}: University (C)

\renewcommand{\nohyphens}[1]{{{\language\langwohyphens #1}^^^^200b}}

Cambridge : University (A)

\nohyphens{Cambridge} : University (B)

\nohyphens{Cambridge}: University (C)
\end{document}

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

비슷한 트릭이 다음에도 적용됩니다 \verb.

\documentclass[french]{article}
\usepackage{babel}

\begin{document}
Cambridge : University (A)

\verb|Cambridge| : University (C)

\makeatletter
\def\verb@egroup{\global\let\verb@balance@group\@empty\egroup^^^^200d}
\makeatother

Cambridge : University (A)

\verb|Cambridge| : University (C)

\end{document}

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

답변2

이것은 단지 의견입니다. 저는 프랑스어 TeX 사용자가 아니며 서면에서 어느 것이 선호되는지 모르겠습니다: a thin space before colon :또는 without thin space before colon:. 다양한 옵션(with/out \FBsetspaces{colon}{0.5}{0}{0}) 을 사용하여 다음의 출력인 다음 그림을 비교해 보세요 .

\documentclass[french]{article}
\usepackage{babel}
\usepackage{hyphenat}

\FBsetspaces{colon}{0.5}{0}{0}


\begin{document}
\section{all without relax}
Cambridge : University (A)

\nohyphens{Cambridge} : University (B)

\texttt{Cambridge} : University (C)

\verb|Cambridge| : University (D)


\section{all with relax}

Cambridge\relax : University (E)

\nohyphens{Cambridge}\relax : University (F)

\texttt{Cambridge}\relax : University (G)

\verb|Cambridge|\relax : University (H)

\section{with relax just for typewriter and verbatim}

Cambridge : University (E)

\nohyphens{Cambridge} : University (F)

\texttt{Cambridge}\relax : University (G)

\verb|Cambridge|\relax : University (H)

\section{all without manual space}

Cambridge: University (E)

\nohyphens{Cambridge}: University (F)

\texttt{Cambridge}: University (G)

\verb|Cambridge|: University (H)
\end{document}

  • PDFLaTeX~와 함께\FBsetspaces{colon}{0.5}{0}{0} 여기에 이미지 설명을 입력하세요

  • XeLaTeX~와 함께\FBsetspaces{colon}{0.5}{0}{0} 여기에 이미지 설명을 입력하세요

  • PDFLaTeX없이\FBsetspaces{colon}{0.5}{0}{0} 여기에 이미지 설명을 입력하세요

  • XeLaTeX없이\FBsetspaces{colon}{0.5}{0}{0} 여기에 이미지 설명을 입력하세요

관련 정보