
環境にいくつかの Unicode 文字を書き込みたいのですlstlisting
が、出力にインラインで表示されるので期待どおりではありません。標準文字のように動作させるにはどうしたらよいでしょうか? よろしくお願いします。
\documentclass{article}
\usepackage{fontspec}
\setmonofont{Consolas}
\usepackage{listings}
\lstset{
basicstyle=\ttfamily
}
\begin{document}
\begin{lstlisting}
└
└
└
\end{lstlisting}
\end{document}
答え1
私の回答が不適切だと思われたら申し訳ありませんが、しばらくあなたのコードをいじってみた結果、lstlisting
パッケージを に切り替えるのが最も簡単な方法だとわかりましたminted
。
なぜminted
?
長所:
- pdflatex、xelatexなどでうまく動作します
- ハイライトできる言語がはるかに多く、
lstlisting
- ハイライトのほうが見栄えが良い場合もあります
- UTF-8文字をそのまま使用しても問題はありません
短所:
- 追加のソフトウェアが必要です(インストールには2〜5分かかります)
- コンパイル コマンド フラグを編集する必要があります (さらに 30 秒)
良いニュースは追加ソフトウェア上で言及したのは Python です。これは、OS X または一般的な Linux ディストリビューションを使用している場合はシステムに付属している可能性が高いです。また、そのパッケージである Pygments は、シェルで 1 行入力するだけでインストールできます。
向かう先はminted
マニュアルセクション 2.1 を確認してください。説明は非常に短く、有益です。
また、TeXエディタの設定を確認し、次のように変更する必要があります。
/Library/tex/texbin/xelatex -synctex=1 %.tex
フラグを追加する-shell-escape
と、次のようになります
/Library/tex/texbin/xelatex -shell-escape -synctex=1 %.tex
これは、XeLaTeX が「サンドボックス」の外部で呼び出し (この場合は Python を呼び出す) できるようにするためです。
これらの手順を実行すると、使用準備が完了しますminted
。再度セットアップする必要はありません。
これで、MWE が次の用途に適合しましたminted
:
\documentclass{article}
\usepackage{fontspec}
\setmonofont{Consolas}
\usepackage{minted}
\begin{document}
\begin{minted}{text}
└
└
└
\end{minted}
\end{document}
オプションに注意してください{text}
。これは言語を指定するためのものです (この場合はプレーン テキスト)。
そして結果は次の通りです。
PS: これまで使用したことはありませんminted
が、問題を解決しようとして を 40 分以上使ってみたもののlstlisting
、インストールして慣れるのに 2 分しかかかりませんでしたminted
。試してみる価値は間違いなくあります。