기술적 세부 사항

기술적 세부 사항

모노 글꼴의 밑줄 문제로 어려움을 겪고 있습니다. 다른 기호에 비해 길이가 짧은 것 같습니다. 예를 들어:

\documentclass{article}

\begin{document}
\ttfamily
Test \\
.------------.-------------.--------------.\\
\ |\ abcdefghig\ |\ klmnopqrstu\ |\ vwxyzabcdefg\ | \\
.------------.-------------.--------------.\\
\ |\ abc[e]ghig\ |\ klm[o]qrstu\ |\ vwxyza[c]efg\ | \\
.------------.-------------.--------------.\\
\ |\ dfi\_cke[x]\ |\ dfi\_cs\_n[x]\ |\ dfi\_act\_n[x]\ | \\
.------------.-------------.--------------.
\end{document}

결과:

결과

보시다시피 마지막 줄(밑줄 포함)이 왼쪽으로 이동합니다. 어떻게 만들 수 있나요?

PS 아니요, 기본 테이블을 사용할 수 없습니다. 이는 사용자 생성 부분이므로 있는 그대로 삽입해야 합니다. PSS verbatim내부에서 작동하지 않기 때문에 옵션이 아닙니다.multicolumn

답변1

대신 다음을 \_사용할 수 있습니다 \string_.

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

\documentclass{article}

\begin{document}

\ttfamily
Test \\
.------------.-------------.--------------.\\
\ |\ abcdefghig\ |\ klmnopqrstu\ |\ vwxyzabcdefg\ | \\
.------------.-------------.--------------.\\
\ |\ abc[e]ghig\ |\ klm[o]qrstu\ |\ vwxyza[c]efg\ | \\
.------------.-------------.--------------.\\
\ |\ dfi\string_cke[x]\ |\ dfi\string_cs\string_n[x]\ |\ dfi\string_act\string_n[x]\ | \\
.------------.-------------.--------------.

\end{document}

답변2

가장 자연스러운 방법은 사용하는 것입니다 verbatim(아래 참조). 하지만 먼저 무슨 일이 일어나는지 조금 설명해 보겠습니다.

OT1인코딩 에서는 에 의존 \textunderscore하는 는 \_규칙을 사용하여 위조됩니다(현재 글꼴의 문자가 아닙니다). T1추가하여 인코딩 으로 전환하면 다음에서 선택한 글꼴의 실제 문자를 사용 \usepackage[T1]{fontenc}하게 됩니다 .\_\ttfamily

\documentclass{article}
\usepackage[T1]{fontenc}

\begin{document}
\ttfamily
Test \\
.------------.-------------.--------------.\\
\ |\ abcdefghig\ |\ klmnopqrstu\ |\ vwxyzabcdefg\ | \\
.------------.-------------.--------------.\\
\ |\ abc[e]ghig\ |\ klm[o]qrstu\ |\ vwxyza[c]efg\ | \\
.------------.-------------.--------------.\\
\ |\ dfi\_cke[x]\ |\ dfi\_cs\_n[x]\ |\ dfi\_act\_n[x]\ | \\
.------------.-------------.--------------.
\end{document}

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

이제 밑줄은 다른 문자와 동일한 크기를 갖습니다. 그러나 Barbara Beeton이 지적한 대로 비언어적 모드의 연속 하이픈은 합자로 결합됩니다( en-dash는 --, em-dash는 ---). 합자를 끄는 작업 중 하나인 경우 verbatim모든 줄은 예상 길이를 갖습니다.

\documentclass{article}
\usepackage[T1]{fontenc}

\begin{document}

\begingroup
\ttfamily\makeatletter\@noligs\makeatother
Test \\
.------------.-------------.--------------.\\
\ |\ abcdefghig\ |\ klmnopqrstu\ |\ vwxyzabcdefg\ | \\
.------------.-------------.--------------.\\
\ |\ abc[e]ghig\ |\ klm[o]qrstu\ |\ vwxyza[c]efg\ | \\
.------------.-------------.--------------.\\
\ |\ dfi\_cke[x]\ |\ dfi\_cs\_n[x]\ |\ dfi\_act\_n[x]\ | \\
.------------.-------------.--------------.
\endgroup

\end{document}

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

하지만 실제로는 verbatim그러한 상황에서 사용하는 것이 더 자연스럽습니다. 위의 예는 단지 뒤에서 무슨 일이 일어나는지 이해하는 데 도움을 주기 위한 것입니다. 따라서 여기서 내가 할 일은 다음과 같습니다.

\documentclass{article}
\usepackage[T1]{fontenc}

\begin{document}

\begin{verbatim}
Test
.-------------.-------------.--------------.
 | abcdefghig | klmnopqrstu | vwxyzabcdefg |
.-------------.-------------.--------------.
 | abc[e]ghig | klm[o]qrstu | vwxyza[c]efg |
.-------------.-------------.--------------.
 | dfi_cke[x] | dfi_cs_n[x] | dfi_act_n[x] |
.-------------.-------------.--------------.
\end{verbatim}

\end{document}

그대로

"Test"는 환경 내부에 있으므로 verbatim이 경우 단락 들여쓰기가 적용되지 않습니다.

기술적 세부 사항

관심 있는 분들을 위해 로 얻은 인코딩 \textunderscore구현 은 다음을 수행합니다.OT1\tracingmacros=1\tracingonline=1

\leavevmode \kern .06em\vbox{\hrule width .3em}

반면 T1인코딩에서는 결국 간단합니다 \char"5F(따라서 현재 글꼴의 16진수 코드 5F 문자가 포함된 문자 상자를 현재 목록에 추가하는 명령).

답변3

나는 다음을 사용할 것입니다 verbatim:

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

\documentclass{article}
\begin{document}
\begin{verbatim}
   Test
.------------.-------------.--------------.
| abcdefghig | klmnopqrstu | vwxyzabcdefg | 
.------------.-------------.--------------.
| abc[e]ghig | klm[o]qrstu | vwxyza[c]efg | 
.------------.-------------.--------------.
| dfi_cke[x] | dfi_cs_n[x] | dfi_act_n[x] | 
.------------.-------------.--------------.
\end{verbatim}
\end{document}

관련 정보