有时我可以使用 xelatex 或 lualatex,但并非总是如此。这次,它必须与 pdflatex 和 xelatex 一起使用。

有时我可以使用 xelatex 或 lualatex,但并非总是如此。这次,它必须与 pdflatex 和 xelatex 一起使用。

编辑:@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 的情况有所不同,其中的对象§实际上是字符,而不是宏的简写。因此,使用这些引擎,您的尝试将成功。

相关内容