ドキュメントに(ボックス描画ファミリの)Unicode文字を印刷する必要があります。この質問は私のものと非常に似ていますが、XeLaTeXでのみ有効であることがわかりました。 pdfLaTeXでこれを行う有効な方法がありますか、それとも代わりにXeLaTeXを使用する必要がありますか?
回答
記号を使用できます、キーボードまたはマクロで使用可能な場合。
\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エンジン。前提条件として、Unicode文字とTeXコードへのマッピング方法を知っておく必要があります。 inputenc
のUTF-8サポートは、これをフォントエンコーディングと結び付けます。したがって、パッケージpmboxdraw
は、pmboxdraw
と関連するマッピングファイルpmboxdrawenc.dfu
をエンコードする人工フォントを定義します。その後、自動的にロードされます。これにより、ハーバートの例は次のように簡略化されます。
% 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はUnicode文字をサポートし、パッケージ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}
コメント
- いいえ。付属のシステムを使用します。バージョン2015.20160320-1のように見えるLinuxMint 18(Ubuntu 16.04)の
apt-get install texlive-xetex texlive-fonts-recommended lmodern
を使用すると、例は行文字なしで出力されます。。多分私は'他のパッケージが足りませんか?または私s私のTeXLiveは古すぎますか?
- @Tobia問題は、XeTeXではなく pdfTeX に対して行うことでした。回答を更新し、LuaTeX / XeTeXのバージョンを追加しました。
- パッケージivid =のオプション
[utf8x]
を誤って使用したため、エラーが発生しました。 “be746ab233″>
。これを\usepackage[utf8]{inputenc}
に修正すると、すべて正常に機能しました。 。 。ところで、\listfiles
が何をするのかわからないのですか?私はそれを必要としませんでした。 (Pdf-LaTeX。)
\listfiles
は回答に示されているバージョンリストを作成します。Logs and output files
の横にあるRecompile
、次に右上のOther logs & files > log file
。 overleafのバージョンは比較的最近のようです:pmboxdraw.sty 2019/12/05 v1.4 Poor man's box drawing characters (HO)
。ところで、あなたの答え(newunicodechar
なし)は受け入れられたものよりも優れており、賛成するに値します。 🙂
\newunicodechar
の定義を入力する必要がある理由を説明できますか? ' tpmboxdraw
がそもそもこれらの文字を定義しないのはなぜですか?utf8
エンコーディングはそのような文字を'知りません。キャラクターとそのコマンドを定義する必要がある理由\newunicodechar
のようなものは必要ありません。パッケージpmboxdraw
はすでに自動的に処理しています。私の回答を参照してください。