Ich möchte eine Zeile (Spalte) highlighten, sofern sie speziellen Inhalt enthält, z.B. 'x'. Ich habe \xdef\remembercol{\pgfplotstablecol}% \xdef\rememberrow{\pgfplotstablerow}% expandiert korrekt nach Wie kann man das lösen? \documentclass[]{article} \usepackage{colortbl} \usepackage{pgfplotstable} \pgfplotsset{compat=newest} \pgfplotstableset{string type, col sep=comma, header=false} \pgfplotstableread[]{ a, b, c d, e, f g, x, i j, k, l }\mytable \def\literalx{x} \begin{document} \pgfplotstabletypeset[ postproc cell content/.code={% \def\temp{#1}% \ifx\temp\literalx \xdef\remembercol{\pgfplotstablecol}% \xdef\rememberrow{\pgfplotstablerow}% \fi }, %every nth row={\rememberrow}{before row=\rowcolor{orange}}, % WORKS NOT! ]{\mytable} \textbf{Works:} x is in row no.~\rememberrow\ and column no.~\remembercol. \end{document} gefragt 18 Aug '20, 15:49 cis |
Mit savebox und newcommand:
\documentclass[]{article} \usepackage{colortbl} \usepackage{pgfplotstable} \pgfplotsset{compat=newest} \pgfplotstableset{string type, col sep=comma, header=false} \pgfplotstableread[]{ a, b, c d, e, f g, x, i j, k, l }\mytable \colorlet{CellColor}{red} \colorlet{RowColor}{orange} \colorlet{ColColor}{pink} \def\literalx{x} %\def\remembercol{-1} %\def\rememberrow{-1} \begin{document} \pgfplotstableset{ myhighlights/.style={} } \newcommand\MyTable{% \pgfplotstabletypeset[myhighlights, postproc cell content/.code={% \def\temp{##1}% <--- ! '##', not '#' \ifx\temp\literalx \xdef\remembercol{\pgfplotstablecol}% \xdef\rememberrow{\pgfplotstablerow}% % Highlight Cell: \pgfkeysalso{ @cell content/.add={\cellcolor{CellColor}}{} }% \fi }, ]{\mytable}% } \newsavebox{\Mybox} \savebox{\Mybox}{\MyTable} \section{Raw Table} \usebox{\Mybox} \section{Read out row and column -- works} x is in row no.~\rememberrow\ and column no.~\remembercol. \section{Typeset highlighted Table -- works as well} \pgfplotstableset{myhighlights/.style={%% ======= % Highlight Row: every row no \rememberrow/.style={before row={\rowcolor{RowColor}}}, % Highlight Column: columns/\remembercol/.style={ column type/.add={>{\columncolor{ColColor}}}{} }, }%% ======= } \MyTable \end{document} beantwortet 18 Aug '20, 17:20 cis |