如何将以变量为名称的文本文件插入到 Latex 中?

如何将以变量为名称的文本文件插入到 Latex 中?

我需要在 LaTeX 中插入一个文本文件。但不同项目的文本文件名不同。所以我想将文本文件名定义为变量,并在插入文本时引用该变量

我尝试了下面的代码。但是

\VerbatimInput[baselinestretch=1,fontsize=\footnotesize]{{\myfile}}

不起作用。只有

\VerbatimInput[baselinestretch=1,fontsize=\footnotesize]{abc.txt} 

有人可以给我一些指导吗?

\usepackage{fancyvrb}
<<text, echo=F>>=
targetvar<-'abc'
textfile<-paste(targetvar,'.txt',sep='') 
@
\newcommand{\myfile}{\Sexpr{textfile}}
\VerbatimInput[baselinestretch=1,fontsize=\footnotesize]{{\myfile}}

答案1

您可以使用 Sweave 的results=tex代码块参数来构建一个 LaTeX\input{}指令,该指令将从 R 构建的任何文件路径插入文本。

这个 Sweave 文件(称之为"example.Rnw")...

\documentclass{article}
\usepackage{fancyvrb}
\begin{document}

<<text, echo=FALSE, results=tex>>=
targetvar<-'abc'
textfile <- paste(targetvar,'.txt',sep='')

cat("\\VerbatimInput[baselinestretch=1,fontsize=\\footnotesize]{",
    textfile,
    "}", sep="")
cat("\n")
@

\end{document}

"example.tex"...通过调用以下代码在 Sweave 运行后将生成此 LaTex 文件 ( ) Sweave("example.Rnw")

\documentclass{article}
\usepackage{fancyvrb}

\begin{document}

\VerbatimInput[baselinestretch=1,fontsize=\footnotesize]{abc.txt}

\end{document}

答案2

你能试一下吗\VerbatimInput[baselinestretch=1,fontsize=\footnotesize]{\myfile}

此 MWE 的工作原理如下:

\documentclass{article}
\usepackage{fancyvrb}

\newcommand{\myfile}{\jobname}

\begin{document}
\VerbatimInput[baselinestretch=1,fontsize=\footnotesize]{\myfile}

\end{document}

背景:您使用{{\myfile}}- 如果\myfiletest.txt,则要加载的文件名是{test.txt}- 包括括号。如果没有额外的括号,它可以正常工作。

相关内容