function tex_string = getTeXString(a_doc, props)
% getTeXString - Returns the TeX representation for the plot document.
%
% Usage:
% tex_string = getTeXString(a_doc, props)
%
% Description:
% Plots, prints EPS files and generates the necessary LaTeX code.
%
% Parameters:
% a_doc: A doc_plot object.
% props: A structure with any optional properties.
% docDir: Base directory for files.
% plotRelDir: Subdirectory for plot files. \input commands will
% include this directory.
% (passed to TeXfloat)
%
% Returns:
% tex_string: A string that contains TeX commands, which upon writing to a file,
% can be interpreted by the TeX engine to produce a document.
%
% Example:
% doc_plot has an overloaded getTeXString method:
% >> tex_string = getTeXString(a_doc_plot)
% >> string2File(tex_string, 'my_doc.tex')
% then my_doc.tex can be used by including from a valid LaTeX document.
%
% See also: doc_generate, doc_plot
%
% $Id$
%
% Author: Cengiz Gunay <cgunay@emory.edu>, 2006/01/17
% Copyright (c) 2007 Cengiz Gunay <cengique@users.sf.net>.
% This work is licensed under the Academic Free License ("AFL")
% v. 3.0. To view a copy of this license, please look at the COPYING
% file distributed with this software or visit
% http://opensource.org/licenses/afl-3.0.php.
props = mergeStructs(defaultValue('props', struct), get(a_doc, 'props'));
doc_dir = getFieldDefault(props, 'docDir', '');
plot_dir = getFieldDefault(props, 'plotRelDir', '');
if ~isempty(doc_dir) && doc_dir(end) ~= '/', doc_dir = [ doc_dir '/' ]; end
if ~isempty(plot_dir) && plot_dir(end) ~= '/', plot_dir = [ plot_dir '/' ]; end
fig_num = plot(a_doc);
filename = properTeXFilename(a_doc.plot_filename);
% check and create directory
final_dir = [ doc_dir plot_dir ];
if ~ exist(final_dir, 'dir')
mkdir(doc_dir, plot_dir);
end
% put file in final dir
print('-depsc2', [ final_dir filename '.eps' ] );
a_doc.float_props.floatType = 'figure';
a_doc.float_props.label = [ 'fig:' get(a_doc, 'id') ];
% TeX points to relative dir
tex_string = TeXfloat([ '\includegraphics{' plot_dir filename '}' ], a_doc.caption, ...
mergeStructs(props, a_doc.float_props));