Skip to content

Commit

Permalink
rename the longstring example, and tweaked it
Browse files Browse the repository at this point in the history
  • Loading branch information
yihui committed Dec 10, 2013
1 parent 5fc1d16 commit 776563d
Show file tree
Hide file tree
Showing 2 changed files with 113 additions and 13 deletions.
21 changes: 8 additions & 13 deletions longstrings.rnw → 109-longstrings.Rnw
Original file line number Diff line number Diff line change
Expand Up @@ -7,7 +7,7 @@
\verbtocs{\Ob}|{|
\verbtocs{\Cb}|}|


\let\oldhlstr\hlstr
\renewcommand{\hlstr}[1]{%
\def\text{#1}%
\scancs{\result}{\Ob\text\Cb}%
Expand All @@ -27,28 +27,23 @@
\href{%
\resultRR%
}{%
\textcolor[rgb]{0.192,0.494,0.8}{%
\StrLeft{\resultR}{28}\ [...] %
\StrRight{\resultR}{28}%
\oldhlstr{%
\StrLeft{\resultR}{27}\ [...] %
\StrRight{\resultR}{27}%
}% end textcolor
} % href
}{% end then start else
\textcolor[rgb]{0.192,0.494,0.8}{#1}%
\oldhlstr{#1}%
}% end else
}% end renewcommand

<<setup,include=FALSE>>=
opts_chunk$set( tidy=TRUE,
tidy.opts=list(keep.blank.line=FALSE, width.cutoff=60)
)
@

\begin{document}

This example shows how to shorten a long string by redefining the \verb|\hlstr|
command. See \url{https://github.com/yihui/knitr/issues/681} for a discussion.

<<stuff,echo=TRUE,eval=FALSE>>=
<<stuff, eval=FALSE>>=
download.file("http://AFDF43iuuinfsdasdf--AFDF43iuuinfsdasdf--AFDF43iuuinfsdasdf--AFDF43iuuinfsdasdf--AFDF43iuuinfsdasdf--AFDF43iuuinfsdasdf--AFDF43iuuinfsdasdf--AFDF43iuuinfsdasdf", "infsdasdf--#@%$AFDF43i.zip")
@


\end{document}
105 changes: 105 additions & 0 deletions 109-longstrings.tex
Original file line number Diff line number Diff line change
@@ -0,0 +1,105 @@
\documentclass[12pt]{article}\usepackage[]{graphicx}\usepackage[]{color}
%% maxwidth is the original width if it is less than linewidth
%% otherwise use linewidth (to make sure the graphics do not exceed the margin)
\makeatletter
\def\maxwidth{ %
\ifdim\Gin@nat@width>\linewidth
\linewidth
\else
\Gin@nat@width
\fi
}
\makeatother

\definecolor{fgcolor}{rgb}{0.345, 0.345, 0.345}
\newcommand{\hlnum}[1]{\textcolor[rgb]{0.686,0.059,0.569}{#1}}%
\newcommand{\hlstr}[1]{\textcolor[rgb]{0.192,0.494,0.8}{#1}}%
\newcommand{\hlcom}[1]{\textcolor[rgb]{0.678,0.584,0.686}{\textit{#1}}}%
\newcommand{\hlopt}[1]{\textcolor[rgb]{0,0,0}{#1}}%
\newcommand{\hlstd}[1]{\textcolor[rgb]{0.345,0.345,0.345}{#1}}%
\newcommand{\hlkwa}[1]{\textcolor[rgb]{0.161,0.373,0.58}{\textbf{#1}}}%
\newcommand{\hlkwb}[1]{\textcolor[rgb]{0.69,0.353,0.396}{#1}}%
\newcommand{\hlkwc}[1]{\textcolor[rgb]{0.333,0.667,0.333}{#1}}%
\newcommand{\hlkwd}[1]{\textcolor[rgb]{0.737,0.353,0.396}{\textbf{#1}}}%

\usepackage{framed}
\makeatletter
\newenvironment{kframe}{%
\def\at@end@of@kframe{}%
\ifinner\ifhmode%
\def\at@end@of@kframe{\end{minipage}}%
\begin{minipage}{\columnwidth}%
\fi\fi%
\def\FrameCommand##1{\hskip\@totalleftmargin \hskip-\fboxsep
\colorbox{shadecolor}{##1}\hskip-\fboxsep
% There is no \\@totalrightmargin, so:
\hskip-\linewidth \hskip-\@totalleftmargin \hskip\columnwidth}%
\MakeFramed {\advance\hsize-\width
\@totalleftmargin\z@ \linewidth\hsize
\@setminipage}}%
{\par\unskip\endMakeFramed%
\at@end@of@kframe}
\makeatother

\definecolor{shadecolor}{rgb}{.97, .97, .97}
\definecolor{messagecolor}{rgb}{0, 0, 0}
\definecolor{warningcolor}{rgb}{1, 0, 1}
\definecolor{errorcolor}{rgb}{1, 0, 0}
\newenvironment{knitrout}{}{} % an empty environment to be redefined in TeX

\usepackage{alltt}
\usepackage[margin=1in]{geometry}

\usepackage{xstring,etoolbox,hyperref}
% the following, along with \def\text{#1} and scancs below
% convert the string to verbatim-style tokens
\verbtocs{\Ob}|{|
\verbtocs{\Cb}|}|

\let\oldhlstr\hlstr
\renewcommand{\hlstr}[1]{%
\def\text{#1}%
\scancs{\result}{\Ob\text\Cb}%
% remove braces
\StrGobbleLeft{\result}{1}[\resultL]%
\StrGobbleRight{\resultL}{1}[\resultR]%
% and quotes
\StrGobbleLeft{\resultR}{1}[\resultLL]%
\StrGobbleRight{\resultLL}{1}[\resultRR]%
\StrLen{\resultR}[\mystrlen]%
\StrCount{\resultRR}{\space}[\mynspaces]%
\ifboolexpr{%
test {\ifnumcomp{\mystrlen}{>}{60}}
and
test{\ifnumcomp{\mynspaces}{=}{0}}
}{%
\href{%
\resultRR%
}{%
\oldhlstr{%
\StrLeft{\resultR}{27}\ [...] %
\StrRight{\resultR}{27}%
}% end textcolor
} % href
}{% end then start else
\oldhlstr{#1}%
}% end else
}% end renewcommand
\IfFileExists{upquote.sty}{\usepackage{upquote}}{}

\begin{document}

This example shows how to shorten a long string by redefining the \verb|\hlstr|
command. See \url{https://github.com/yihui/knitr/issues/681} for a discussion.

\begin{knitrout}
\definecolor{shadecolor}{rgb}{0.969, 0.969, 0.969}\color{fgcolor}\begin{kframe}
\begin{alltt}
\hlkwd{download.file}\hlstd{(}\hlstr{"http://AFDF43iuuinfsdasdf--AFDF43iuuinfsdasdf--AFDF43iuuinfsdasdf--AFDF43iuuinfsdasdf--AFDF43iuuinfsdasdf--AFDF43iuuinfsdasdf--AFDF43iuuinfsdasdf--AFDF43iuuinfsdasdf"}\hlstd{,}
\hlstr{"infsdasdf--#@%$AFDF43i.zip"}\hlstd{)}
\end{alltt}
\end{kframe}
\end{knitrout}


\end{document}

0 comments on commit 776563d

Please sign in to comment.