如何将图片放入 dvi 文件中?

如何将图片放入 dvi 文件中?

我想使用 Helevetica Neue 生成 dvi 文件。由于这意味着使用标准系统(非 LaTex)字体,因此 LuaTeX 是唯一的选择。

我只是使用这样的东西:

\photo{/Users/example/Pictures/identité0001.jpg}

在使用 XeTex 进行任何输出时,甚至在 pdf 模式下使用 LuaLateX 时,这种方法都很好用。
但如果我使用 dvi 模式,就会失败:

(/usr/share/texlive/texmf-dist/tex/latex/microtype/mt-mvs.cfg
File: mt-mvs.cfg 2006/07/05 v1.1 microtype config. file: Marvosym Euro (RS)
)
\makecvheadpicturebox=\box62
! String contains an invalid utf-8 sequence.
<read 0> 
   ���xxExif

当然,Exif 的意思是问题出在图像的二进制数据上。

手册页也许可以找出原因:

所有 LuaTeX 文本输入和输出都被视为 Unicode 文本。
在 DVI 模式下,luaTeX 可以完全替代 TeX 引擎。
在 PDF 模式下,luaTeX 可以原生处理PDF、JPG、JBIG2 和 PNG 图形格式.luaTeX 不能包含 PostScript 或封装的 PostScript (EPS) 图形文件;首先使用 epstopdf (1) 将它们转换为 PDF。

哪些提示不支持该图像格式。
如果是,我应该使用哪种图像格式?以及如何将图片转换为该图像?

或者有没有办法将.xdvXeLaTex 生成的扩展 dvi () 文件直接转换为普通 dvi 文件?

答案1

关于 DVI 格式,您首先要了解的是,它非常简单,并不集成支持许多我们期望从 PDF 等格式获得的功能。尤其是没有用于包含图像的集成命令。

有一个命令允许扩展,它对应于 TeX 的\special原语。这允许直接将命令传递给解释 DVI 文件的程序,例如包含图像的命令。但是这些命令有多种格式,因此您必须指定要使用哪个“后端”。正确的选择取决于您想要使用 DVI 文件的程序。这也意味着 TeX 引擎只传递此选项,而从不实际读取或解释您的图像文件,因此在这个级别上没有“支持”图像格式的概念。(实际上,您需要 DVI 查看器/转换器/等。以及编写的 TeX macos 来\special支持您的图像格式。实际上,这意味着您需要一个 EPS 图像)要指定此后端,请将选项传递给包xcolor,例如通过添加(对于dvipdfmx

\PassOptionsToPackage{dvipdfmx}{graphicx}

或者通过添加dvipdfmxclass 选项。(最后一个选项还设置了 geometry、color 和其他包的后端,因此通常更可靠。)如果不这样做,后端dvips就是默认的。

因此,如果您设置了正确的后端并且拥有正确的图像(又名 EPS)格式,您就可以使用它来创建 DVI 文件:

%% Copyright 2006-2015 Xavier Danaux ([email protected]).
%
% This work may be distributed and/or modified under the
% conditions of the LaTeX Project Public License version 1.3c,
% available at http://www.latex-project.org/lppl/.

\documentclass[11pt,a4paper,sans]{moderncv}% For dvips
%\documentclass[11pt,a4paper,sans,dvipdfmx]{moderncv}% For dvipdfmx
%\documentclass[11pt,a4paper,sans,dvisvgm]{moderncv}% For dvisvgm
\moderncvstyle{casual}
\moderncvcolor{blue}
\usepackage[scale=0.75]{geometry}
\name{John}{Doe}
\title{Resumé}
\photo[64pt][0.4pt]{example-image}
\begin{document}
\makecvtitle
\end{document}

这将为您提供一个 DVI 文件,但您会遇到另一个问题:您使用的是原生系统字体,而不是基于 TFM 的常规 TeX 字体。截至 TeXLive 2020,所有包含的程序都无法处理引用原生系统字体的 DVI 文件。(这种情况即将改变:dvisvgm将很快支持由 LuaTeX 编写的 DVI 文件中的系统字体(即从 TeXLive 2021 开始)。

此外,图像仅通过路径引用,据我所知,没有 DVI 后端支持嵌入图像。

相关内容