在 lstlisting 环境中使用扩展 ASCII 字符时,即对应于代码 191 - 197 的字符(字面意思是:┐、└、┴、┬、═、─、┼),latex 会产生以下错误:
Package inputenc Error: Unicode char �\lst@EC�\lst@EC� (U+2832C0)(inputenc) not set up for use with LaTeX. ├──
有什么方法可以在 lstlisting 中启用此类字符?使用\usepackage[utf8x]{inputenc}
代替 并\usepackage[utf8]{inputenc}
不能解决问题。
答案1
使用pmboxdraw
和literate
的键listings
。 的文档中pmboxdraw
有包含 LICR 名称的完整列表。
\documentclass{article}
\usepackage{listings,pmboxdraw}
\lstset{
basicstyle=\ttfamily,
columns=fullflexible,
keepspaces,
literate=
{┐}{\textSFiii}1%
{└}{\textSFii}1%
{┴}{\textSFvii}1%
{┬}{\textSFvi}1%
{├}{\textSFviii}{1}%
{─}{\textSFx}1%
{┼}{\textSFv}1,
}
\begin{document}
\begin{lstlisting}
a b c d e f g
┐ └ ┴ ┬ ├ ─ ┼
\end{lstlisting}
\end{document}