我使用了评论员“Martin H”描述的技术这里将 Inkscape 图形包含到我的 LaTex 文档中。
现在我想强制图像的所有文本看起来与数学模式完全一样,即\mathnormal
因为图像包含参数名称等。
我知道可以使用 来分隔文本\(\)
,这样看起来就符合我的要求了。但这似乎是最后的选择。
所以我读这里默认数学字体是Latin Modern Math
。
我曾尝试在文本上强制使用该字体:
{\setmainfont{Latin Modern Math}
\input{drawing.pdf_tex}
}
但它看起来不像默认的数学字体。这是为什么呢?
编辑#1:
一个最小的工作示例:
Tex 文件:
\documentclass{article}
%\usepackage{amsmath}
\usepackage{mathtools}
\usepackage{color}
\usepackage{graphicx}
\usepackage{fontspec}
\begin{document}
\pagestyle{empty}
Hello World!
This \(x^2\) equation
{\setmainfont{Latin Modern Math}
\input{drawing.pdf_tex}
}
\end{document}
文件drawing.pdf_tex
:
%% Creator: Inkscape inkscape 0.48.4, www.inkscape.org
%% PDF/EPS/PS + LaTeX output extension by Johan Engelen, 2010
%% Accompanies image file 'drawing.pdf' (pdf, eps, ps)
%%
%% To include the image in your LaTeX document, write
%% \input{<filename>.pdf_tex}
%% instead of
%% \includegraphics{<filename>.pdf}
%% To scale the image, write
%% \def\svgwidth{<desired width>}
%% \input{<filename>.pdf_tex}
%% instead of
%% \includegraphics[width=<desired width>]{<filename>.pdf}
%%
%% Images with a different path to the parent latex file can
%% be accessed with the `import' package (which may need to be
%% installed) using
%% \usepackage{import}
%% in the preamble, and then including the image with
%% \import{<path to file>}{<filename>.pdf_tex}
%% Alternatively, one can specify
%% \graphicspath{{<path to file>/}}
%%
%% For more information, please see info/svg-inkscape on CTAN:
%% http://tug.ctan.org/tex-archive/info/svg-inkscape
%%
\begingroup%
\makeatletter%
\providecommand\color[2][]{%
\errmessage{(Inkscape) Color is used for the text in Inkscape, but the package 'color.sty' is not loaded}%
\renewcommand\color[2][]{}%
}%
\providecommand\transparent[1]{%
\errmessage{(Inkscape) Transparency is used (non-zero) for the text in Inkscape, but the package 'transparent.sty' is not loaded}%
\renewcommand\transparent[1]{}%
}%
\providecommand\rotatebox[2]{#2}%
\ifx\svgwidth\undefined%
\setlength{\unitlength}{80.4138855bp}%
\ifx\svgscale\undefined%
\relax%
\else%
\setlength{\unitlength}{\unitlength * \real{\svgscale}}%
\fi%
\else%
\setlength{\unitlength}{\svgwidth}%
\fi%
\global\let\svgwidth\undefined%
\global\let\svgscale\undefined%
\makeatother%
\begin{picture}(1,0.90155469)%
\put(0,0){\includegraphics[width=\unitlength]{drawing.pdf}}%
\put(0.32238442,0.5481293){\makebox(0,0)[lb]{\smash{v0}}}%
\end{picture}%
\endgroup%
请注意以下行:
\put(0.32238442,0.5481293){\makebox(0,0)[lb]{\smash{v0}}}%
有参数名称v0
。
绘图文件位于:http://www.filedropper.com/drawing_3
(SE 网络不允许上传非图像的文件,因此我将其上传到了其他网站。)
编辑#2:
按照“Mico”的指导,我修改了主 LaTex 文件的代码如下:
\documentclass{article}
\usepackage{mathtools}
\usepackage{color}
\usepackage{graphicx}
\usepackage{fontspec}
\begin{document}
Example of "v0" in math mode: \(v_0\).\\
But in the drawing it looks otherwise:\\
\input drawing
\end{document}
另外,将文件的名称更改drawing.pdf_tex
为drawing.tex
。
然后我用编译了主 LaTex 文件lualatex
(通常我使用xelatex
,这有区别吗?)。
但是数学模式的文本看起来与图像的文本不同,请参见:
顺便说一句,有:
{\setmainfont{Latin Modern Math}
\input drawing
}
而不是简单地:
{
\input drawing
}
没有什么区别——它产生与上图相同的结果。
答案1
如果我将附属文件的名称更改drawing.pdf_tex
为drawing.tex
并通过 将其加载到主文件中\input drawing
(请注意,这.tex
是可选的),同时确保使用 LuaLaTeX 编译主文件,我会得到以下结果:
请注意,示例代码使用的默认文本和数学字体与 有很大不同Latin Modern
。尽管如此,v0
字符串显然是以拉丁现代字体设置的。
\documentclass{article}
\usepackage{mathtools}
\usepackage{color}
\usepackage{graphicx}
\usepackage{fontspec}
\usepackage{unicode-math}
% just for this example
\setmainfont{EB Garamond}
\setmathfont[Scale=MatchLowercase]{Cambria Math}
\begin{document}
\pagestyle{empty}
Hello World!
This \(x^2\) equation
\begingroup
\setmainfont{Latin Modern Roman}
\setmathfont{Latin Modern Math}
\input drawing
\endgroup
\end{document}