复杂性包重新定义了 \L,因此您不会得到带有划线的 L(即 Ł)。使用该包时如何仍能得到那个波兰字母?以下是一个例子:
\documentclass[a4paper,10pt]{article}
\usepackage[utf8]{inputenc}
\usepackage[T1]{fontenc}
\usepackage[bold,basic]{complexity}
\begin{document}
Even Ł gets rendered as a bold L.
\begin{thebibliography}{50}
\bibitem{GKKLS:2015} Homer J. {\L}{\k{a}}cki. \textsl{Mmmmm...donuts}.
\end{thebibliography}
\end{document}
我特别想在参考书目中使用它。
答案1
该软件包有
% We redefine 4 commands inside of Latex, but preserve them for usage
\let\defaultL\L
\renewcommand{\L}{\ComplexityFont{L}}
\let\defaultP\P
\renewcommand{\P}{\ComplexityFont{P}}
\let\defaultS\S
\renewcommand{\S}{\ComplexityFont{S}}
这违反了所有基本的 LaTeX 惯例不重新定义与 LaTeX 内部字符表示 (LICR) 相关的宏。至少应该有一个不重新定义\L
、\P
和 的选项\S
。
手册中提到的使用\defaultL
、\defaultP
和的解决方法是无效的,因为如果使用 UTF-8 输入、或,结果将是\defaultS
Ł
¶
§
大号,磷和年代分别是因为 UTF-8 字符在 LICR 中被翻译回\L
、\P
和\S
。至少应该有一个选项可以避免这些重新定义。
然而,返回很容易:
\documentclass[a4paper,10pt]{article}
\usepackage[utf8]{inputenc}
\usepackage[T1]{fontenc}
\usepackage[bold,basic]{complexity}
% fix the bad mistake in complexity.sty
\let\L\defaultL
\let\P\defaultP
\let\S\defaultS
\begin{document}
Even Ł gets rendered as a bold L.
\begin{thebibliography}{50}
\bibitem{GKKLS:2015} Homer J. {\L}{\k{a}}cki. \textsl{Mmmmm...donuts}.
\end{thebibliography}
\end{document}
更新
从complexity
2017-09-16 发布的软件包 0.81a 版本开始,该disableredefinitions
选项可用。使用该选项,、\L
和\P
不再\S
重新定义,而是\cL
,\cP
和\cS
可以用作\ComplexityFont{L}
、\ComplexityFont{P}
和的简写\ComplexityFont{P}
。
\documentclass[a4paper,10pt]{article}
\usepackage[utf8]{inputenc}
\usepackage[T1]{fontenc}
\usepackage[bold,basic,disableredefinitions]{complexity}
\begin{document}
Now Ł gets rendered correctly and \cL{} prints the class
\begin{thebibliography}{1}
\bibitem{GKKLS:2015} Homer J. {\L}{\k{a}}cki. \textsl{Mmmmm...donuts}.
\end{thebibliography}
\end{document}
答案2
这是来自包装文档
复杂性包中的三个命令覆盖了内置的 T E X 命令。具体来说,\L(排版符号 L)、\P(排版 ¶ )和 \S(排版符号 § )均已重新定义以供包使用。复杂性包保留了这些命令,以便您仍可以使用它们。要使用这些符号中的任何一个,请使用命令 \默认L 、 \defaultP 和 \defaultS 代替