我需要在 matapost 代码的标签内插入重音字母 é、è、à。我该怎么做
注:我使用pdflatex --shell-escape
\documentclass{article}
\usepackage[utf8]{inputenc}
\usepackage[T1]{fontenc}
\usepackage{mpgraphics}
\begin{document}
\begin{mpdisplay}
pair A;
A := (0,0);
draw A withpen pencircle scaled 4bp;
label.lft(btex café etex, A);
label.rt (btex algèbre etex, A);
\end{mpdisplay}
\end{document}
答案1
您必须告诉 Metapost 您正在使用 UTF-8 和 T1:
\documentclass{article}
\usepackage[utf8]{inputenc}
\usepackage[T1]{fontenc}
\usepackage{mpgraphics}
\begin{ltxpreamble}
\usepackage[utf8]{inputenc}
\usepackage[T1]{fontenc}
\end{ltxpreamble}
\begin{document}
\begin{mpdisplay}
pair A;
A := (0,0);
draw A withpen pencircle scaled 4bp;
label.lft(btex \strut café etex, A);
label.rt (btex \strut algèbre etex, A);
\end{mpdisplay}
\end{document}
有了gmp
它
\documentclass{article}
\usepackage[utf8]{inputenc}
\usepackage[T1]{fontenc}
\usepackage[shellescape,latex]{gmp}
\usempxpackage[T1]{fontenc}
\usempxpackage[utf8]{inputenc}
\begin{document}
\begin{mpost}
pair A;
A := (0,0);
draw A withpen pencircle scaled 4bp;
label.lft(\btex \strut café etex, A);
label.rt (\btex \strut algèbre etex, A);
\end{mpost}
\end{document}
答案2
我建议使用 LuaTeX。使用正确映射的字体(通过加载)时,您可以开箱即用地获得 UTF-8 支持fontspec
。此外,LuaTeX 有一个内置的 Metapost 处理器,它消除了 shell 转义的必要性。您必须luamplib
为此加载。也许还有其他我不知道的更高级的软件包。
\documentclass{article}
\usepackage{fontspec}
\usepackage{luamplib}
% for convenience
\everymplib{verbatimtex \leavevmode etex; beginfig(0);}
\everyendmplib{endfig;}
\begin{document}
\begin{mplibcode}
pair A;
A := (0,0);
draw A withpen pencircle scaled 4bp;
label.lft(btex café etex, A);
label.rt (btex algèbre etex, A);
\end{mplibcode}
\end{document}
或者直接使用 ConTeXt(输出相同)。多亏了 Metafun,你甚至不需要烦人的btex .. etex
,而只需使用引号即可。
\starttext
\startMPcode
pair A;
A := (0,0);
draw A withpen pencircle scaled 4bp;
label.lft("café", A);
label.rt ("algèbre", A);
\stopMPcode
\stoptext