: Exporting to pdf for latex generate a .pdf_tex with several pages I am using inkscape 0.91 on kubuntu. In a script (that I created some time ago) I use the following command line: inkscape
I am using inkscape 0.91 on kubuntu. In a script (that I created some time ago) I use the following command line:
inkscape -z -D --file=input.svg --export-pdf="output.pdf" --export-latex
It generates two files: output.pdf and output.pdf_tex (then I can add the image in a tex file with input{output.pdf_tex}).
Unfortunately, it does not work anymore. The .pdf_tex file now contains several lines mentioning other pages (page=1, page=2, ...). Example:
begin{picture}(1,1.07214514)%
put(0.84154257,0.80899201){color[rgb]{0,0,0}makebox(0,0)[lb]{smash{text1}}}%
put(0,0){includegraphics[width=unitlength,page=1]{output.pdf}}%
put(0.84228219,0.13316749){color[rgb]{0,0,0}makebox(0,0)[lb]{smash{text2}}}%
put(0,0){includegraphics[width=unitlength,page=2]{output.pdf}}%
end{picture}%
Here is a picture of the corresponding svg file (and a link):
The second includegraphics mention a second page and if I remove its line, it works fine.
Do you know why the command line behave like this with inkscape 0.91?
I can remove the additional lines manually, but there can be many of them and I often use the command (each time I modify the .svg file and want to see how it looks in my pdf file) so it is quite time consuming...
Thanks in advance.
More posts by @Hamm6457569
1 Comments
Sorted by latest first Latest Oldest Best
Removing the extra includegraphics in output.pdf_tex does not solve the problem since each page in output.pdf contains parts of the drawing. I found a solution (proposed by Biber on launchpad.net) which uses a new definition of the "includesvg" command:
Your drawings must be in the folder "./Figures/";
Your temporary files (".pdf", ".pdf_tex") will be added in the folder "./tmp/" (you don't need to create the "./tmp" folder it will be done automatically);
The 3 following commands must be placed before 'begin{document}':
% 1 - Set the graphic paths
graphicspath{ {./Figures/} {./.tmp/} }
% 2 - Command used to test if the compilation of the svg file is necessary (i.e., if the .svg file is more recent than the corresponding pdf file)
newcommand{executeiffilenewer}[3]{ifnumpdfstrcmp{pdffilemoddate{#1}}{pdffilemoddate{#2}}>0{immediatewrite18{ [ -d ./.tmp/ ] || mkdir ./.tmp; #3 }}fi}
% 3 - Command that creates the ".pdf" and ".pdf_tex" from the ".svg". The workaround is in this command
newcommand{includesvg}[2][textwidth]{defsvgwidth{#1}executeiffilenewer{./Figures/#2.svg}{./.tmp/#2.pdf}{unexpanded{PDF_FILE="./.tmp/#2.pdf"; inkscape -z --file=./Figures/#2.svg --export-pdf=$PDF_FILE --export-latex; sed -i 's/\/n/g' ${PDF_FILE}_tex; MAXPAGE=$(pdfinfo $PDF_FILE | grep -oP "(?<=Pages:)s*[0-9]+" | tr -d " ") ; sed -i "/page=$(($MAXPAGE+1))/,${/page=/d}" ${PDF_FILE}_tex; } } input{./.tmp/#2.pdf_tex}}
With these three commands an svg file can be displayed using "includesvg" (like we would use "includegraphics"):
begin{figure}
centering
includesvg[0.5textwidth]{My_Nice_SVG_File} %Where the file is located at: ./Figures/My_Nice_SVG_File.svg
caption{My_Caption]
label{My_Label}
end{figure}
Terms of Use Create Support ticket Your support tickets Stock Market News! © vmapp.org2024 All Rights reserved.