编辑:@egreg。但我如何更改单引号›
,例如,我希望在整个文档中都使用它,
\newunicodechar{›}{\unskip\,›}
除了在一个精确的环境中,它变成
\newenvironment{Screenplay}
{\parskip=0em
\relax\newunicodechar{›}{\ignorespaces›~}
}
{\par}
这样,当我在剧本环境中写作时,每个都›
变成了\ignorespaces›~
。
有时我可以使用 xelatex 或 lualatex,但并非总是如此。这次,它必须与 pdflatex 和 xelatex 一起使用。
我使用 pdflatex,我想重新定义段落的符号(但不加载某些语言包)(也用于单身的引用‹
自此处https://en.wikipedia.org/wiki/Quotation_mark#French)
我使用的失败:
\documentclass{article}
\usepackage[utf8]{inputenc}
\usepackage[T1]{fontenc}
\usepackage[verbose]{newunicodechar}
\newunicodechar{§}{\unskip\,§K}
\begin{document}
§
\end{document}
答案1
您不能根据其自身重新定义 Unicode 字符,但您始终可以使用其 LICR;因为§
它是S
。
\documentclass{article}
\usepackage[utf8]{inputenc}
\usepackage[T1]{fontenc}
\usepackage[verbose]{newunicodechar}
\newunicodechar{§}{\ifhmode\unskip\,\fi\S K}
\begin{document}
a § b
\end{document}
问题在于,§
pdflatex 很像一个宏,我们正在重新定义它,因此如果您想根据其自身来定义它,就会陷入无限循环。
我添加了一个水平模式的测试,因为\unskip\,
在垂直模式下发布会产生意外的结果。
XeLaTeX 或 LuaLaTeX 的情况有所不同,其中的对象§
实际上是字符,而不是宏的简写。因此,使用这些引擎,您的尝试将成功。