Mobile app version of vmapp.org
Login or Join
Hamm6457569

: 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

@Hamm6457569

Posted in: #Inkscape #Latex

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.

10.01% popularity Vote Up Vote Down


Login to follow query

More posts by @Hamm6457569

1 Comments

Sorted by latest first Latest Oldest Best

 

@Fox8063795

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}

10% popularity Vote Up Vote Down


Back to top | Use Dark Theme