?? rep_utils.m
字號:
return; %% report elements (list, table, image, link)function str = fmtline(str) % replace some formatting elements depeding on output format global REPORT_OUTPUT_FMT if isempty(str), str = ''; return; end switch REPORT_OUTPUT_FMT, case {'ps','pdf'}, str = strrep(str,'<B>', '{\bf '); str = strrep(str,'<I>', '{\em '); str = strrep(str,'<TT>', '{\tt '); str = strrep(str,'</B>', '}'); str = strrep(str,'</I>', '}'); str = strrep(str,'</TT>','}'); str = strrep(str,'#','\#'); str = strrep(str,'%','\%'); case 'html', % nil case 'txt', str = strrep(str,'<B>', '*'); str = strrep(str,'<I>', '*'); str = strrep(str,'<TT>', ''); str = strrep(str,'</B>', '*'); str = strrep(str,'</I>', '*'); str = strrep(str,'</TT>',''); end return;function cs = insertbreak global REPORT_OUTPUT_FMT cs = cell(0); switch REPORT_OUTPUT_FMT case {'ps','pdf'}, cs{end+1} = ''; case 'html', cs{end+1} = '<P>'; case 'txt', cs{end+1} = ''; end return; function insertlist(list,enum) % make list global REPORT_OUTPUT_FMT if nargin<2, enum = 0; end cs = cell(0); switch REPORT_OUTPUT_FMT case {'ps','pdf'}, if enum, tag = 'enumerate'; else tag = 'itemize'; end starttag = ['\begin{' tag '}']; listtag = '\item '; endtag = ['\end{' tag '}']; case 'html', if enum, tag = 'OL'; else tag = 'UL'; end starttag = ['<' tag '>']; listtag = '<LI>'; endtag = ['</' tag '>']; case 'txt', starttag = ''; listtag = '- '; endtag = ''; end cs{end+1} = starttag; for i=1:length(list), cs{end+1} = sprintf('%s %s',listtag,list{i}); end cs{end+1} = endtag; return;function csout = tablerow(cs,emp,span) % construct one table row global REPORT_OUTPUT_FMT if nargin<2 | isempty(emp), emp = 'none'; end if nargin<3 | isempty(span), span = ones(length(cs),2); end rowspan = span(:,1); colspan = span(:,2); switch emp, case 'bold', emp1 = '<B>'; emp2 = '</B>'; case 'italic', emp1 = '<I>'; emp2 = '</I>'; case 'fixed', emp1 = '<TT>'; emp2 = '</TT>'; case 'none', emp1 = ''; emp2 = ''; case 'header', emp1 = ''; emp2 = ''; tag = 'TH'; end csout = cell(0); switch REPORT_OUTPUT_FMT, case {'pdf','ps'}, %switch emp, % case 'bold', emp1 = '{\bf '; emp2 = '}'; % case 'italic', emp1 = '{\em '; emp2 = '}'; % case 'fixed', emp1 = '{\tt '; emp2 = '}'; % case 'none', emp1 = ''; emp2 = ''; %end s0 = ''; for i=1:length(cs), if rowspan(i) & colspan(i), sp1 = ''; sp2 = ''; if colspan(i)>1, sp1 = [sp1 ' \multicolumn{' num2str(colspan(i)) '}{|c|}{']; sp2 = [sp2 '}']; end if rowspan(i)>1, sp1 = [sp1 ' \multirow{' num2str(rowspan(i)) '}{2cm}{']; sp2 = [sp2 '}']; end s = s0; content = cellstr(defaultformat(cs{i})); csout{end+1} = [s sp1 emp1 content{1}]; for j=2:length(content), csout{end+1} = content{j}; end csout{end} = [csout{end} emp2 sp2]; s0 = ' & '; end end csout{end} = [csout{end} ' \\']; case 'html', tag = 'TD'; csout{end+1} = '<TR>'; for i=1:length(cs), if rowspan(i) & colspan(i), sp = ''; if rowspan(i)>1, sp = [sp ' ROWSPAN=' num2str(rowspan(i))]; end if colspan(i)>1, sp = [sp ' COLSPAN=' num2str(colspan(i))]; end s = sprintf('<%s%s>%s',tag,sp,emp1); content = cellstr(defaultformat(cs{i})); csout{end+1} = [s content{1}]; for j=2:length(content), csout{end+1} = content{j}; end csout{end} = [csout{end} emp2 '</' tag '>']; end end csout{end+1} = '</TR>'; case 'txt', for i=1:length(cs), csout{end+1} = defaultformat(cs{i}); end end return; function cs = inserttable(sTable,rowlines,long) % put table contents to cellstr global REPORT_OUTPUT_FMT if nargin<2, rowlines = 1; end if nargin<3, long = 0; end [rows cols] = size(sTable.values); cs = cell(0); if isempty(sTable.colfmt), cf = 'c'; sTable.colfmt = cf(ones(1,cols)); end if isempty(sTable.span), sTable.span = ones([rows cols 2]); end switch REPORT_OUTPUT_FMT case {'ps','pdf','tex','latex'} li1 = ' \hline'; if rowlines>0, li2 = li1; li3 = li1; elseif rowlines==0, li2 = ''; li3 = li1; else li1 = ''; li2 = ''; li3 = ''; end if long, tbl = 'longtable'; else tbl = 'tabular'; end cs{end+1} = ['\begin{' tbl '}{' sTable.colfmt '}' li1]; if ~isempty(sTable.headers), row = tablerow(sTable.headers,'bold'); for i=1:length(row), cs{end+1} = row{i}; end cs{end} = [cs{end} li1 li2]; end for i=1:rows, row = tablerow(sTable.values(i,:),'',squeeze(sTable.span(i,:,:))); for i=1:length(row), cs{end+1} = row{i}; end cs{end} = [cs{end} li2]; end if ~rowlines, cs{end} = [cs{end} li3]; end cs{end+1} = ['\end{' tbl '}']; case 'html' cs{end+1} = ['<TABLE BORDER=' num2str(rowlines>0) '>']; if ~isempty(sTable.headers), row = tablerow(sTable.headers,'header'); for i=1:length(row), cs{end+1} = row{i}; end end for i=1:rows, row = tablerow(sTable.values(i,:),'',squeeze(sTable.span(i,:,:))); for i=1:length(row), cs{end+1} = row{i}; end end cs{end+1} = '</TABLE>'; case 'txt' cT = [sTable.headers(:)'; sTable.values]; A = cell2char(cT); for i=1:size(A,1), cs{end+1} = A(i,:); end end return;function A = cell2char(T) [nrow,ncol] = size(T); rowsep = 0; colsep = 1; % change to strings for i=1:nrow, for j=1:ncol, t = T{i,j}; if ischar(t), % ok elseif isempty(t), T{i,j} = ''; elseif isstruct(t), % ?? elseif iscell(t), T{i,j} = cell2char(t); elseif isnumeric(t), T{i,j} = num2str(t,3); end end end % widths of columns and heights of rows HW = ones(nrow,ncol,2); for i=1:nrow, for j=1:ncol, HW(i,j,:) = size(T{i,j}); end, end colw = max(HW(:,:,2),[],1); rowh = max(HW(:,:,1),[],2); % the table itself A = char(32*ones(sum(rowh)+rowsep*(nrow-1),sum(colw)+colsep*(ncol-1))); for i=1:nrow, for j=1:ncol, i0 = (i-1)*rowsep+sum(rowh(1:i-1)); j0 = (j-1)*colsep+sum(colw(1:j-1)); S = char(32*ones(rowh(i),colw(j))); si = size(T{i,j}); S(1:si(1),1:si(2)) = T{i,j}; A(i0+[1:rowh(i)],j0+[1:colw(j)]) = S; end end return; function s = inserttominipage(s,width) if nargin<2 | isempty(width) | isnan(width), width = 1; end width = ['{' num2str(width) '\columnwidth}']; mp1 = '\begin{minipage}[t]'; mp2 = '\end{minipage}'; if size(s,1)==1, s = [mp1 width s mp2]; else s = char({[mp1 width]; s; mp2}); end return; function cs = insertfigure(fname,boxsize,inminipage) global REPORT_OUTPUT_FMT if nargin<2, boxsize = [NaN 1]; end if nargin<3, inminipage = 0; end htmlpagewidth = 800; si = cell(0); switch REPORT_OUTPUT_FMT, case {'ps','pdf'}, if ~isnan(boxsize(1)), si{end+1} = ['height=' num2str(boxsize(1)) '\textheight']; end if ~isnan(boxsize(2)), si{end+1} = ['width=' num2str(boxsize(2)) '\columnwidth']; end if length(si), si = [', ' joinstr(si, ', ', ', ')]; end case 'html', if ~isnan(boxsize(1)), si{end+1} = ['HEIGHT=' num2str(htmlpagewidth*boxsize(1))]; end if ~isnan(boxsize(2)), si{end+1} = ['WIDTH=' num2str(htmlpagewidth*boxsize(2))]; end if length(si), si = [' ' joinstr(si, ' ', ' ')]; end case 'txt', % nil end switch REPORT_OUTPUT_FMT, case 'ps', s = ['\epsfig{file=./' fname '.ps ' si '}']; case 'pdf', s = ['\includegraphics[' si ']{./' fname '.pdf}']; case 'html', fn = [fname '.' fmt2imgfmt]; s = ['<IMG SRC="' fn '" ALIGN="center" ALT="' fname '"' si '>']; s = makelinkfrom(fn,s); case 'txt', s = ['[image:' fname ']']; end switch REPORT_OUTPUT_FMT, case {'ps','pdf'}, if inminipage, s = inserttominipage(s,boxsize(2)); end case 'html', s = ['<CENTER>' s '</CENTER>']; case 'txt', % nil end cs = {s}; return;function str = makelinkfrom(linkto,anchor) global REPORT_OUTPUT_FMT if iscell(linkto), if strcmp(REPORT_OUTPUT_FMT,'html'), linkto = joinstr(linkto,'','#'); else linkto = joinstr(linkto,'',''); end end switch REPORT_OUTPUT_FMT, case 'pdf', str = ['\hyperlink{' linkto '}{' anchor '}']; case 'ps', str = [anchor ' (p.\pageref{' linkto '})']; case 'html', str = ['<a href="' linkto '">' anchor '</a>']; case 'txt', str = ''; end return; function str = makelinkto(linkname) global REPORT_OUTPUT_FMT switch REPORT_OUTPUT_FMT, case 'pdf', fmt = '\pdfdest name {%s} fit \pdfoutline goto name {%s} {%s}'; str = sprintf(fmt,linkname,linkname,linkname); case 'ps', str = ['\label{' linkname '}']; case 'html', str = ['<a name="' linkname '"> </a>']; case 'txt', str = ''; end return;
?? 快捷鍵說明
復制代碼
Ctrl + C
搜索代碼
Ctrl + F
全屏模式
F11
切換主題
Ctrl + Shift + D
顯示快捷鍵
?
增大字號
Ctrl + =
減小字號
Ctrl + -