I first time realise the importance of programming. I need to make a tex file to plot graphs in latex file using sage. For this I had to write code separately for each of equation. So i used C++ program( suggested by Rai sir) to do this for me. In short what i have done is:

I placed equations in a file separated by spaces. Then i wrote c++ program that reads the equation from the file and put in array. Using ‘for loop’ and ‘cout’ i wrote that code of tex file that was to be repeated by just changing the equation.

Thats all. 🙂

C++ program: (tex.cc)

#include<iostream> #include<string> #include<fstream> using namespace std; int main() { string str[5]; ifstream myfile("eqn.txt"); if(!myfile) //Always test the file open. { cout<<"Error opening output file"<<endl; return -1; } while(!myfile.eof()) { for(int i=0;i<5;i++) { getline(myfile,str[i],' '); }} cout<<"\\documentclass{article}"<<endl; cout<<"\\title{Curve Tracing by Sage in Latex}"<<endl; cout<<" \\author{Priyanka Kapoor}"<<endl; cout<<"\\usepackage{sagetex}"<<endl<<endl; cout<<" \\begin{document}"<<endl; cout<<" \\maketitle"<<endl<<endl; for(int i=0;i<5;i++) {cout<<endl; cout<<"\\begin{sageblock}"<<endl; cout<<" f(x) = "<<str[i]<<endl; cout<<" c = plot(f,(x,-2,2),thickness = 2.0,legend_label='"<<str[i]<<"')"<<endl; cout<<"\\end{sageblock}"<<endl<<endl; cout<<"\\begin{center}"; cout<<"\\sageplot{plot(f,(x,-2,2),figsize=(3,3),aspect_ratio=1,legend_label='"<<str[i]<<"')}\\end{center}"<<endl<<endl; }cout<<" \\end{document}"; return 0; }

File for input (eqn.text)

x^2 sin(x) cos(x) x+1 x^2-1

And the Tex file produced is :

\documentclass{article} \title{Curve Tracing by Sage in Latex} \author{Priyanka Kapoor} \usepackage{sagetex} \begin{document} \maketitle \begin{sageblock} f(x) = x^2-1 c = plot(f,(x,-2,2),thickness = 2.0,legend_label='x^2-1') \end{sageblock} \begin{center}\sageplot{plot(f,(x,-2,2),figsize=(3,3),aspect_ratio=1,legend_label='x^2-1 ')}\end{center} \begin{sageblock} f(x) = x^2 c = plot(f,(x,-2,2),thickness = 2.0,legend_label='x^2') \end{sageblock} \begin{center}\sageplot{plot(f,(x,-2,2),figsize=(3,3),aspect_ratio=1,legend_label='x^2')}\end{center} \begin{sageblock} f(x) = sin(x) c = plot(f,(x,-2,2),thickness = 2.0,legend_label='sin(x)') \end{sageblock} \begin{center}\sageplot{plot(f,(x,-2,2),figsize=(3,3),aspect_ratio=1,legend_label='sin(x)')}\end{center} \begin{sageblock} f(x) = cos(x) c = plot(f,(x,-2,2),thickness = 2.0,legend_label='cos(x)') \end{sageblock} \begin{center}\sageplot{plot(f,(x,-2,2),figsize=(3,3),aspect_ratio=1,legend_label='cos(x)')}\end{center} \begin{sageblock} f(x) = x+1 c = plot(f,(x,-2,2),thickness = 2.0,legend_label='x+1') \end{sageblock} \begin{center}\sageplot{plot(f,(x,-2,2),figsize=(3,3),aspect_ratio=1,legend_label='x+1')}\end{center} \end{document}

Advertisements