Schriftartproblem in Asymptote 3D Texlive 2022

Schriftartproblem in Asymptote 3D Texlive 2022

Der folgende Code funktioniert mit Texlive 2021, aber nicht mehr mit 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}

Kein Problem in 2D, aber in 3D, generiert das PDF nicht mehr richtig, die Zeichnung im PDF und der Text nur auf _ps mit asy -f pdf essai-1.asy

GEÄNDERT nach dem Kommentar. 64-Bit-Betriebssystem, x64-Prozessor, Windows 10 Family

Bildbeschreibung hier eingeben

Der Code wurde automatisch generiert

    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));

Die generierten Dateien

Bildbeschreibung hier eingeben

Die Datei essai-1__.ps Bildbeschreibung hier eingeben

Die Datei essai-1_0.pdf Bildbeschreibung hier eingeben

Antwort1

Ich habe TeXLive 2022 heruntergeladen.

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

funktioniert einwandfrei, wobei test.asy die Zeilen enthält

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

Bitte überprüfen Sie, ob Ihre Version von asy mit 3D-Unterstützung kompiliert wurde asy --version. Die x86_64-linux-Version gibt

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

Antwort2

Vielleicht sollte ich keine neue Frage stellen. Sollte ich?

Schauen wir uns die Datei test.asy von John Bowman an. Wenn ich eine erste Zeile hinzufüge:

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

dann funktioniert asy -kf pdf test.asy (test.pdf enthält Zeile und Text) und test_.tex ist

\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}

Dasselbe, wenn ich „Latex“ durch „pdflatex“ ersetze.

Wenn ich "Latex" durch "Xelatex" ersetze,

settings.tex="xelatex";

dann funktioniert asy -kf pdf test.asy nicht (nur Zeile, kein Text) und text_.tex ist

\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}

Ich nehme an, wir haben ein Problem …

PS: Manjaro Linux, Asymptote 2.79, Texlive 2022.

verwandte Informationen