문서에서 일부 유니 코드 문자 (상자 그리기 계열)를 인쇄해야합니다. 이 질문 이 저와 매우 유사하지만 XeLaTeX에만 유효합니다. pdfLaTeX로이 작업을 수행하는 유효한 방법이 있습니까? 아니면 대신 XeLaTeX를 사용해야합니까?
Answer
기호를 사용할 수 있습니다. , 키보드 또는 매크로에서 사용할 수있는 경우
\documentclass{article} \usepackage[T1]{fontenc} \usepackage[utf8]{inputenc} \usepackage{pmboxdraw} \usepackage{newunicodechar} \newunicodechar{└}{\textSFii} \newunicodechar{├}{\textSFviii} \newunicodechar{─}{\textSFx} \begin{document} \begin{verbatim} ├── Maildir/ └── scripts/ ├── backup.sh* └── OLD/ ├── backup_cleanup.sh.old └── backup.sh.old* \end{verbatim} \end{document}
댓글
답변
에 대한 답변입니다. a>.
패키지 inputenc
와 인코딩 옵션 utf8
를 사용하면 TeX 입력 파일에서 UTF-8을 사용할 수 있습니다. 8 비트 TeX 엔진. 전제 조건으로 유니 코드 문자가 TeX 코드에 매핑되는 방식을 알아야합니다. inputenc
의 UTF-8 지원은이를 글꼴 인코딩과 결합합니다. 따라서 패키지 pmboxdraw
는 인공 글꼴 인코딩 pmboxdraw
및 관련 매핑 파일 pmboxdrawenc.dfu
를 정의합니다. 그런 다음 자동으로로드됩니다. 이렇게하면 Herbert의 예가 다음과 같이 단순화됩니다.
% arara: pdflatex \listfiles \documentclass{article} \usepackage[T1]{fontenc} \usepackage[utf8]{inputenc} \usepackage{pmboxdraw} \begin{document} \begin{verbatim} ├── Maildir/ └── scripts/ ├── backup.sh* └── OLD/ ├── backup_cleanup.sh.old └── backup.sh.old* \end{verbatim} \end{document}
다음으로 컴파일 됨 :
This is pdfTeX, Version 3.14159265-2.6-1.40.17 (TeX Live 2016)
\listfiles
의 버전 목록 :
*File List* article.cls 2014/09/29 v1.4h Standard LaTeX document class size10.clo 2014/09/29 v1.4h Standard LaTeX file (size option) fontenc.sty t1enc.def 2005/09/27 v1.99g Standard LaTeX file inputenc.sty 2015/03/17 v1.2c Input encoding file utf8.def 2016/02/28 v1.1s UTF-8 support for inputenc t1enc.dfu 2016/02/28 v1.1s UTF-8 support for inputenc ot1enc.dfu 2016/02/28 v1.1s UTF-8 support for inputenc omsenc.dfu 2016/02/28 v1.1s UTF-8 support for inputenc pmboxdraw.sty 2011/03/24 v1.1 Poor man"s box drawing characters (HO) ltxcmds.sty 2011/11/09 v1.22 LaTeX kernel commands for general use (HO) kvsetkeys.sty 2012/04/25 v1.16 Key value parser (HO) infwarerr.sty 2010/04/08 v1.3 Providing info/warning/error messages (HO) etexcmds.sty 2011/02/16 v1.5 Avoid name clashes with e-TeX commands (HO) ifluatex.sty 2010/03/01 v1.3 Provides the ifluatex switch (HO) kvdefinekeys.sty 2011/04/07 v1.3 Define keys (HO) pmboxdrawenc.dfu 2011/03/24 v1.1 UTF-8 support for box drawing characters kvoptions.sty 2011/06/30 v3.11 Key value format for package options (HO) keyval.sty 2014/10/28 v1.15 key=value parser (DPC) t1cmtt.fd 2014/09/29 v2.5h Standard LaTeX font definitions ***********
LuaTeX / XeTeX 버전
LuaTeX 및 XeTeX는 유니 코드 문자를 지원하며 inputenc
패키지는 더 이상 사용되지 않습니다. 그러나 pmboxdrawenc.dfu
를 사용하여 문자 활성화 및 기호 확장 :
% arara: xelatex % or % arara: lualatex \documentclass{article} \usepackage{pmboxdraw} \begingroup \def\DeclareUnicodeCharacter#1{% \begingroup \lccode`\~="#1\relax \lowercase{\endgroup \global\catcode`~=\active \gdef~% }% }% \input{pmboxdrawenc.dfu}% \endgroup \begin{document} \begin{verbatim} ├── Maildir/ └── scripts/ ├── backup.sh* └── OLD/ ├── backup_cleanup.sh.old └── backup.sh.old* \end{verbatim} \end{document}
댓글
- 아니요. 제공되는 시스템 사용 Linux Mint 18 (Ubuntu 16.04)에서 2015.20160320-1 버전 인
apt-get install texlive-xetex texlive-fonts-recommended lmodern
를 사용하면 행 문자없이 예제가 나옵니다.. ' 다른 패키지가 누락되었을 수 있습니까? 내 TeX Live가 너무 오래 되었나요?
- @Tobia 문제는 XeTeX가 아니라 pdfTeX 를 위해하는 것이 었습니다. 답변을 업데이트하고 LuaTeX / XeTeX에 대한 버전을 추가했습니다.
- iv id = 패키지에 대해
[utf8x]
옵션을 실수로 사용했기 때문에 오류가 발생했습니다. “be746ab233″>
. \usepackage[utf8]{inputenc}
로 수정하면 모두 정상적으로 작동했습니다. . . BTW, \listfiles
가 무엇을해야하는지 잘 모르시겠습니까? 나는 그것을 필요로하지 않았다. (Pdf-LaTeX.)
\listfiles
가 답변에 표시된 버전 목록을 생성합니다. Logs and output files
버튼 옆에 div id = “305bdbf4e4″> 다음에 오른쪽 상단에 Other logs & files > log file
가 있습니다. overleaf의 버전은 비교적 최신 버전 인 것 같습니다 : pmboxdraw.sty 2019/12/05 v1.4 Poor man's box drawing characters (HO)
. BTW, 귀하의 답변 (newunicodechar
제외)은 허용 된 답변보다 낫고 찬성 할 가치가 있습니다. 🙂
\newunicodechar
정의를 입력해야하는 이유를 설명해 주시겠습니까? 왜 ' 이러한 문자를 처음부터 정의하지pmboxdraw
합니까?utf8
인코딩은 ' 이러한 문자를 모릅니다. 캐릭터와 명령어를 정의해야하는 이유\newunicodechar
가있는 것은 필요하지 않습니다.pmboxdraw
패키지가 이미 자동으로 처리하고 있습니다. 내 답변을 참조하세요.