Проблема со шрифтом в Asymptote 3D Texlive 2022

Проблема со шрифтом в Asymptote 3D Texlive 2022

Следующий код работает с texlive 2021, но больше не работает с texlive 2022.

    % !TeX program = lualatex
    \documentclass{article}
    %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
    \usepackage[inline]{asymptote}
    \begin{document}

    Alors?

    \begin{asydef}
        texpreamble("\usepackage[math-style=french,bold-style=ISO]{fourier-otf}");
        texpreamble("\setmainfont[Scale=0.72]{Verdana}");
        settings.tex="lualatex";
        \end{asydef}
    \begin{center}
        \begin{asy}
    import three;
    unitsize(1cm);
    //draw('en 2D : $A$ et A',(0,0)--(10,0));
    draw('en 3D : $B$ et B',(0,0,0)--(10,0,0));
            \end{asy}
        \end{center}
    \end{document}

Никаких проблем в 2D, но в 3D больше не генерирует PDF должным образом, рисование в PDF и текст только на _ps с asy -f pdf essai-1.asy

ИЗМЕНЕНО после комментария. Операционная система 64 бит, процессор x64 Windows 10 Famille

введите описание изображения здесь

Код сгенерирован как обычно

    if(!settings.multipleView) settings.batchView=false;
    settings.tex="pdflatex";
    settings.inlinetex=true;
    deletepreamble();
    defaultfilename="essai-1";
    if(settings.render < 0) settings.render=4;
    settings.outformat="";
    settings.inlineimage=true;
    settings.embed=true;
    settings.toolbar=false;
    viewportmargin=(2,2);

    texpreamble("\usepackage[math-style=french,bold-style=ISO]{fourier-otf}");
    texpreamble("\setmainfont[Scale=0.72]{Verdana}");
    settings.tex="lualatex";

    import three;
    unitsize(1cm);
    //draw('en 2D : $A$ et A',(0,0)--(10,0));
    draw('en 3D : $B$ et B',(0,0,0)--(10,0,0));

Файлы, созданные

введите описание изображения здесь

Файл essai-1__.ps введите описание изображения здесь

Файл essai-1_0.pdf введите описание изображения здесь

решение1

Я скачал TeXLive 2022.

/usr/local/texlive/2022/bin/x86_64-linux/asy -f pdf

работает отлично, где test.asy содержит строки

import three;
unitsize(1cm);
draw('en 3D : $B$ et B',(0,0,0)--(10,0,0));

Пожалуйста, проверьте, что ваша версия asy была скомпилирована с поддержкой 3D, используя asy --version. Версия x86_64-linux возвращает

Asymptote version 2.79 [(C) 2004 Andy Hammerlindl, John C. Bowman, Tom Prince]

ENABLED OPTIONS:
V3D      3D vector graphics output
WebGL    3D HTML rendering
OpenGL   3D OpenGL rendering
SSBO     GLSL shader storage buffer objects
XDR      External Data Representation (portable binary file format for V3D)
Readline Interactive history and editing
GC       Boehm garbage collector
threads  Render OpenGL in separate thread

DISABLED OPTIONS:
GSL      GNU Scientific Library (special functions)
FFTW3    Fast Fourier transforms
CURL     URL support
LSP      Language Server Protocol
Sigsegv  Distinguish stack overflows from segmentation faults

решение2

Может быть, мне не стоит открывать новый вопрос. Стоит ли?

Давайте посмотрим на файл test.asy Джона Боумена. Если я добавлю первую строку:

settings.tex="latex";
import three;
unitsize(1cm);
draw('en 3D : $B$ et B',(0,0,0)--(10,0,0));

тогда asy -kf pdf test.asy работает (test.pdf содержит строку и текст) и test_.tex -

\documentclass[12pt]{article}
\newbox\ASYbox
\newdimen\ASYdimen
\def\ASYprefix{}
\long\def\ASYbase#1#2{\leavevmode\setbox\ASYbox=\hbox{#1}%\ASYdimen=\ht\ASYbox%
\setbox\ASYbox=\hbox{#2}\lower\ASYdimen\box\ASYbox}
\pagestyle{empty}
\textheight=2048pt
\textwidth=2048pt
\begin{document}
\makeatletter%
\let\ASYencoding\f@encoding%
\let\ASYfamily\f@family%
\let\ASYseries\f@series%
\let\ASYshape\f@shape%
\makeatother%
\fontsize{12.000000}{14.400000}\selectfont%
\usefont{\ASYencoding}{\ASYfamily}{\ASYseries}{\ASYshape}%
\special{ps:
/ASYx {( ) print ASYX sub 12 string cvs print} bind def
/ASYy {( ) print ASYY sub 12 string cvs print} bind def
/ASY1 true def
/show {ASY1 {/ASYX currentpoint pop def /ASYY currentpoint exch pop def /ASY1 false def} if currentpoint newpath moveto false charpath {(M) print ASYy ASYx} {(L) print ASYy ASYx} {(C) print ASYy ASYx ASYy ASYx ASYy ASYx} {(c) print} pathforall} bind def /V {ASY1 {/ASYX currentpoint pop def /ASYY currentpoint exch pop def ASY1 false def} if Ry neg Rx 4 copy 4 2 roll 2 copy 6 2 roll 2 copy (M) print ASYy ASYx (L) print ASYy add ASYx (L) print add ASYy add ASYx (L) print add ASYy ASYx (c) print} bind def}
en 3D : $B$ et B\ %
\end{document}

То же самое, если я заменю «latex» на «pdflatex».

Если я заменю «латекс» на «кселатекс»,

settings.tex="xelatex";

то asy -kf pdf test.asy не работает (только строка, без текста) и text_.tex

\documentclass[12pt]{article}
\newbox\ASYbox
\newdimen\ASYdimen
\def\ASYprefix{}
\long\def\ASYbase#1#2{\leavevmode\setbox\ASYbox=\hbox{#1}%\ASYdimen=\ht\ASYbox%
\setbox\ASYbox=\hbox{#2}\lower\ASYdimen\box\ASYbox}
\pagestyle{empty}
\textheight=2048pt
\textwidth=2048pt
\begin{document}
\makeatletter%
\let\ASYencoding\f@encoding%
\let\ASYfamily\f@family%
\let\ASYseries\f@series%
\let\ASYshape\f@shape%
\makeatother%
\fontsize{12.000000}{14.400000}\selectfont%
\usefont{\ASYencoding}{\ASYfamily}{\ASYseries}{\ASYshape}%
en 3D : $B$ et B\ %
\end{document}

Я полагаю, что у нас проблема...

P.S.: Manjaro Linux, Asymptote 2.79, texlive 2022.

Связанный контент