easylist 和 \usepackage[utf8]{inputenc}

easylist 和 \usepackage[utf8]{inputenc}

具有以下 MWE:

\documentclass{article}
% \usepackage[utf8]{inputenc}
\usepackage{easylist}

\begin{document}
\begin{easylist}[enumerate]
  § A first item
      §§ A sub item
      §§ another subitem    
\end{easylist}
\end{document}

我们得到了期望的输出:

在此处输入图片描述

但是如果取消注释该行\usepackage[utf8]{inputenc},我们就会得到:

在此处输入图片描述

\usepackage[at]{easylist}虽然可以通过 (a) 使用 XeLaTeX 或 (b)而@不是 来解决这个问题§,但是有没有办法让标记在 pdfLaTeX 中§工作?\usepackage[utf8]{inputenc}

答案1

您可以使用以下技巧将 unicode 字符 § 更改为环境easylist内的项目easylist

\documentclass{article}

\usepackage[utf8]{inputenc}
\usepackage{easylist}

\DeclareUnicodeCharacter{00A7}{\easylistitemornot}
\let\easylistitemornot\S

\def\easylist{%
  \def\easylistitemornot{\futurelet\elNextToken\elCreateItem}%
  \begingroup\elPredefinedStyle}%
\def\endeasylist{\endgroup\par}
\def\Activate{%
  \def\easylistitemornot{\futurelet\elNextToken\elCreateItem}%
}
\def\Deactivate{%
  \let\easylistitemornot\S
}

\begin{document}
\begin{easylist}[enumerate]
  § A first item
      §§ A sub item
      §§ another subitem    
\end{easylist}

Here we have a real §.
\end{document}

不过,我还是建议使用例如选项at来更改项目标记:

\documentclass{article}
\usepackage[utf8]{inputenc}
\usepackage[at]{easylist}

\begin{document}
\begin{easylist}[enumerate]
  @ A first item
      @@ A sub item
      @@ another subitem    
\end{easylist}
\end{document}

相关内容