XeLaTeX 的轮廓问题

XeLaTeX 的轮廓问题

我的代码如下:

\documentclass[]{book}
\RequirePackage[cmyk]{xcolor}%
\RequirePackage[outline]{contour}%
\begin{document}

\newcommand*{\outline}[1]{\color{white}\contour{black}{\Huge#1}}%

\outline{5}

\end{document}

如果我使用PDFLaTeX,则输出显示得很好:

在此处输入图片描述

但如果我使用XeLaTeX,那么输出就会受到影响,并且会如此轻松地显示:

在此处输入图片描述

我需要使用XeLaTeXony,请提出建议...

答案1

使用 pdftex 时,您使用的是 Type1 Computer Modern,而使用 XeLaTeX 时,您使用的是 OpenType Latin Modern。后者生成的轮廓确实看起来相当细(我认为是因为 dvipdfmx 不理解 dvips 想要的文字后记),但我认为该软件包没有任何记录的选项来配置它。

但是,如果切换到复制模式,您可以拥有更多的控制权(尽管通常首选轮廓模式)

我明白了

在此处输入图片描述

\documentclass[]{book}
\RequirePackage[cmyk]{xcolor}%
\RequirePackage[copies]{contour}%
\begin{document}

\contourlength{1pt}

\newcommand*{\outline}[1]{\color{white}\contour{black}{\Huge#1}}%

\outline{5}

\end{document}

答案2

您可以使用bidicontourxelatex 包来获取大纲模式。bidi在定义 RTL 输出的一些内部代码的包之前加载它(这里实际上没有使用,所以什么也不做)。

使用命令\bidicontour

567

平均能量损失

\documentclass{book}
\usepackage[cmyk]{xcolor}%
\usepackage[outline]{bidicontour}%
\usepackage{bidi}%
\begin{document}

\newcommand*{\outline}[1]{\color{white}\bidicontour{black}{\Huge#1}}%

\outline{567abc}

\end{document}

来自文档:

“bidicontour 包是轮廓包的重新实现,添加了 bidi 支持;当您使用该包的轮廓选项时,它还添加了对 xdvipdfmx 驱动程序的支持。”

“在 bidicontour 包中,轮廓包的所有命令都以 bidi 为前缀;例如,使用 \contour 命令;则需要使用 \bidicontour 命令。”

答案3

contour 缺少 xetex 的驱动程序,但基本上你只需要 pdftex 版本但具有正确的特殊功能:

\RequirePackage[cmyk]{xcolor}%
\RequirePackage[outline]{contour}%
\makeatletter
\renewcommand*\@contour@outline[2]{%
  \begingroup
    \setlength\con@length{2\con@length}%
    \setlength\con@length{0.99626400996\con@length}%
    \color{#1}%
    \con@coloroff
    \special{pdf:literal %
      q
      1 j
      1 J
      1 Tr
      \strip@pt\con@length\space w
    }%
    \rlap{#2}%
    \special{pdf:literal %
      Q
    }%
  \endgroup
  \mbox{#2}%
}
\makeatother
\begin{document}
\makeatletter\show\@contour@outline
\newcommand*{\outline}[1]{\color{white}\contour{black}{\Huge#1}}%

\outline{5}

\end{document}

在此处输入图片描述

相关内容