
Estoy intentando usar el svg
paquete para algunos archivos svg que tengo en un graphics/
subdirectorio. Mi comando de inclusión de gráficos solía ser:
\includegraphics{graphics/foo.png}
Ahora, si escribo:
\includesvg{graphics/foo.svg}
yo obtengoeste problema: El paquete te necesitanopara especificar la extensión del archivo. Pero si escribo
\includesvg{graphics/foo}
Yo obtengo:
! LaTeX Error: File `./graphics/foo' not found.
e incluso si establezco la ruta y escribo:
\includesvg[svgpath=./graphics/]{foo}
Todavía recibo:
! LaTeX Error: File `./graphics/foo' not found.
Finalmente, la documentación del paquete svg dice:
La ruta al archivo svg se puede especificar usando la opción svgpath, donde la ruta debe terminar en /.
Entonces ese último intento debería haberme llevado allí. Pero para estar seguro, intenté:
\includesvg[svgpath=./graphics/.]{foo}
y todavía tengo
! LaTeX Error: File `./graphics/.foo' not found.
¿Que debería hacer entonces?
Respuesta1
Esto funciona, siempre que inicie pdflatex
con la -shell-escape
opción y la tenga inkscape
en su sistema. Esto llamará a la (lenta) conversión de SVG a PDF, con un archivo TeX adjunto. Las ejecuciones posteriores no necesitan la conversión, por lo que también funcionan sin la -shell-escape
opción.
Entonces, si el archivo es test.tex
lo que necesitas
pdflatex -shell-escape test
(Ajuste según el método con el que ejecuta LaTeX en su sistema).
\documentclass{article}
\usepackage{svg}
\begin{document}
\includesvg[svgpath=./graphics/]{Steps}
\end{document}
El archivo SVG ha sido tomado dehttps://dev.w3.org/SVG/tools/svgweb/samples/svg-files/
Respuesta2
Bueno, dado que svg
necesita Inkscape de todos modos, puede evitar el problema por completo y realizar la conversión usted mismo:
inkscape -z --export-pdf=foo.pdf foo.svg
para convertir el archivo de una vez por todas (suponiendo que no cambie repetidamente). Para automatizar eso en todos los archivos en el directorio actual, intente:
ls *.svg | while read f; do inkscape -z --export-pdf="${f/\.svg/.pdf}" "$f"; done
(pero asegúrese de que los nombres de sus archivos no contengan .svg dos veces, de lo contrario necesitaría algo más complicado).