/*** DO NOT EDIT THIS LINE ----------------------------------------------------- Version: 1.0.0 Title: div Description: __div__ performs Stata command and echoes the command or output or both to the HTML log file. This command belongs to {bf:{help weaver}} packages. ----------------------------------------------------- DO NOT EDIT THIS LINE ***/ /*** Syntax ====== Perform command and echo command and output to the HTML log {cmdab:div} [{cmdab:c:ode} | {cmdab:r:esult}] {it:command} If the {cmdab:c:ode} subcommand is specified, only the command will be included, supressing the output from Weaver log. In contrast, if the {cmdab:r:esult} subcommand is specified, only the output will be included in the Weaver log and the command will be ignored. Description =========== __div__ run Stata _command_ and echo the command and output in the HTML log in {help weaver} package. If {help weaver} is not in use (i.e. there is not HTML log open), __div__ run the command and return the output and at the end, it also return a warning that the HTML log is not on. {pstd} The {cmdab:c:ode} subcommand can be added to __div__ command to only echo the _command_ in the HTML log and suppress the output from the HTML log. Although it continues to print the output in Stata results window. {pstd} The {cmdab:r:esult} subcommand can be added to __div__ command to only echo the output in the HTML log and suppress {it:command} from the HTML log. Although it continues to print the output in Stata results window. Example(s) ================= {bf:div} echoes the command and output to the Weaver log. . sysuse auto, clear . div regress mpg weight foreign headroom the {cmdab:r:esult} only includes the output in the weaver log . div r code misstable summarize the {cmdab:c:ode} subcommand only includes the command in the weaver log . div c generate newvar = price Author ====== __E. F. Haghish__ Center for Medical Biometry and Medical Informatics University of Freiburg, Germany _and_ Department of Mathematics and Computer Science University of Southern Denmark haghish@imbi.uni-freiburg.de [Weaver Homepage](www.haghish.com/weaver) Package Updates on [Twitter](http://www.twitter.com/Haghish) - - - _This help file was dynamically produced by[MarkDoc Literate Programming package](http://www.haghish.com/markdoc/)_ ***/ program define div **************************************************************************** * Searching for "codes" and "results" subcommands * * - if the command includes at least 2 words, check for subcommands * - if a subcommand is found, remove the subcommand name from the command * - define a local macro "jump" if no subcommand is found **************************************************************************** local line = `"`macval(0)'"' // Save the macro tokenize `"`line'"' if !missing("`2'") { if "`1'" == "c" | "`1'" == "co" | "`1'" == "cod" | "`1'" == "code" { local 0 : subinstr local 0 "`1'" "" codes `0' } else if "`1'" == "r" | "`1'" == "re" | "`1'" == "res" | "`1'" == "resu" /// | "`1'" == "resul" | "`1'" == "result" { local 0 : subinstr local 0 `"`1'"' "" results `0' } else { local jump = 1 if "`1'" == "mata:" local mata 1 } } **************************************************************************** * the "div" command * * - **************************************************************************** if missing("`2'") | "`jump'" == "1" { //cap set linesize $width tempname canvas needle tempfile smcl //smcl log tempfile text //txt log set more off ******************************************************************** * CHECK THE CURRENT LOG ******************************************************************** quietly log query if `"`r(filename)'"' != "" { local name `"`r(filename)'"' //save the log name local status `"`r(status)'"' // status of the log local type "`r(type)'" //save the log type } ******************************************************************** * If log is ON * * - save in information of the current log and then close it * - execute the code and save the output in a temporary log ******************************************************************** if "`name'" != "" { capture quietly log close if "`type'" == "text" cap qui log using `text', replace text if "`type'" == "smcl" cap qui log using `smcl', replace smcl } else cap qui log using `text', replace text // NOTE: The `c(userversion)' is not available on Stata 12. This can be // replaced with `c(stata_version)' version `c(stata_version)': `0' cap quietly log close ******************************************************************** * if log is SMCL * * - if the log is SMCL, save the smcl2txt translator details * - translate the smcl log to text * - reset the smcl2txt translator's default settings * - append the smcl or text temp log to the Stata log file ******************************************************************** if "`type'" == "smcl" { qui translator query smcl2txt local savelinesize `r(linesize)' local lm `r(lmargin)' translator set smcl2txt linesize `c(linesize)' translator set smcl2txt lmargin 0 if "`r(cmdnumber)'" == "on" { local savecmdnumber on translator set smcl2txt cmdnumber off } if "`r(logo)'" == "on" { local savelogo on translator set smcl2txt logo off } cap qui translate `smcl' `text', trans(smcl2txt) replace if "`savecmdnumber'" == "on" translator set smcl2txt cmdnumber on if "`savelogo'" == "on" translator set smcl2txt logo on if !missing("`lm'") translator set smcl2txt lmargin `lm' translator set smcl2txt linesize `savelinesize' } ******************************************************************** * Print the command to Weaver log ******************************************************************** if "$weaverstyle" == "minimal" { cap file write `canvas' `"
. "' 				///
			`"`macval(0)'"' _n 							//add dot
		}
		else {
			cap file write `canvas' `"
"' 				///
			`"`macval(0)'"' _n 
		}
				
		cap file write `canvas' "
" _n(3) // close syn highlighter ******************************************************************** * Append the temporary log to Weaver log * * - append the content of the temporary log file to Stata log * - only write the results if there is at least 1 line in the log ******************************************************************** tempname canvas needle cap file open `canvas' using `"$weaverFullPath"', write text append cap file open `needle' using "`text'", read cap file read `needle' line if "$weaverMarkup" == "html" { if "$weaverstyle" == "minimal" { cap file write `canvas' `"
. "' 			///
				`"`macval(0)'"' _n 
			}
			else {
				cap file write `canvas' `"
"' 			///
				`"`macval(0)'"' _n 
			}
			cap file write `canvas' "
" _n(3) } if "$weaverMarkup" == "latex" { if "$weaverstyle" == "empty" | "$weaversynoff" == "synoff" { qui file write `canvas' /// `"\begin{verbatim}. `macval(0)'\end{verbatim}"' } else { qui file write `canvas' /// "\begin{statax}" _n /// `". `macval(0)'\end{statax}"' } } *if r(eof)==0 { if "$weaverMarkup" == "html" cap file write `canvas' `"
"'	
			if "$weaverMarkup" == "latex" cap file write `canvas' _n "\begin{verbatim}" _n
		*	local close close								//indicator
		*}
		while r(eof)==0 {
			cap file write `canvas' `"`macval(line)'"' _n      
			cap file read `needle' line
		}
		
		*if !missing("`close'") {
			if "$weaverMarkup" == "html" cap file write `canvas' "
" _n(2) if "$weaverMarkup" == "latex" cap file write `canvas' "\end{verbatim}" _n(2) *} ******************************************************************** * Reopen Stata log, if it was open ******************************************************************** if !missing("`name'") { quietly log using "`name'", append `type' if "`status'" != "on" quietly log `status' } // Make sure the weaver html log is open if "$weaver" == "" { di as txt _n(2) "{hline}" di as error "{bf:Warning}" di as txt "{help weaver}'s html log file is off!" di as txt "{hline}{smcl}" _n } } end // DYNAMIC HELP FILE // =================================== *markdoc div.ado, export(sthlp) replace