我想定义 Unicode 节字符 U+00A7 以等同于 \section 宏。我现在有的是:
\DeclareUnicodeCharacter{167}{\csname section\endcsname}
但这似乎不起作用。以下是示例文档:
\documentclass{article}
\usepackage[utf8x]{inputenc}
\usepackage[english]{babel}
\DeclareUnicodeCharacter{167}{\csname section\endcsname}
\begin{document}
§{Introduction}
\end{document}
生成此错误消息:
! Extra \else.
\@sect ... {\csname the#1\endcsname }\fi #7}\else
\def \@svsechd {#6{\hskip ...
l.6 §
{Introduction}
我甚至不知道从哪里开始看看到底发生了什么。
答案1
更新:这似乎utf8x
破坏了\DeclareUnicodeCharacter
命令。我认为应该提交错误报告。(我已经现在完成了通过半官方渠道。
它的工作方式如下:(我之前的回答)
\documentclass{article}
\usepackage[utf8]{inputenc}
\DeclareUnicodeCharacter{A7}{\section}
\begin{document}
§{hello}
this is a fun idea
\end{document}
如果您使用 XeLaTeX 或 LuaLaTeX,则需要采用不同的方法:(在这种情况下切勿使用 inputenc!)
\documentclass{article}
\catcode"A7=\active
\let§\section
\begin{document}
§{hello}
this is a fun idea
\end{document}
我一直想编写一个简短的包来统一 pdfLaTeX 和 XeLaTeX/LuaLaTeX 之间的接口,但还没有开始。