Skip to content

Instantly share code, notes, and snippets.

@tbeason
Created January 22, 2018 17:02
Show Gist options
  • Star 3 You must be signed in to star a gist
  • Fork 0 You must be signed in to fork a gist
  • Save tbeason/da57e46da3656b93773716cba6e66e02 to your computer and use it in GitHub Desktop.
Save tbeason/da57e46da3656b93773716cba6e66e02 to your computer and use it in GitHub Desktop.
a more-featured LaTeX table printing function
using LatexPrint
function fulltabular(A::AbstractArray{T,2}; placement::String="htb",rounding::Int=0, colnames::Vector{String}=Vector{String}(), frontmatter::String="" , caption::String="", title::String="", label::String="", strfirstcol::Bool=false,arraystretch=1) where {T<:Any}
(r,c) = size(A)
println("\\begin{table}[", placement, "] \\centering")
println("\\renewcommand{\\arraystretch}{",arraystretch ,"}")
println(frontmatter)
if !isempty(title)
println("\\caption{", title, "}")
end
if !isempty(label)
println("\\label{", label,"}")
end
alignment = reduce(*,fill("c",(c-1,)))
println("\\begin{tabular}{l", alignment, "} \\toprule")
if !isempty(colnames)
for i = 1:c
print(colnames[i])
if i<c
print(" & ")
else
println("\\\\ \\midrule")
end
end
end
for a=1:r
for b=1:c
if strfirstcol && b==1
print(latex_form(A[a,b]))
else
print("\$",latex_form((rounding > 0) && typeof(A[a,b])<:Number ? round(A[a,b],rounding) : A[a,b]),"\$")
end
if b<c
print(" & ")
else
if a<r
println("\\\\")
else
println("\\\\ \\bottomrule")
end
end
end
end
println("\\end{tabular}")
if !isempty(caption)
println("\\begin{flushleft}")
println("\\footnotesize", caption)
println("\\end{flushleft}")
end
println("\\end{table}")
end
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment