Makro defined at beginning of row is only available in first column - latex

I am trying to create a new environment where I can add different rows, where each row contains a short makro:
\documentclass{report}
\newenvironment{test}{%
\begin{tabular}{|p{2cm}|p{2cm}|}
}
{
\end{tabular}
}
% function to add rows
\newcommand\row{%
\def\type{4}
cell 1: \type &
cell 2: \type \\
}
\begin{document}
\begin{test}
\row
\end{test}
\end{document}
Unfortunately, this gives an "undefined control sequence" error and the makro is not available in the second column:
How can makros be available in the whole row?

I finally found a solution following https://tex.stackexchange.com/questions/195747/using-in-macro-abstracting-a-tabulars-row. It's as simple as replacing def with gdef (minding that the definitions are now global):
\documentclass{report}
\newenvironment{test}{%
\begin{tabular}{|p{2cm}|p{2cm}|}
}
{
\end{tabular}
}
% function to add rows
\newcommand\row{%
\gdef\type{4}
cell 1: \type &
cell 2: \type \\
}
\begin{document}
\begin{test}
\row
\end{test}
\end{document}

Related

hdashline with starting and ending markers latex

Can we have use hdashline with starting and ending markers? Something like
<---------->
One possibility is to use tikz:
\documentclass{article}
\usepackage{tikz}
\begin{document}
some text
\noindent\tikz{\draw[<->,dashed] (0,0) -- (\textwidth-0.4pt,0);}
some text
\end{document}
If you need this in a table, you can use the nicematrix package (inspired by this answer https://tex.stackexchange.com/a/635224/36296 )
\documentclass{article}
\usepackage{nicematrix,tikz}
\begin{document}
\NiceMatrixOptions
{
custom-line =
{
command = arrowrule ,
tikz = { dashed, <-> }
}
}
\begin{NiceTabular}{XX}
some & text\\
\arrowrule
some & text\\
\end{NiceTabular}
\end{document}

Create side-by-side environments in Latex

I am trying to create three environments that are beside one another and do not fill the entire page as seen in the attached image. Within each environment, I am trying to add the cvref function, attached is the necessary cls code.
test.cls
\NeedsTeXFormat{LaTeX2e}[1995/12/01]
\#ifl#t#r\fmtversion{2018/04/01}{\UseRawInputEncoding}{}
\ProvidesClass{altacv}[2018/07/27 AltaCV v1.1.4, yet another alternative class for a résumé/curriculum vitae.]
\newif\if#academicons
\DeclareOption{academicons}{\#academiconstrue}
%% v1.1.3: Choice of round/square photo
\newif\if#normalphoto
\DeclareOption{normalphoto}{\#normalphototrue}
\DeclareOption*{\PassOptionsToClass{\CurrentOption}{extarticle}}
\ProcessOptions\relax
\LoadClass{extarticle}
\RequirePackage[margin=2cm]{geometry}
\RequirePackage{fontawesome}
%% v1.1: Optionally load academicons
\if#academicons
%% Patch to make academicons compilable with XeLaTeX
\ExplSyntaxOn
\msg_redirect_name:nnn { fontspec } { font-not-found } { none }
\ExplSyntaxOff
\RequirePackage{academicons}
\newfontfamily{\AI}{academicons.ttf}
\fi
\RequirePackage{xcolor}
\colorlet{accent}{blue!70!black}
\colorlet{heading}{black}
\colorlet{emphasis}{black}
\colorlet{body}{black!80!white}
\newcommand{\itemmarker}{{\small\textbullet}}
\newcommand{\ratingmarker}{\faCircle}
\RequirePackage{tikz}
\usetikzlibrary{arrows}
\RequirePackage[skins]{tcolorbox}
\RequirePackage{enumitem}
\setlist{leftmargin=*,labelsep=0.5em,nosep,itemsep=0.25\baselineskip,after=\vskip0.25\baselineskip}
\setlist[itemize]{label=\itemmarker}
\RequirePackage{graphicx}
\RequirePackage{etoolbox}
\RequirePackage{dashrule}
\RequirePackage{multirow,tabularx}
\RequirePackage{changepage}
% \RequirePackage{marginfix}
\setlength{\parindent}{0pt}
\newcommand{\divider}{\textcolor{body!30}{\hdashrule{\linewidth}{0.6pt}{0.5ex}}\medskip}
\newenvironment{fullwidth}{%
\begin{adjustwidth}{}{\dimexpr-\marginparwidth-\marginparsep\relax}}
{\end{adjustwidth}}
\newcommand{\emailsymbol}{\faAt}
\newcommand{\phonesymbol}{\faPhone}
\newcommand{\homepagesymbol}{\faChain}
\newcommand{\locationsymbol}{\faMapMarker}
\newcommand{\linkedinsymbol}{\faLinkedin}
\newcommand{\twittersymbol}{\faTwitter}
\newcommand{\githubsymbol}{\faGithub}
\newcommand{\orcidsymbol}{\aiOrcid}
\newcommand{\mailsymbol}{\faEnvelope}
\newcommand{\printinfo}[2]{\mbox{\textcolor{accent}{\normalfont #1}\hspace{0.5em}#2\hspace{2em}}}
\newcommand{\weblinks}[3]{\mbox{\textcolor{accent}{\normalfont #1}\hspace{0.5em}{\href{#2}{#3}}\hspace{2em}}}
\newcommand{\name}[1]{\def\#name{#1}}
\newcommand{\tagline}[1]{\def\#tagline{#1}}
\newcommand{\photo}[2]{\def\#photo{#2}\def\#photodiameter{#1}}
\newcommand{\email}[2]{\weblinks{\emailsymbol}{#1}{#2}}
\newcommand{\mailaddress}[1]{\printinfo{\mailsymbol}{#1}}
\newcommand{\phone}[1]{\printinfo{\phonesymbol}{#1}}
\newcommand{\homepage}[2]{\weblinks{\homepagesymbol}{#1}{#2}}
\newcommand{\twitter}[1]{\printinfo{\twittersymbol}{#1}}
\newcommand{\linkedin}[2]{\weblinks{\linkedinsymbol}{#1}{#2}}
\newcommand{\github}[2]{\weblinks{\githubsymbol}{#1}{#2}}
\newcommand{\orcid}[1]{\printinfo{\orcidsymbol}{#1}}
\newcommand{\location}[1]{\printinfo{\locationsymbol}{#1}}
\newcommand{\cvsection}[2][]{%
\bigskip%
\ifstrequal{#1}{}{}{\marginpar{\vspace*{\dimexpr1pt-\baselineskip}\raggedright\input{#1}}}%
{\color{heading}\LARGE\bfseries\MakeUppercase{#2}}\\[-1ex]%
{\color{heading}\rule{\linewidth}{2pt}\par}\medskip
}
\newcommand{\cvref}[4]{%
\smallskip
\textcolor{emphasis}{\textbf{#1}}\par
\smallskip\normalsize
\ifstrequal{#2}{}{}{
\textbf{\color{accent}#2}\par
\smallskip}
\begin{description}[font=\color{accent},style=multiline,leftmargin=1.25em]
\item[\small\normalfont\mailsymbol] #3
\item[\small\normalfont\phonesymbol] #4
\end{description}
\medskip
% \medskip
}
\newenvironment{cvcolumn}[1]{\begin{minipage}[t]{#1}\raggedright}{\end{minipage}}
\RequirePackage[backend=biber,style=authoryear,sorting=ydnt]{biblatex}
%% For removing numbering entirely when using a numeric style
% \setlength{\bibhang}{1em}
% \DeclareFieldFormat{labelnumberwidth}{\makebox[\bibhang][l]{\itemmarker}}
% \setlength{\biblabelsep}{0pt}
\defbibheading{pubtype}{\cvsubsection{#1}}
\renewcommand{\bibsetup}{\vspace*{-\baselineskip}}
\AtEveryBibitem{\makebox[\bibhang][l]{\itemmarker}}
\setlength{\bibitemsep}{0.25\baselineskip}
% v1.1.2: make it easier to add a sidebar aligned with top of next page
\RequirePackage{afterpage}
\newcommand{\addsidebar}[2][]{\marginpar{%
\ifstrequal{#1}{}{}{\vspace*{#1}}%
\input{#2}}%
}
\newcommand{\addnextpagesidebar}[2][]{\afterpage{\addsidebar[#1]{#2}}}
\AtBeginDocument{%
\pagestyle{empty}
\color{body}
\raggedright
}
It is called in the following snippet:
test.tex
\PassOptionsToPackage{dvipsnames}{xcolor}
\documentclass[10pt,letterpaper]{altacv}
\geometry{left=1cm,right=9cm,marginparwidth=6.8cm,marginparsep=1.2cm,top=1.25cm,bottom=1.25cm,footskip=2\baselineskip}
\usepackage[T1]{fontenc}
\usepackage[utf8]{inputenc}
\usepackage[default]{lato}
\definecolor{Mulberry}{HTML}{72243D}
\definecolor{SlateGrey}{HTML}{2E2E2E}
\definecolor{LightGrey}{HTML}{666666}
\colorlet{heading}{Sepia}
\colorlet{accent}{Mulberry}
\colorlet{emphasis}{SlateGrey}
\colorlet{body}{LightGrey}
\renewcommand{\itemmarker}{{\small\textbullet}}
\renewcommand{\ratingmarker}{\faCircle}
\usepackage[hidelinks]{hyperref}
\begin{document}
\begin{fullwidth}
\cvsection{References}
\begin{minipage}[t]{0.5\textwidth}
\begin{flushleft}
\cvref{test}{test}{\href {mailto:test}{test}}{test}
\end{flushleft}
\end{minipage}
\begin{minipage}[t]{0.5\textwidth}
\begin{center}
\cvref{test}{test}{\href {mailto:test}{test}}{test}
\end{center}
\end{minipage}
\begin{minipage}[t]{0.5\textwidth}
\begin{flushright}
\cvref{test}{test}{\href {mailto:test}{test}}{test}
\end{flushright}
\end{minipage}
\end{fullwidth}
\medskip
\end{document}
Any guidance would be greatly appreciated. I tried a tabular environment, but it won't let me use the cvref function within the cells.
Using minipages, I get the following result:
your fullwidth environment does not adjust the \textwidth. However you can use .33\linewidth to automatically get the width of the minipages
the cvref macro internally used a description, that's why it does not obey your attempts to center or left align. You can use the following redefinition to get a similar result, which will obey your alignment:
\PassOptionsToPackage{dvipsnames}{xcolor}
\documentclass[10pt,letterpaper]{test}
\geometry{left=1cm,right=9cm,marginparwidth=6.8cm,marginparsep=1.2cm,top=1.25cm,bottom=1.25cm,footskip=2\baselineskip}
\usepackage[T1]{fontenc}
\usepackage[utf8]{inputenc}
\usepackage[default]{lato}
\definecolor{Mulberry}{HTML}{72243D}
\definecolor{SlateGrey}{HTML}{2E2E2E}
\definecolor{LightGrey}{HTML}{666666}
\colorlet{heading}{Sepia}
\colorlet{accent}{Mulberry}
\colorlet{emphasis}{SlateGrey}
\colorlet{body}{LightGrey}
\renewcommand{\itemmarker}{{\small\textbullet}}
\renewcommand{\ratingmarker}{\faCircle}
\usepackage[hidelinks]{hyperref}
\renewcommand{\cvref}[4]{%
\smallskip
\textcolor{emphasis}{\textbf{#1}}\par
\smallskip\normalsize
\ifstrequal{#2}{}{}{
\textbf{\color{accent}#2}\par
\smallskip}
% \begin{description}[font=\color{accent},style=multiline,leftmargin=1.25em]
{\color{accent}\small\normalfont\mailsymbol} #3\par
{\color{accent}\small\normalfont\phonesymbol} #4\par
% \end{description}
\medskip
% \medskip
}
\begin{document}
\begin{fullwidth}
\cvsection{References}
\begin{minipage}[t]{0.3\linewidth}
\cvref{test}{test}{\href {mailto:test}{test}}{test}
\end{minipage}
\begin{minipage}[t]{0.3\linewidth}
\centering
\cvref{test}{test}{\href {mailto:test}{test}}{test}
\end{minipage}
\begin{minipage}[t]{0.3\linewidth}
\raggedleft
\cvref{test}{test}{\href {mailto:test}{test}}{test}
\end{minipage}
\end{fullwidth}
\end{document}

Using directlua command inside tikzpicture (pgf-pie) causes image not to render

Using \directlua command inside tikzpicture (pgf-pie) causes image not to render:
\documentclass[margin=5mm,preview]{standalone}
\usepackage{pgf-pie}
\begin{document}
\begin{tikzpicture} % works
\pie[radius=2, rotate=100, sum=auto]
{
3/test , 2/two , 3/three , 4/four
}
\end{tikzpicture}
\begin{tikzpicture} % does not work
\pie[radius=2, rotate=100, sum=auto]
{
\directlua{tex.sprint("3/test , 2/two , 3/three , 4/four")}
}
\end{tikzpicture}
\end{document}
The result can be view here
How gets \directlua expanded? And what do I need to change to create tikzpicture pie charts with variables from lua?

How to change Warsaw theme's frametitle height in Latex?

I am making some changes in Warsaw theme. I want to increase the height of the frametitle. I have used the following code, because I did not want the navigation part from the the headline. Now I need to increase the height of the frame title without increasing the font size. Please see the commands I used:
\setbeamertemplate{headline}{%
\leavevmode%
\hbox{%
\begin{beamercolorbox}[wd=\paperwidth,ht=0 ex,dp=0ex]{palette quaternary}%
\end{beamercolorbox}%
}
}
You could adjust the frametitle template. I marked the line to change with % <-
\documentclass{beamer}
\usetheme{Warsaw}
\setbeamertemplate{headline}{}
\makeatletter
\setbeamertemplate{frametitle}{%
\nointerlineskip%
\vskip-2pt%
\hbox{\leavevmode
\advance\beamer#leftmargin by -12bp%
\advance\beamer#rightmargin by -12bp%
\beamer#tempdim=\textwidth%
\advance\beamer#tempdim by \beamer#leftmargin%
\advance\beamer#tempdim by \beamer#rightmargin%
\hskip-\Gm#lmargin\hbox{%
\setbox\beamer#tempbox=\hbox{\begin{minipage}[b]{\paperwidth}%
\vbox{}\vskip-.75ex%
\vspace{2cm}% <- change here to whatever you want
\leftskip0.3cm%
\rightskip0.3cm plus1fil\leavevmode
\usebeamercolor[fg]{frametitle}\usebeamerfont{frametitle}\strut\insertframetitle\strut\par%
\ifx\insertframesubtitle\#empty\else%
{\usebeamerfont*{framesubtitle}{\usebeamercolor[fg]{framesubtitle}\insertframesubtitle}\strut\par}%
\fi%
\nointerlineskip
\vbox{}%
\end{minipage}}%
\beamer#tempdim=\ht\beamer#tempbox%
\advance\beamer#tempdim by 2pt%
\begin{pgfpicture}{0pt}{0pt}{\paperwidth}{\beamer#tempdim}
\usebeamercolor{frametitle right}
\pgfpathrectangle{\pgfpointorigin}{\pgfpoint{\paperwidth}{\beamer#tempdim}}
\pgfusepath{clip}
\pgftext[left,base]{\pgfuseshading{beamer#frametitleshade}}
\end{pgfpicture}
\hskip-\paperwidth%
\box\beamer#tempbox%
}%
\hskip-\Gm#rmargin%
}%
\nointerlineskip
\vskip-0.2pt
\hbox to\textwidth{\hskip-\Gm#lmargin\pgfuseshading{beamer#topshade}\hskip-\Gm#rmargin}
\vskip-2pt
}
\makeatother
\begin{document}
\section{title}
\begin{frame}
\frametitle{title}
abc
\end{frame}
\end{document}

Centering cell entries in ctable

Is there an easy way to center the cell entries in this table. The confidence interval look alright, but the estimate itself seems left-justified in the cell.
\documentclass[14pt]{article}
\usepackage{ctable}
\usepackage{longtable}
\begin{document}
\ctable[ caption={compldich}, label=z, pos=!tbp, ]{lll} {} {\FL\multicolumn{1}{l}{Variable}&\multicolumn{1}{c}{Univariate}&\multicolumn{1}{c}{Multivariate}\NN
\ML
(Intercept)&&2.96 \NN
&&(2.189,3.73)\NN
\NN
Age&-0.011 &-0.01\NN
&(-0.017,-0.005)&(-0.017,-0.003)\NN
\NN
GenderFemale&0.142&0.143\NN
& (-0.146,0.431)& (-0.177,0.464)\NN
\NN
HISSA&-1.299 &-1.385 \NN
&(-1.608,-0.99)&(-1.71,-1.06)\NN
\NN
Ethan&-0.089 &-0.404\NN
&(-0.374,0.195)& (-0.722,-0.086)\NN
\FL
}
\end{document}
Shouldn't {lll} be {lcc} ?

Resources