强制块中的所有文本看起来像默认数学模式文本

强制块中的所有文本看起来像默认数学模式文本

我使用了评论员“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_texdrawing.tex
然后我用编译了主 LaTex 文件lualatex(通常我使用xelatex,这有区别吗?)。

但是数学模式的文本看起来与图像的文本不同,请参见:

在此处输入图片描述

顺便说一句,有:

{\setmainfont{Latin Modern Math}
\input drawing
}

而不是简单地:

{
\input drawing
}

没有什么区别——它产生与上图相同的结果。

答案1

如果我将附属文件的名称更改drawing.pdf_texdrawing.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}

相关内容