| hash.yaml | |||||
| *.bbl | |||||
| *.bcf | |||||
| *.blg | |||||
| *.run.xml | |||||
| *.toc | |||||
| *.aux | |||||
| *.log | |||||
| *.out | |||||
| problem.ppl | |||||
| M_*.* | |||||
| MB_*.* | |||||
| pipe-*.png | |||||
| sigma*.* | |||||
| ur.* | |||||
| *-vs-*.* | |||||
| distorted*.png | |||||
| pipe-linearized.html | |||||
| pipe-linearized.tex | |||||
| pipe-linearized.pdf |
| # from https://stackoverflow.com/questions/13541615/how-to-remove-files-that-are-listed-in-the-gitignore-but-still-on-the-repositor | |||||
| cat .gitignore | sed '/^#.*/ d' | sed '/^\s*$/ d' | sed 's/^/rm -rf /' | bash |
| #!/bin/bash | |||||
| for i in m4 pandoc pandoc-crossref pandoc-citeproc xelatex locale grep wc; do | |||||
| if [ -z "`which $i`" ]; then | |||||
| echo "error: $i is not installed" | |||||
| exit 1 | |||||
| fi | |||||
| done | |||||
| # the document name is the current directory name | |||||
| name=`basename $PWD` | |||||
| if [ ! -e ${name}.md ]; then | |||||
| echo "error: ${name}.md does not exist" | |||||
| exit 1 | |||||
| fi | |||||
| # get the date right | |||||
| language=`grep lang: meta.yaml | awk -F: '{print $2}' | sed s/-/_/` | |||||
| LC=`locale -a | grep $language | head -n1` | |||||
| if [ -z "$LC" ]; then | |||||
| echo "error: locale for language $language is not installed, run" | |||||
| echo "dpkg-reconfigure locales" | |||||
| echo "or equivalent (or change the document's language)" | |||||
| exit 1 | |||||
| fi | |||||
| # see how we are supposed to write the date, but | |||||
| # replace %m with %b to get a string for the month | |||||
| dateformat=`LC_ALL=${LC} locale d_fmt | sed s/m/b/` | |||||
| currentdate=`LC_ALL=${LC} date +${dateformat}` | |||||
| currentdateedtf=`LC_ALL=${LC} date +%Y-%m-%d` | |||||
| # read the template name from the md's yaml, otherwise default to light | |||||
| template=`grep template: meta.yaml | awk -F': ' '{print $2}'` | |||||
| if [ -z "$template" ]; then | |||||
| template=light | |||||
| fi | |||||
| # read the formats from the md's yaml | |||||
| if [ ! -z "$1" ]; then | |||||
| formats="$1" | |||||
| else | |||||
| formats=`grep formats: meta.yaml | awk -F': ' '{print $2}'` | |||||
| fi | |||||
| branch=`git rev-parse --abbrev-ref HEAD` | |||||
| dochash=`git rev-parse --short HEAD` | |||||
| if [ -e "baserev" ]; then | |||||
| basehash=`cat baserev` | |||||
| else | |||||
| basehash=`git rev-parse HEAD` | |||||
| fi | |||||
| headepoch=`git log -1 --format="%ct"` | |||||
| headdate=`LC_ALL=${DATELC} date -d@${headepoch} +${dateformat}` | |||||
| headdateedtf=`LC_ALL=${DATELC} date -d@${headepoch} +%Y-%m-%d` | |||||
| tag=`git tag --sort=-version:refname | head -n1` | |||||
| if [ -z "${tag}" ]; then | |||||
| revision="DRAFT" | |||||
| docver=`git rev-list ${basehash}..HEAD | wc -l` | |||||
| else | |||||
| revision=${tag} | |||||
| docver=`git rev-list ${tag}..HEAD | wc -l` | |||||
| fi | |||||
| if [ ${docver} -ne 0 ]; then | |||||
| revision="${revision}${docver}" | |||||
| fi | |||||
| hash=`git rev-parse --short HEAD` | |||||
| # hook-pre | |||||
| if [ -e hook-pre.sh ]; then | |||||
| ./hook-pre.sh | |||||
| if [ $? != 0 ]; then | |||||
| echo "hook-pre.sh failed!" | |||||
| exit 1 | |||||
| fi | |||||
| fi | |||||
| # if the current working tree is not clean, we add a "+" | |||||
| # (should be $\epsilon$, but it would screw the file name), | |||||
| # set the date to today and change the author to the current user, | |||||
| # as it is the most probable scenario | |||||
| if [ -z "`git status --porcelain`" ]; then | |||||
| date=${headdate} | |||||
| dateedtf=${headdateedtf} | |||||
| else | |||||
| dochash="${hash}+$\epsilon$" | |||||
| revision="${revision}+" | |||||
| date=${currentdate} | |||||
| dateedtf=${currentdateedtf} | |||||
| fi | |||||
| cat << EOF > hash.yaml | |||||
| --- | |||||
| hash: ${dochash} | |||||
| rev: ${revision} | |||||
| date: ${date} | |||||
| ... | |||||
| EOF | |||||
| for format in ${formats}; do | |||||
| echo "md -> ${format}" | |||||
| flags="--number-sections --toc --syntax-definition=wasora.xml --syntax-definition=fino.xml" | |||||
| if [[ "${format}" == "pdf" ]] || [[ "${format}" == "tex" ]]; then | |||||
| template_file="${template}.tex" | |||||
| flags="${flags} --listings --pdf-engine=xelatex" | |||||
| if [[ "${format}" == "tex" ]]; then | |||||
| flags="${flags} --biblatex" | |||||
| fi | |||||
| elif [[ "${format}" == "html" ]]; then | |||||
| template_file="${template}.html" | |||||
| flags="${flags} --mathjax" | |||||
| else | |||||
| template_file="${template}.${format}" | |||||
| fi | |||||
| if [ -e "${template_file}" ]; then | |||||
| template_spec="--template $template_file" | |||||
| fi | |||||
| m4 -Doutput_format=${format} markuw.m4 meta.yaml ${name}.md hash.yaml |\ | |||||
| pandoc -s ${flags} ${template_spec} --filter pandoc-crossref --filter pandoc-citeproc -o ${name}.${format} || exit 1 | |||||
| if [ -z "`git check-ignore ${name}.${format}`" ]; then | |||||
| echo ${name}.${format} >> .gitignore | |||||
| fi | |||||
| done |
| divert(`-1') | |||||
| changequote(`[[', `]]') | |||||
| define(lorem_ipsum, [[Lorem ipsum dolor sit amet, consectetur adipiscing elit. Nullam elit orci, semper sit amet augue sed, vehicula tristique mauris. Quisque tincidunt felis ex, et sodales nisl fermentum eget. Vestibulum nec lacinia diam. Vivamus condimentum porta volutpat. Nam eu malesuada augue. Vestibulum in volutpat massa. Proin nisi magna, lobortis et tincidunt nec, scelerisque sed quam. Phasellus rutrum scelerisque felis vitae vestibulum. Curabitur egestas nulla ac nibh ullamcorper rhoncus. Nam sit amet justo vulputate, consectetur urna eget, mollis nisl. Nunc vitae suscipit urna. Cras fermentum purus lorem, nec rutrum elit faucibus at. Nullam nec maximus orci. Quisque aliquet et metus vel gravida. Vivamus egestas, elit in ullamcorper semper, massa orci dictum tellus, at rhoncus leo dui eget risus.]]) | |||||
| define(vector_format, ifelse(output_format, [[html]], [[svg]], [[pdf]])) | |||||
| # forloop(var, from, to, stmt) - simple version | |||||
| define([[forloop]], [[pushdef([[$1]], [[$2]])_forloop($@)popdef([[$1]])]]) | |||||
| define([[_forloop]], | |||||
| [[$4[[]]ifelse($1, [[$3]], [[]], [[define([[$1]], incr($1))$0($@)]])]]) | |||||
| divert[[]]dnl |
| --- | |||||
| title: Case Study Number 4: Fatigue Analysis in Nuclear Piping | |||||
| subtitle: A journey from college theory to an actual engineering problem | |||||
| author: Jeremy Theler | |||||
| authoremail: jeremy@seamplex.com | |||||
| fontsize: 11pt | |||||
| lang: en-US | |||||
| bibliography: references.bib | |||||
| biblatexoptions: sorting=none | |||||
| link-citations: true | |||||
| colorlinks: true | |||||
| linkReferences: true | |||||
| nameInLink: true | |||||
| mathspec: true | |||||
| formats: html tex pdf | |||||
| listings: true | |||||
| template: simple | |||||
| ... |
| We will dig into some math. If you do not like equations, just ignore them for now. Read the text skipping them. It is fine (for now). | |||||
| We will need your imagination. Equations, numbers, plot, schematics, 3d views, interactive rotable 3d models... but still, when the theory says "thermal expansion produces linear stresses" you have to picture in your head three little arrows pulling away from the same point in three directions. | |||||
| If you do not know what a Gauss point is, pause here, grab a classical FEM book and resume when you do. | |||||
| FEM is like magic to me. I can follow the whole derivation, from the strong, the weak and varitionals formulations down to the algebraic multigrid preconditioner for the inversion of the stiffness matrix passing through Sobolev spaces and the grid generatoin. Then I can sit down and code all these steps, including shape funcions, matrix assembly and computation of derivatives^{This is a task that if you can, you definitely have to do. Your time and effort will be highly rewarded in the not-so-far-away future.}. Yet, the fact that all these a-priori unconnected steps once gets a pretty picture that resembles reality is astonishing. | |||||
| tomen este cpitulo como una charla - imginacion! ecuaciones numeros plot 3d drawing intrctive 3d model, but still you have to imagine dericatives nd stress tensors... "thermal expansion gives normal stresses" and then picture out three arrows pulling away |
| @techreport { asme3div1ap1, | |||||
| title = {ASME Boiler and Pressure Vessel Code, Section {III}, Rules for Construction of Nuclear Facility Components}, | |||||
| subtitle = {Division 1---Mandatory Appendix I, Design Fatigue Curves}, | |||||
| institution = {American Society of Mechanical Engineers}, | |||||
| year = {2015}, | |||||
| langid = {english}, | |||||
| language = {english}, | |||||
| } | |||||
| @techreport { asme3div1apN, | |||||
| title = {ASME Boiler and Pressure Vessel Code, Section {III}, Rules for Construction of Nuclear Facility Components}, | |||||
| subtitle = {Division 1---NonMandatory Appendix N, Dynamic Analysis Methods}, | |||||
| institution = {American Society of Mechanical Engineers}, | |||||
| year = {2015}, | |||||
| langid = {english}, | |||||
| language = {english}, | |||||
| } | |||||
| @techreport { asme2partA, | |||||
| title = {ASME Boiler and Pressure Vessel Code, Section {II}, Materials}, | |||||
| subtitle = {Part A, Ferrous Materials}, | |||||
| institution = {American Society of Mechanical Engineers}, | |||||
| year = {2015}, | |||||
| langid = {english}, | |||||
| language = {english}, | |||||
| } | |||||
| @techreport { asme2partD, | |||||
| title = {ASME Boiler and Pressure Vessel Code, Section {II}, Materials}, | |||||
| subtitle = {Part D, Properties (Metric)}, | |||||
| institution = {American Society of Mechanical Engineers}, | |||||
| year = {2015}, | |||||
| langid = {english}, | |||||
| language = {english}, | |||||
| } | |||||
| @techreport { asme3div1nb, | |||||
| title = {ASME Boiler and Pressure Vessel Code, Section {III}, Rules for Construction of Nuclear Facility Components}, | |||||
| subtitle = {Division 1---Subsection NB, Class 1 Components}, | |||||
| institution = {American Society of Mechanical Engineers}, | |||||
| year = {2015}, | |||||
| langid = {english}, | |||||
| language = {english}, | |||||
| } | |||||
| @techreport { asme8div2, | |||||
| title = {ASME Boiler and Pressure Vessel Code, Section {VIII}, Rules for Construction of Pressure Vessels}, | |||||
| subtitle = {Division 2---Alternative Rules}, | |||||
| institution = {American Society of Mechanical Engineers}, | |||||
| year = {2010}, | |||||
| langid = {english}, | |||||
| language = {english}, | |||||
| } | |||||
| @techreport { asmeb36, | |||||
| title = {Welded and Seamless Wrought Steel PIpe}, | |||||
| institution = {American Society of Mechanical Engineers}, | |||||
| number = {ASME B36.10M}, | |||||
| year = {2004}, | |||||
| langid = {english}, | |||||
| language = {english}, | |||||
| } | |||||
| @techreport{wasoradesc, | |||||
| author = "J. Theler", | |||||
| title = "Description of the computational tool wasora", | |||||
| type="Technical Description", | |||||
| number = "SP-WA-15-TD-9E3D", | |||||
| institution = "Seamplex", | |||||
| version="B", | |||||
| year = "2016", | |||||
| language = "english", | |||||
| hyphenation = "english", | |||||
| } | |||||
| @techreport{milonga-design, | |||||
| author = "J. Theler", | |||||
| title = "On the design basis of a new core-level neutronic code written from scratch", | |||||
| type="Technical Report", | |||||
| number = "SP-MI-14-AR-5B44", | |||||
| institution = "Seamplex", | |||||
| version="D", | |||||
| year = "2016", | |||||
| language = "english", | |||||
| hyphenation = "english", | |||||
| } | |||||
| @book{raymond, | |||||
| author = "Eric S. Raymond", | |||||
| title = "The Art of UNIX Programming", | |||||
| publisher = "Addison-Wesley", | |||||
| year = "2003", | |||||
| langid = "english", | |||||
| language = "english", | |||||
| } | |||||
| @article{gmsh, | |||||
| author = "C. Geuzaine and J. F. Remacle", | |||||
| title = "Gmsh: a three-dimensional finite element mesh generator with built-in pre- and post-processing facilities", | |||||
| journal = "International Journal for Numerical Methods in Engineering", | |||||
| number = "79", | |||||
| volume = "11", | |||||
| pages = "1309--1331", | |||||
| year = "2009", | |||||
| language = "english", | |||||
| hyphenation = "english", | |||||
| } |
| <!DOCTYPE html> | |||||
| <html xmlns="http://www.w3.org/1999/xhtml" lang="$lang$" xml:lang="$lang$"$if(dir)$ dir="$dir$"$endif$> | |||||
| <head> | |||||
| <meta charset="utf-8"> | |||||
| <meta name="viewport" content="width=device-width, initial-scale=1"> | |||||
| <meta name="description" content=""> | |||||
| $for(author-meta)$ | |||||
| <meta name="author" content="$author-meta$" /> | |||||
| $endfor$ | |||||
| $if(date-meta)$ | |||||
| <meta name="dcterms.date" content="$date-meta$" /> | |||||
| $endif$ | |||||
| $if(keywords)$ | |||||
| <meta name="keywords" content="$for(keywords)$$keywords$$sep$, $endfor$" /> | |||||
| $endif$ | |||||
| <title>$if(title-prefix)$$title-prefix$ – $endif$$pagetitle$</title> | |||||
| $if(fontfamily_html)$ | |||||
| <link href="https://fonts.googleapis.com/css?family=$fontfamily_html$" rel="stylesheet"> | |||||
| $endif$ | |||||
| <link rel="stylesheet" href="https://stackpath.bootstrapcdn.com/bootstrap/4.1.3/css/bootstrap.min.css" integrity="sha384-MCw98/SFnGE8fJT3GXwEOngsV7Zt27NXFoaoApmYm81iuXoPkFOJwJ8ERdknLPMO" crossorigin="anonymous"> | |||||
| <link href='https://fonts.googleapis.com/css?family=Libre+Baskerville' rel='stylesheet' type='text/css'> | |||||
| <style type="text/css"> | |||||
| body { | |||||
| font-family: "Libre Baskerville", serif; | |||||
| hyphens: auto; | |||||
| } | |||||
| img { | |||||
| max-width: 100%; | |||||
| } | |||||
| @media (min-width: 768px) { | |||||
| h1 { font-size: 2.00rem; } | |||||
| h2 { font-size: 1.70rem; } | |||||
| h3 { font-size: 1.40rem; } | |||||
| h4 { font-size: 1.20rem; } | |||||
| h5 { font-size: 1.10rem; } | |||||
| h6 { font-size: 1.00rem; } | |||||
| } | |||||
| @media (max-width: 768px) { | |||||
| h1 { font-size: 1.50rem; } | |||||
| h2 { font-size: 1.35rem; } | |||||
| h3 { font-size: 1.20rem; } | |||||
| h4 { font-size: 1.10rem; } | |||||
| h5 { font-size: 1.00rem; } | |||||
| h6 { font-size: 1.00rem; } | |||||
| } | |||||
| code { | |||||
| padding: .2rem .5rem; | |||||
| white-space: nowrap; | |||||
| background: #F1F1F1; | |||||
| border: 1px solid #E1E1E1; | |||||
| border-radius: 4px; } | |||||
| pre > code { | |||||
| display: block; | |||||
| white-space: pre; } | |||||
| code{white-space: pre-wrap;} | |||||
| span.smallcaps{font-variant: small-caps;} | |||||
| span.underline{text-decoration: underline;} | |||||
| div.column{display: inline-block; vertical-align: top; width: 50%;} | |||||
| $if(quotes)$ | |||||
| q { quotes: "“" "”" "‘" "’"; } | |||||
| $endif$ | |||||
| </style> | |||||
| $if(highlighting-css)$ | |||||
| <style type="text/css"> | |||||
| $highlighting-css$ | |||||
| </style> | |||||
| $endif$ | |||||
| $for(css)$ | |||||
| <link rel="stylesheet" href="$css$" /> | |||||
| $endfor$ | |||||
| $if(math)$ | |||||
| $math$ | |||||
| $endif$ | |||||
| $for(header-includes)$ | |||||
| $header-includes$ | |||||
| $endfor$ | |||||
| </head> | |||||
| <body> | |||||
| $for(include-before)$ | |||||
| $include-before$ | |||||
| $endfor$ | |||||
| <div class="container"> | |||||
| <div class="row"> | |||||
| <div class="col text-center"> | |||||
| $if(title)$ | |||||
| <h1>$title$</h1> | |||||
| $if(subtitle)$ | |||||
| <h2>$subtitle$</h2> | |||||
| $endif$ | |||||
| $for(author)$ | |||||
| <p class="lead"> | |||||
| $author$$if(reviewer)$, $reviewer$$endif$$if(releaser)$, $releaser$$endif$ | |||||
| </p> | |||||
| $endfor$ | |||||
| $if(date)$ | |||||
| <p class="lead">$date$ | |||||
| $if(rev)$—$rev$$endif$ | |||||
| $if(hash)$—$hash$$endif$ | |||||
| </p> | |||||
| $endif$ | |||||
| $if(abstract)$ | |||||
| <h3 class="text-center">Abstract</h3> | |||||
| <p class="text-justify">$abstract$</p> | |||||
| $endif$ | |||||
| <hr> | |||||
| $endif$ | |||||
| </div> | |||||
| </div> | |||||
| <div class="row"> | |||||
| <div class="col"> | |||||
| $if(toc)$ | |||||
| <nav id="$idprefix$TOC"> | |||||
| <h1>Table of Contents</h1> | |||||
| $table-of-contents$ | |||||
| </nav> | |||||
| $endif$ | |||||
| $body$ | |||||
| </div> | |||||
| </div> | |||||
| </div> | |||||
| $for(include-after)$ | |||||
| $include-after$ | |||||
| $endfor$ | |||||
| </body> | |||||
| </html> |
| \PassOptionsToPackage{unicode=true}{hyperref} % options for packages loaded elsewhere | |||||
| \PassOptionsToPackage{hyphens}{url} | |||||
| $if(colorlinks)$ | |||||
| \PassOptionsToPackage{usenames,dvipsnames}{color} | |||||
| $endif$ | |||||
| % | |||||
| \documentclass[$if(fontsize)$$fontsize$,$endif$$if(lang)$$babel-lang$,$endif$$if(papersize)$$papersize$paper,$endif$$for(classoption)$$classoption$$sep$,$endfor$]{$documentclass$} | |||||
| $if(beamerarticle)$ | |||||
| \usepackage{beamerarticle} % needs to be loaded first | |||||
| $endif$ | |||||
| $if(fontfamily)$ | |||||
| \usepackage[$for(fontfamilyoptions)$$fontfamilyoptions$$sep$,$endfor$]{$fontfamily$} | |||||
| $else$ | |||||
| \usepackage{lmodern} | |||||
| $endif$ | |||||
| $if(linestretch)$ | |||||
| \usepackage{setspace} | |||||
| \setstretch{$linestretch$} | |||||
| $endif$ | |||||
| \usepackage{amssymb,amsmath} | |||||
| \usepackage{ifxetex,ifluatex} | |||||
| \usepackage{fixltx2e} % provides \textsubscript | |||||
| \ifnum 0\ifxetex 1\fi\ifluatex 1\fi=0 % if pdftex | |||||
| \usepackage[$if(fontenc)$$fontenc$$else$T1$endif$]{fontenc} | |||||
| \usepackage[utf8]{inputenc} | |||||
| $if(euro)$ | |||||
| \usepackage{eurosym} | |||||
| $endif$ | |||||
| \else % if luatex or xelatex | |||||
| $if(mathspec)$ | |||||
| \ifxetex | |||||
| \usepackage{mathspec} | |||||
| \else | |||||
| \usepackage{unicode-math} | |||||
| \fi | |||||
| $else$ | |||||
| \usepackage{unicode-math} | |||||
| $endif$ | |||||
| \defaultfontfeatures{Ligatures=TeX,Scale=MatchLowercase} | |||||
| $for(fontfamilies)$ | |||||
| \newfontfamily{$fontfamilies.name$}[$fontfamilies.options$]{$fontfamilies.font$} | |||||
| $endfor$ | |||||
| $if(euro)$ | |||||
| \newcommand{\euro}{€} | |||||
| $endif$ | |||||
| $if(mainfont)$ | |||||
| \setmainfont[$for(mainfontoptions)$$mainfontoptions$$sep$,$endfor$]{$mainfont$} | |||||
| $else$ | |||||
| \setmainfont{LinLibertineO} | |||||
| $endif$ | |||||
| $if(sansfont)$ | |||||
| \setsansfont[$for(sansfontoptions)$$sansfontoptions$$sep$,$endfor$]{$sansfont$} | |||||
| $else$ | |||||
| \setsansfont{Carlito} | |||||
| $endif$ | |||||
| $if(monofont)$ | |||||
| \setmonofont[Mapping=tex-ansi$if(monofontoptions)$,$for(monofontoptions)$$monofontoptions$$sep$,$endfor$$endif$]{$monofont$} | |||||
| $else$ | |||||
| \setmonofont[Mapping=tex-ansi]{DejaVuSansMono} | |||||
| $endif$ | |||||
| $if(mathfont)$ | |||||
| $if(mathspec)$ | |||||
| \ifxetex | |||||
| \setmathfont(Digits,Latin,Greek)[$for(mathfontoptions)$$mathfontoptions$$sep$,$endfor$]{$mathfont$} | |||||
| \else | |||||
| \setmathfont[$for(mathfontoptions)$$mathfontoptions$$sep$,$endfor$]{$mathfont$} | |||||
| \fi | |||||
| $else$ | |||||
| \setmathfont[$for(mathfontoptions)$$mathfontoptions$$sep$,$endfor$]{$mathfont$} | |||||
| $endif$ | |||||
| $endif$ | |||||
| $if(CJKmainfont)$ | |||||
| \ifxetex | |||||
| \usepackage{xeCJK} | |||||
| \setCJKmainfont[$for(CJKoptions)$$CJKoptions$$sep$,$endfor$]{$CJKmainfont$} | |||||
| \fi | |||||
| $endif$ | |||||
| $if(luatexjapresetoptions)$ | |||||
| \ifluatex | |||||
| \usepackage[$for(luatexjapresetoptions)$$luatexjapresetoptions$$sep$,$endfor$]{luatexja-preset} | |||||
| \fi | |||||
| $endif$ | |||||
| $if(CJKmainfont)$ | |||||
| \ifluatex | |||||
| \usepackage[$for(luatexjafontspecoptions)$$luatexjafontspecoptions$$sep$,$endfor$]{luatexja-fontspec} | |||||
| \setmainjfont[$for(CJKoptions)$$CJKoptions$$sep$,$endfor$]{$CJKmainfont$} | |||||
| \fi | |||||
| $endif$ | |||||
| \fi | |||||
| % use upquote if available, for straight quotes in verbatim environments | |||||
| \IfFileExists{upquote.sty}{\usepackage{upquote}}{} | |||||
| % use microtype if available | |||||
| \IfFileExists{microtype.sty}{% | |||||
| \usepackage[$for(microtypeoptions)$$microtypeoptions$$sep$,$endfor$]{microtype} | |||||
| \UseMicrotypeSet[protrusion]{basicmath} % disable protrusion for tt fonts | |||||
| }{} | |||||
| $if(indent)$ | |||||
| $else$ | |||||
| % \IfFileExists{parskip.sty}{% | |||||
| % \usepackage{parskip} | |||||
| % }{% else | |||||
| % \setlength{\parindent}{0pt} | |||||
| % \setlength{\parskip}{6pt plus 2pt minus 1pt} | |||||
| % } | |||||
| $endif$ | |||||
| $if(verbatim-in-note)$ | |||||
| \usepackage{fancyvrb} | |||||
| $endif$ | |||||
| \usepackage{hyperref} | |||||
| \hypersetup{ | |||||
| $if(title-meta)$ | |||||
| pdftitle={$title-meta$}, | |||||
| $endif$ | |||||
| $if(author-meta)$ | |||||
| pdfauthor={$author-meta$}, | |||||
| $endif$ | |||||
| $if(keywords)$ | |||||
| pdfkeywords={$for(keywords)$$keywords$$sep$, $endfor$}, | |||||
| $endif$ | |||||
| $if(colorlinks)$ | |||||
| colorlinks=true, | |||||
| linkcolor=$if(linkcolor)$$linkcolor$$else$Maroon$endif$, | |||||
| citecolor=$if(citecolor)$$citecolor$$else$Blue$endif$, | |||||
| urlcolor=$if(urlcolor)$$urlcolor$$else$Blue$endif$, | |||||
| $else$ | |||||
| pdfborder={0 0 0}, | |||||
| $endif$ | |||||
| breaklinks=true} | |||||
| \urlstyle{tt} | |||||
| $if(verbatim-in-note)$ | |||||
| \VerbatimFootnotes % allows verbatim text in footnotes | |||||
| $endif$ | |||||
| $if(geometry)$ | |||||
| \usepackage[$for(geometry)$$geometry$$sep$,$endfor$]{geometry} | |||||
| $else$ | |||||
| \usepackage{geometry} | |||||
| \geometry{paper=a4paper, left=2.5cm, right=2cm, bottom=3.5cm, foot=2cm, top=3.5cm, head=2cm} | |||||
| $endif$ | |||||
| $if(lang)$ | |||||
| \ifnum 0\ifxetex 1\fi\ifluatex 1\fi=0 % if pdftex | |||||
| \usepackage[shorthands=off,$for(babel-otherlangs)$$babel-otherlangs$,$endfor$main=$babel-lang$]{babel} | |||||
| $if(babel-newcommands)$ | |||||
| $babel-newcommands$ | |||||
| $endif$ | |||||
| \else | |||||
| % load polyglossia as late as possible as it *could* call bidi if RTL lang (e.g. Hebrew or Arabic) | |||||
| \usepackage{polyglossia} | |||||
| \setmainlanguage[$polyglossia-lang.options$]{$polyglossia-lang.name$} | |||||
| $for(polyglossia-otherlangs)$ | |||||
| \setotherlanguage[$polyglossia-otherlangs.options$]{$polyglossia-otherlangs.name$} | |||||
| $endfor$ | |||||
| \fi | |||||
| $endif$ | |||||
| $if(natbib)$ | |||||
| \usepackage[$natbiboptions$]{natbib} | |||||
| \bibliographystyle{$if(biblio-style)$$biblio-style$$else$plainnat$endif$} | |||||
| $endif$ | |||||
| $if(biblatex)$ | |||||
| \usepackage[$if(biblio-style)$style=$biblio-style$,$endif$$for(biblatexoptions)$$biblatexoptions$$sep$,$endfor$]{biblatex} | |||||
| $for(bibliography)$ | |||||
| \addbibresource{$bibliography$} | |||||
| $endfor$ | |||||
| $endif$ | |||||
| $if(listings)$ | |||||
| \usepackage{listings} | |||||
| \usepackage[dvipsnames]{xcolor} | |||||
| \input{syntax.tex} | |||||
| \newcommand{\passthrough}[1]{\texttt{#1}} | |||||
| $endif$ | |||||
| $if(lhs)$ | |||||
| \lstnewenvironment{code}{\lstset{language=Haskell,basicstyle=\small\ttfamily}}{} | |||||
| $endif$ | |||||
| $if(highlighting-macros)$ | |||||
| $highlighting-macros$ | |||||
| $endif$ | |||||
| $if(tables)$ | |||||
| \usepackage{longtable,booktabs} | |||||
| % Fix footnotes in tables (requires footnote package) | |||||
| \IfFileExists{footnote.sty}{\usepackage{footnote}\makesavenoteenv{longtable}}{} | |||||
| $endif$ | |||||
| \usepackage{graphicx,grffile} | |||||
| \makeatletter | |||||
| \def\maxwidth{\ifdim\Gin@nat@width>\linewidth\linewidth\else\Gin@nat@width\fi} | |||||
| \def\maxheight{\ifdim\Gin@nat@height>\textheight\textheight\else\Gin@nat@height\fi} | |||||
| \makeatother | |||||
| % Scale images if necessary, so that they will not overflow the page | |||||
| % margins by default, and it is still possible to overwrite the defaults | |||||
| % using explicit options in \includegraphics[width, height, ...]{} | |||||
| \setkeys{Gin}{width=\maxwidth,height=\maxheight,keepaspectratio} | |||||
| % headers y footers a medida | |||||
| \usepackage{lastpage} | |||||
| \usepackage{fancyhdr} | |||||
| \pagestyle{fancy} | |||||
| \fancyhf{} % clear all header and footer fields | |||||
| $if(docnumber)$ | |||||
| \lhead{$docnumber$} | |||||
| $endif$ | |||||
| \lfoot{\scriptsize{$if(date)$ $date$ $endif$ / $if(hash)$ \texttt{$hash$} $endif$}} | |||||
| \rfoot{\thepage/\pageref{LastPage}} | |||||
| \rhead{\includegraphics[height=10pt]{logo}} | |||||
| \renewcommand{\headrulewidth}{0.0pt} | |||||
| \renewcommand{\footrulewidth}{0.4pt} | |||||
| \fancypagestyle{plain}{% | |||||
| \fancyhf{} % clear all header and footer fields | |||||
| $if(hash)$ | |||||
| % \lhead{\scriptsize{\texttt{$hash$}}} | |||||
| \rfoot{\scriptsize{\texttt{$hash$}}} | |||||
| $endif$ | |||||
| \renewcommand{\headrulewidth}{0pt} | |||||
| \renewcommand{\footrulewidth}{0pt}} | |||||
| $if(links-as-notes)$ | |||||
| % Make links footnotes instead of hotlinks: | |||||
| \DeclareRobustCommand{\href}[2]{#2\footnote{\url{#1}}} | |||||
| $endif$ | |||||
| $if(strikeout)$ | |||||
| \usepackage[normalem]{ulem} | |||||
| % avoid problems with \sout in headers with hyperref: | |||||
| \pdfstringdefDisableCommands{\renewcommand{\sout}{}} | |||||
| $endif$ | |||||
| \setlength{\emergencystretch}{3em} % prevent overfull lines | |||||
| \providecommand{\tightlist}{% | |||||
| \setlength{\itemsep}{0pt}\setlength{\parskip}{0pt}} | |||||
| $if(numbersections)$ | |||||
| \setcounter{secnumdepth}{$if(secnumdepth)$$secnumdepth$$else$5$endif$} | |||||
| $else$ | |||||
| \setcounter{secnumdepth}{0} | |||||
| $endif$ | |||||
| $if(subparagraph)$ | |||||
| $else$ | |||||
| % Redefines (sub)paragraphs to behave more like sections | |||||
| \ifx\paragraph\undefined\else | |||||
| \let\oldparagraph\paragraph | |||||
| \renewcommand{\paragraph}[1]{\oldparagraph{#1}\mbox{}} | |||||
| \fi | |||||
| \ifx\subparagraph\undefined\else | |||||
| \let\oldsubparagraph\subparagraph | |||||
| \renewcommand{\subparagraph}[1]{\oldsubparagraph{#1}\mbox{}} | |||||
| \fi | |||||
| $endif$ | |||||
| $if(dir)$ | |||||
| \ifxetex | |||||
| % load bidi as late as possible as it modifies e.g. graphicx | |||||
| $if(latex-dir-rtl)$ | |||||
| \usepackage[RTLdocument]{bidi} | |||||
| $else$ | |||||
| \usepackage{bidi} | |||||
| $endif$ | |||||
| \fi | |||||
| \ifnum 0\ifxetex 1\fi\ifluatex 1\fi=0 % if pdftex | |||||
| \TeXXeTstate=1 | |||||
| \newcommand{\RL}[1]{\beginR #1\endR} | |||||
| \newcommand{\LR}[1]{\beginL #1\endL} | |||||
| \newenvironment{RTL}{\beginR}{\endR} | |||||
| \newenvironment{LTR}{\beginL}{\endL} | |||||
| \fi | |||||
| $endif$ | |||||
| \usepackage{subfig} | |||||
| % SIunits | |||||
| \usepackage{siunitx} | |||||
| % set default figure placement to htbp | |||||
| \makeatletter | |||||
| \def\fps@figure{htbp} | |||||
| \pretocmd\env@cases{\def\@rowc@lors{}}{}{} | |||||
| \pretocmd\start@align{\def\@rowc@lors{}}{}{} | |||||
| \makeatother | |||||
| % fuente para los captions de figuras | |||||
| \usepackage{caption} | |||||
| \renewcommand{\captionfont}{\sf\small} | |||||
| % \renewcommand{\captionlabelfont}{\bf\sf} | |||||
| $for(header-includes)$ | |||||
| $header-includes$ | |||||
| $endfor$ | |||||
| $if(title)$ | |||||
| \title{$title$$if(thanks)$\thanks{$thanks$}$endif$} | |||||
| $endif$ | |||||
| $if(subtitle)$ | |||||
| \providecommand{\subtitle}[1]{} | |||||
| \subtitle{$subtitle$} | |||||
| $endif$ | |||||
| $if(author)$ | |||||
| \author{$for(author)$$author$$sep$ \and $endfor$} | |||||
| $endif$ | |||||
| $if(institute)$ | |||||
| \providecommand{\institute}[1]{} | |||||
| \institute{$for(institute)$$institute$$sep$ \and $endfor$} | |||||
| $endif$ | |||||
| \date{$date$} | |||||
| \begin{document} | |||||
| % \thispagestyle{empty} | |||||
| % \thispagestyle{plain} | |||||
| $if(title)$ | |||||
| \maketitle | |||||
| $endif$ | |||||
| $for(include-before)$ | |||||
| $include-before$ | |||||
| $endfor$ | |||||
| $if(toc)$ | |||||
| { | |||||
| $if(colorlinks)$ | |||||
| \hypersetup{linkcolor=$if(toccolor)$$toccolor$$else$black$endif$} | |||||
| $endif$ | |||||
| \setcounter{tocdepth}{$toc-depth$} | |||||
| \tableofcontents | |||||
| \pagebreak | |||||
| } | |||||
| $endif$ | |||||
| $if(lot)$ | |||||
| \listoftables | |||||
| \pagebreak | |||||
| $endif$ | |||||
| $if(lof)$ | |||||
| \listoffigures | |||||
| \pagebreak | |||||
| $endif$ | |||||
| % vectors done right | |||||
| \renewcommand{\vec}[1]{\ensuremath\mathbf{#1}} | |||||
| $body$ | |||||
| $if(natbib)$ | |||||
| $if(bibliography)$ | |||||
| $if(biblio-title)$ | |||||
| $if(book-class)$ | |||||
| \renewcommand\bibname{$biblio-title$} | |||||
| $else$ | |||||
| \renewcommand\refname{$biblio-title$} | |||||
| $endif$ | |||||
| $endif$ | |||||
| \bibliography{$for(bibliography)$$bibliography$$sep$,$endfor$} | |||||
| $endif$ | |||||
| $endif$ | |||||
| $if(biblatex)$ | |||||
| \printbibliography$if(biblio-title)$[title=$biblio-title$]$endif$ | |||||
| $endif$ | |||||
| $for(include-after)$ | |||||
| $include-after$ | |||||
| $endfor$ | |||||
| \end{document} |