我正在尝试创建一个数字变量(代码中称为nClusters),可以在R代码块和LaTeX中的knitr文档中使用。一个例子在下面的代码中。
在这里,我初始化并将数值变量nClusters分配给值7.稍后,在文档中,我在R代码块中调用它,这似乎工作正常。但是,然后我尝试在LaTeX部分(R代码块之外)调用它,这会导致问题:
\documentclass{article}
\usepackage{float, hyperref}
\usepackage[margin=1in]{geometry}
\usepackage{pgffor}
\begin{document}
<<options, echo=FALSE>>=
nClusters = 7 # I only want to define nClusters once
library(knitr)
opts_chunk$set(concordance=TRUE)
@
<<echo=FALSE,eval=TRUE,results='asis'>>=
# Here the call to nClusters works
for (i in 2:nClusters){
print(paste("This is number",i))
}
@
% Here the call to nClusters does not work
\begin{center}
\foreach \i in {2,3,...,nClusters} {
Hello \i\
}
\end{center}
\end{document}
当我编织这个时,我得到以下输出:
当输出应为:
在对变量的LaTeX调用中发生了差异,因为如果我在7中硬编码,那么它就可以工作。因此,我的问题是:是否可以在knitr中创建一个可以在R代码块和LaTeX部件中调用的全局变量?
答案 0 :(得分:0)
使用pgffor时,
echo 'test'; exit();
是以逗号分隔的值列表。任何东西都可以用作价值。如果您尝试使用以下代码,那么您的变量不会传递到脚本的LATEX部分:
public function handle($request, Closure $next)
{
if (!array_key_exists($request->segment(1), config('translatable.locales'))) {
// Store segments in array
$segments = $request->segments();
// Set the default language code as the first segment
$segments = array_prepend($segments, config('app.fallback_locale'));
// Redirect to the correct url
return redirect()->to(implode('/', $segments));
}
return $next($request);
}
你得到了
\foreach <variables> in {<list>} <commands>
这是一个以2,3开头并以C结尾的序列,我不知道在&#39; <&#39;
中打印出哪些字符?你产生完全相同的结果。要评估R chunk外部的变量,您需要使用\begin{center}
\foreach \i in {2,3,...,C} {
Hello \i\
}
[1] ”This is number 2” [1] ”This is number 3” [1] ”This is number 4” [1] ”This is number 5” [1] ”This is
number 6” [1] ”This is number 7”
Hello 2 Hello 3 Hello ? Hello ? Hello ? Hello ? Hello ? Hello ? Hello ? Hello ? Hello ? Hello ?
Hello ? Hello ? Hello ? Hello ? Hello ? Hello ? Hello ? Hello ? Hello ? Hello ? Hello ? Hello ?
Hello ? Hello ? Hello ? Hello ? Hello ? Hello ? Hello ? Hello ? Hello ? Hello ? Hello ? Hello ?
Hello ? Hello ? Hello ? Hello ? Hello ? Hello ? Hello ? Hello ? Hello ? Hello ? Hello ? Hello ?
Hello ? Hello ? Hello ? Hello ? Hello ? Hello ? Hello ? Hello ? Hello ? Hello ? Hello ? Hello ?
Hello ? Hello ? Hello Hello A Hello B Hello C
产生