
내에서 하이픈을 활성화하는 방법을 찾고 있었습니다 \texttt
. 나는 찾았다이 답변그리고 그것은 완벽해 보였습니다. 간단하고 많은 사람들에게 유용했습니다.
나는 전역적으로 하이픈 넣기를 활성화하기로 선택했고 \texttt
거기에서 제안한 대로 다음 줄을 추가했습니다.
\DeclareFontFamily{\encodingdefault}{\ttdefault}{\hyphenchar\font=`\-}
불행하게도 작동하지 않았고 원하지 않는 부작용이 있었습니다. 타자기 글꼴은 더 이상 내부에서 사용되지 않았고 \texttt
콘솔 출력에 다음 오류가 나타났습니다.
LaTeX Font Warning: Some font shapes were not available, defaults substituted.
이 오류는 제게 올바른 길을 알려주었습니다. 저는 LaTeX 문서에서 항상 T1 인코딩과 lmodern 글꼴을 사용합니다.
\usepackage[T1]{fontenc}
\usepackage{lmodern}
해당 줄을 주석 처리하자마자 모든 것이 잘 작동했습니다.
이 경우에도 원래 답변을 적용할 수 있는 방법이 있습니까? 해당 게시물에 댓글을 추가하고 싶었지만 안타깝게도 아직 그렇게 할 만한 평판이 충분하지 않습니다.
매우 감사합니다.
답변1
이 문제는 다른 방법으로 해결할 수 있습니다. 이 방법을 사용하려면 글꼴 정의 파일을 수동으로 로드하고 해당 계열의 글꼴을 사용하기 전에 하이픈 문자를 변경해야 합니다.
\documentclass{article}
\usepackage[T1]{fontenc}
\usepackage{lmodern}
\makeatletter
\input{t1lmtt.fd}
\@namedef{T1+lmtt}{}
\makeatother
\begin{document}
\parbox{0pt}{\ttfamily
\hspace{0pt}hyphenation in typewriter type
}
\end{document}
의 임무 중 하나는 으로 확장하도록 \DeclareFontFamily{enc}{fam}{code}
정의하는 것입니다 . 로 인해 제어 시퀀스를 직접 사용할 수 없으므로 ( )을 사용할 수 있습니다. 정상적인 선언은 다음과 같습니다.\enc+fam
code
\enc+fam
+
\@namedef
\expandafter\def\csname#1\endcsname
\DeclareFontFamily{T1}{lmtt}{\hyphenchar=-1 }
어느 것이
\@namedef{T1+lmtt}{\hyphenchar=-1 }
우리는 다음과 같이 하여 이에 대응합니다.
\@namedef{T1+lmtt}{}
code
글꼴 모음과 관련된 글꼴 모양이 선택되고 선택한 글꼴에 영구적으로 첨부되자마자 사용됩니다 . 따라서 글꼴을 실제로 선택하기 전에 재정의하는 것이 중요합니다.
답변2
Franks 답변에는 중요한 점이 누락되어 있습니다. 서문에서 글꼴 모음을 선언하면 라텍스는 더 이상 .fd 파일 입력을 시도하지 않으므로 다른 모든 글꼴 선언은 손실됩니다. 변경을 수행하기 전에 입력할 수 있습니다.
\documentclass{article}
\usepackage[T1]{fontenc}
\usepackage{lmodern}
\usepackage{lipsum}
\makeatletter
\input{t1lmtt.fd}
\makeatother
\DeclareFontFamily{\encodingdefault}{\ttdefault}{\hyphenchar\font=`\-}
\begin{document}
\ttfamily abc \lipsum
\end{document}
또는 다음과 같이 하세요.
\ttfamily
\hyphenchar\font=`\-
\DeclareFontFamily{\encodingdefault}{\ttdefault}{\hyphenchar\font=`\-}