从闪亮的应用程序创建 pdf 时,knitr 找不到 pdflatex
knitr cannot find pdflatex when creating pdf from shiny app
我正在尝试创建一个闪亮的应用程序,为用户提供从反应呈现的数据库中选择的罐头报告,然后为用户提供下载他们想要的报告的 pdf 的选项。我 运行 很难让 knitr 发现 pdflatex 来制作 pdf。我最初尝试使用 MikTex,但在其他帖子的建议下删除了 MikTex 并改为使用 tinytex。我遵循了此处的指导:https://yihui.org/tinytex/r/#debugging。闪亮的应用程序运行良好,但是当我单击下载按钮时,R 最初开始编译过程,但是一旦我在对话框按钮启动时单击保存,R 就会抛出此错误(我包括 Yuhui Xie 建议的详细输出 - the tinytex 包作者):
processing file: Reports.Rmd
|.................. | 25%
ordinary text without R code
|.................................... | 50%
label: unnamed-chunk-1
|...................................................... | 75%
ordinary text without R code
|........................................................................| 100%
label: unnamed-chunk-2
output file: Reports.knit.md
"C:/Program Files/RStudio/bin/pandoc/pandoc" +RTS -K512m -RTS Reports.utf8.md --to latex --from markdown+autolink_bare_uris+tex_math_single_backslash --output pandoc5ac42d2964ee.tex --lua-filter "C:\Users\SCMCKENZIE\Documents\R\win-library.0\rmarkdown\rmarkdown\lua\pagebreak.lua" --lua-filter "C:\Users\SCMCKENZIE\Documents\R\win-library.0\rmarkdown\rmarkdown\lua\latex-div.lua" --self-contained --highlight-style tango --pdf-engine xelatex --variable graphics --variable "geometry:margin=1in"
Warning: Error in : LaTeX failed to compile C:\Users\SCMCKE~1\AppData\Local\Temp\Rtmp0a6jRk\file5ac45df413ce.tex. See https://yihui.org/tinytex/r/#debugging for debugging tips.
[No stack trace available]
这是我的 SessionInfo()
R version 4.0.2 (2020-06-22)
Platform: x86_64-w64-mingw32/x64 (64-bit)
Running under: Windows 10 x64 (build 19041)
Matrix products: default
locale:
[1] LC_COLLATE=English_United States.1252 LC_CTYPE=English_United States.1252
[3] LC_MONETARY=English_United States.1252 LC_NUMERIC=C
[5] LC_TIME=English_United States.1252
attached base packages:
[1] stats graphics grDevices utils datasets methods base
other attached packages:
[1] plyr_1.8.6 rmarkdown_2.6 knitr_1.29
[4] tmap_3.3 rgeos_0.5-3 sp_1.4-1
[7] sf_0.9-7 xtable_1.8-4 readr_1.4.0
[10] shinydashboard_0.7.1 odbc_1.2.3 DBI_1.1.0
[13] shiny_1.5.0
loaded via a namespace (and not attached):
[1] Rcpp_1.0.5 lattice_0.20-41 png_0.1-7 class_7.3-17
[5] digest_0.6.25 mime_0.9 R6_2.4.1 evaluate_0.14
[9] e1071_1.7-3 pillar_1.4.6 rlang_0.4.7 rstudioapi_0.11
[13] raster_3.3-13 blob_1.2.1 stringr_1.4.0 htmlwidgets_1.5.1
[17] bit_1.1-15.2 tinytex_0.29 compiler_4.0.2 httpuv_1.5.4
[21] xfun_0.20 pkgconfig_2.0.3 tmaptools_3.1-1 base64enc_0.1-3
[25] htmltools_0.5.0 tidyselect_1.1.0 tibble_3.0.3 codetools_0.2-16
[29] XML_3.99-0.4 viridisLite_0.3.0 crayon_1.3.4 dplyr_1.0.0
[33] later_1.1.0.1 grid_4.0.2 jsonlite_1.7.0 lwgeom_0.2-5
[37] lifecycle_0.2.0 magrittr_1.5 units_0.6-7 KernSmooth_2.23-17
[41] stringi_1.4.6 promises_1.1.1 leafsync_0.1.0 leaflet_2.0.4.1
[45] ellipsis_0.3.1 generics_0.0.2 vctrs_0.3.2 RColorBrewer_1.1-2
[49] tools_4.0.2 dichromat_2.0-0 bit64_0.9-7 leafem_0.1.3
[53] glue_1.4.1 purrr_0.3.4 hms_0.5.3 crosstalk_1.1.0.1
[57] abind_1.4-5 parallel_4.0.2 fastmap_1.0.1 yaml_2.2.1
[61] stars_0.5-1 classInt_0.4-3
我已确保在 RStudio 中选择了我的全局选项以使用 knitr 和 pdflatex。 Sys.which('pdflatex')
给我:
pdflatex
"C:\Users\SCMCKE~1\AppData\Roaming\TinyTeX\bin\win32\pdflatex.exe"
tinytex::tlmgr_conf()
给我:
tlmgr conf
=========================== version information ==========================
tlmgr revision 57424 (2021-01-15 03:30:58 +0100)
tlmgr using installation: C:/Users/SCMCKENZIE/AppData/Roaming/TinyTeX
TeX Live (https://tug.org/texlive) version 2020
==================== executables found by searching PATH =================
PATH: C:\Users\SCMCKE~1\AppData\Roaming\TinyTeX\tlpkg\tlperl\bin;C:\Users\SCMCKE~1\AppData\Roaming\TinyTeX\bin\win32;C:\rtools40\usr\bin;C:\Program Files\R\R-4.0.3\bin\x64;C:\Program Files\Common Files\Oracle\Java\javapath;C:\Program Files (x86)\Common Files\Oracle\Java\javapath;C:\Program Files\Microsoft MPI\Bin\;C:\Windows\system32;C:\Windows;C:\Windows\System32\Wbem;C:\Windows\System32\WindowsPowerShell\v1.0\;C:\Windows\System32\OpenSSH\;C:\Program Files (x86)\NVIDIA Corporation\PhysX\Common;C:\Program Files (x86)\Microsoft SQL Server0\DTS\Binn\;C:\Program Files (x86)\Microsoft SQL Server0\Tools\Binn\;C:\Program Files\Microsoft SQL Server0\Tools\Binn\;C:\Program Files\Microsoft SQL Server0\DTS\Binn\;C:\Program Files\Microsoft SQL Server\Client SDK\ODBC0\Tools\Binn\;C:\Program Files\Microsoft SQL Server0\Tools\Binn\;C:\WINDOWS\system32;C:\WINDOWS;C:\WINDOWS\System32\Wbem;C:\WINDOWS\System32\WindowsPowerShell\v1.0\;C:\WINDOWS\System32\OpenSSH\;C:\Users\SCMCKENZIE\AppData\Roaming\TinyTeX\bin\win32;C:\Users\SCMCKENZIE\AppData\Local\Microsoft\WindowsApps;C:\Users\SCMCKENZIE\AppData\Local\Programs\MiKTeX\miktex\bin\x64
dvipdfmx: C:/Users/SCMCKE~1/AppData/Roaming/TinyTeX/bin/win32/dvipdfmx.EXE
dvips: C:/Users/SCMCKE~1/AppData/Roaming/TinyTeX/bin/win32/dvips.EXE
fmtutil: C:/Users/SCMCKE~1/AppData/Roaming/TinyTeX/bin/win32/fmtutil.EXE
kpsewhich: C:/Users/SCMCKE~1/AppData/Roaming/TinyTeX/bin/win32/kpsewhich.EXE
luatex: C:/Users/SCMCKE~1/AppData/Roaming/TinyTeX/bin/win32/luatex.EXE
mktexpk: C:/Users/SCMCKE~1/AppData/Roaming/TinyTeX/bin/win32/mktexpk.EXE
pdftex: C:/Users/SCMCKE~1/AppData/Roaming/TinyTeX/bin/win32/pdftex.EXE
tex: C:/Users/SCMCKE~1/AppData/Roaming/TinyTeX/bin/win32/tex.EXE
tlmgr: C:/Users/SCMCKE~1/AppData/Roaming/TinyTeX/bin/win32/tlmgr.BAT
updmap: C:/Users/SCMCKE~1/AppData/Roaming/TinyTeX/bin/win32/updmap.EXE
xetex: C:/Users/SCMCKE~1/AppData/Roaming/TinyTeX/bin/win32/xetex.EXE
=========================== active config files ==========================
config.ps: c:/Users/SCMCKENZIE/AppData/Roaming/TinyTeX/texmf-dist/dvips/config/config.ps
fmtutil.cnf: c:/Users/SCMCKENZIE/AppData/Roaming/TinyTeX/texmf-dist/web2c/fmtutil.cnf
mktex.cnf: c:/Users/SCMCKENZIE/AppData/Roaming/TinyTeX/texmf-dist/web2c/mktex.cnf
pdftexconfig.tex: c:/Users/SCMCKENZIE/AppData/Roaming/TinyTeX/texmf-dist/tex/generic/tex-ini-files/pdftexconfig.tex
texmf.cnf: c:/Users/SCMCKENZIE/AppData/Roaming/TinyTeX/texmf.cnf
texmf.cnf: c:/Users/SCMCKENZIE/AppData/Roaming/TinyTeX/texmf-dist/web2c/texmf.cnf
updmap.cfg: c:/Users/SCMCKENZIE/AppData/Roaming/TinyTeX/texmf-dist/web2c/updmap.cfg
============================= font map files =============================
kanjix.map: c:/Users/SCMCKENZIE/AppData/Roaming/TinyTeX/texmf-var/fonts/map/dvipdfmx/updmap/kanjix.map
pdftex.map: c:/Users/SCMCKENZIE/AppData/Roaming/TinyTeX/texmf-var/fonts/map/pdftex/updmap/pdftex.map
ps2pk.map: c:/Users/SCMCKENZIE/AppData/Roaming/TinyTeX/texmf-var/fonts/map/dvips/updmap/ps2pk.map
psfonts.map: c:/Users/SCMCKENZIE/AppData/Roaming/TinyTeX/texmf-var/fonts/map/dvips/updmap/psfonts.map
=========================== kpathsea variables ===========================
ENCFONTS=.;{C:/PROGRA~1/R/R-40~1.2/share/texmf,C:/Users/SCMCKENZIE/AppData/Roaming/TinyTeX/texmf-config,C:/Users/SCMCKENZIE/AppData/Roaming/TinyTeX/texmf-var,C:/Users/SCMCKENZIE/AppData/Roaming/TinyTeX/texmf-local,!!C:/Users/SCMCKENZIE/AppData/Roaming/TinyTeX/texmf-local,!!C:/Users/SCMCKENZIE/AppData/Roaming/TinyTeX/texmf-config,!!C:/Users/SCMCKENZIE/AppData/Roaming/TinyTeX/texmf-var,!!C:/Users/SCMCKENZIE/AppData/Roaming/TinyTeX/texmf-dist}/fonts/enc//
SYSTEXMF=C:/Users/SCMCKENZIE/AppData/Roaming/TinyTeX/texmf-var;C:/Users/SCMCKENZIE/AppData/Roaming/TinyTeX/texmf-local;C:/Users/SCMCKENZIE/AppData/Roaming/TinyTeX/texmf-dist
TEXCONFIG={C:/PROGRA~1/R/R-40~1.2/share/texmf,C:/Users/SCMCKENZIE/AppData/Roaming/TinyTeX/texmf-config,C:/Users/SCMCKENZIE/AppData/Roaming/TinyTeX/texmf-var,C:/Users/SCMCKENZIE/AppData/Roaming/TinyTeX/texmf-local,!!C:/Users/SCMCKENZIE/AppData/Roaming/TinyTeX/texmf-local,!!C:/Users/SCMCKENZIE/AppData/Roaming/TinyTeX/texmf-config,!!C:/Users/SCMCKENZIE/AppData/Roaming/TinyTeX/texmf-var,!!C:/Users/SCMCKENZIE/AppData/Roaming/TinyTeX/texmf-dist}/dvips//
TEXFONTMAPS=.;{C:/PROGRA~1/R/R-40~1.2/share/texmf,C:/Users/SCMCKENZIE/AppData/Roaming/TinyTeX/texmf-config,C:/Users/SCMCKENZIE/AppData/Roaming/TinyTeX/texmf-var,C:/Users/SCMCKENZIE/AppData/Roaming/TinyTeX/texmf-local,!!C:/Users/SCMCKENZIE/AppData/Roaming/TinyTeX/texmf-local,!!C:/Users/SCMCKENZIE/AppData/Roaming/TinyTeX/texmf-config,!!C:/Users/SCMCKENZIE/AppData/Roaming/TinyTeX/texmf-var,!!C:/Users/SCMCKENZIE/AppData/Roaming/TinyTeX/texmf-dist}/fonts/map/{kpsewhich,pdftex,dvips,}//
TEXMF={C:/PROGRA~1/R/R-40~1.2/share/texmf,C:/Users/SCMCKENZIE/AppData/Roaming/TinyTeX/texmf-config,C:/Users/SCMCKENZIE/AppData/Roaming/TinyTeX/texmf-var,C:/Users/SCMCKENZIE/AppData/Roaming/TinyTeX/texmf-local,!!C:/Users/SCMCKENZIE/AppData/Roaming/TinyTeX/texmf-local,!!C:/Users/SCMCKENZIE/AppData/Roaming/TinyTeX/texmf-config,!!C:/Users/SCMCKENZIE/AppData/Roaming/TinyTeX/texmf-var,!!C:/Users/SCMCKENZIE/AppData/Roaming/TinyTeX/texmf-dist}
TEXMFCONFIG=C:/Users/SCMCKENZIE/AppData/Roaming/TinyTeX/texmf-config
TEXMFDBS={!!C:/Users/SCMCKENZIE/AppData/Roaming/TinyTeX/texmf-local,!!C:/Users/SCMCKENZIE/AppData/Roaming/TinyTeX/texmf-config,!!C:/Users/SCMCKENZIE/AppData/Roaming/TinyTeX/texmf-var,!!C:/Users/SCMCKENZIE/AppData/Roaming/TinyTeX/texmf-dist}
TEXMFDIST=C:/Users/SCMCKENZIE/AppData/Roaming/TinyTeX/texmf-dist
TEXMFHOME=C:/Users/SCMCKENZIE/AppData/Roaming/TinyTeX/texmf-local
TEXMFLOCAL=C:/Users/SCMCKENZIE/AppData/Roaming/TinyTeX/texmf-local
TEXMFMAIN=C:/Users/SCMCKENZIE/AppData/Roaming/TinyTeX/texmf-dist
TEXMFSYSCONFIG=C:/Users/SCMCKENZIE/AppData/Roaming/TinyTeX/texmf-config
TEXMFSYSVAR=C:/Users/SCMCKENZIE/AppData/Roaming/TinyTeX/texmf-var
TEXMFVAR=C:/Users/SCMCKENZIE/AppData/Roaming/TinyTeX/texmf-var
TEXPSHEADERS=.;{C:/PROGRA~1/R/R-40~1.2/share/texmf,C:/Users/SCMCKENZIE/AppData/Roaming/TinyTeX/texmf-config,C:/Users/SCMCKENZIE/AppData/Roaming/TinyTeX/texmf-var,C:/Users/SCMCKENZIE/AppData/Roaming/TinyTeX/texmf-local,!!C:/Users/SCMCKENZIE/AppData/Roaming/TinyTeX/texmf-local,!!C:/Users/SCMCKENZIE/AppData/Roaming/TinyTeX/texmf-config,!!C:/Users/SCMCKENZIE/AppData/Roaming/TinyTeX/texmf-var,!!C:/Users/SCMCKENZIE/AppData/Roaming/TinyTeX/texmf-dist}/{dvips,fonts/{enc,type1,type42,type3}}//
VARTEXFONTS=C:/Users/SCMCKENZIE/AppData/Roaming/TinyTeX/texmf-var/fonts
WEB2C={C:/PROGRA~1/R/R-40~1.2/share/texmf,C:/Users/SCMCKENZIE/AppData/Roaming/TinyTeX/texmf-config,C:/Users/SCMCKENZIE/AppData/Roaming/TinyTeX/texmf-var,C:/Users/SCMCKENZIE/AppData/Roaming/TinyTeX/texmf-local,!!C:/Users/SCMCKENZIE/AppData/Roaming/TinyTeX/texmf-local,!!C:/Users/SCMCKENZIE/AppData/Roaming/TinyTeX/texmf-config,!!C:/Users/SCMCKENZIE/AppData/Roaming/TinyTeX/texmf-var,!!C:/Users/SCMCKENZIE/AppData/Roaming/TinyTeX/texmf-dist}/web2c
==== kpathsea variables from environment only (ok if no output here) ====
如果这是我的编码问题,下面是一个可重现的 R 脚本:
##Loading Necessary Packages
library(shiny)
library(shinydashboard)
library(rmarkdown)
library(knitr)
library(plyr)
##Getting data for reproducibility
data("iris")
data("airquality")
names(airquality)[5]<-"Species"#To allow for using the same plyr code in server function on both data sets
####Creating Shiny App####
##User Interface
ui<-dashboardPage(
dashboardHeader(title="FAKE SHINY APPLICATION"),
dashboardSidebar(
sidebarMenu(tabName="REPORTS",
menuItem("OPTIONS", tabName = "SOME MENU OPTIONS",
radioButtons(inputId = "REPORT", label = "Select Something", choices = c("Iris", "AQ")),
downloadButton(outputId = "DWNLD", "Download Report")
)
)
),
dashboardBody(
tableOutput(outputId = "TABLE"),
plotOutput(outputId = "PLOT")
)
)
##Server Function##
server<-function(input, output){
##Reactive Plot##
output$PLOT<-renderPlot({
RPT<-list(Iris = iris, AQ = airquality)
DF<-RPT[[input$REPORT]]
pairs(DF[,c(1:4)])})
##Reactive Table##
output$TABLE<-renderTable({
RPT<-list(Iris = iris, AQ = airquality)
DF<-RPT[[input$REPORT]]
rpt_tbl<-ddply(DF, "Species", colwise(mean))
xtable(rpt_tbl)
})
##Download As PDF##
output$DWNLD<-downloadHandler(
filename=paste(input$REPORT, "pdf", sep="."),
content<-function(file){
RPT<-list(iris, airquality)
names(RPT)<-c("Iris", "AQ")
tmp<-file.path(tempdir(), "Reports.Rmd")
file.copy(paste(getwd(),"Reports.Rmd", sep="/"), tmp, overwrite=TRUE)
params<-list(DF
rmarkdown::render(tmp, output_file = file,
params = params,
envir = new.env(parent = globalenv()
))#End render
}
)
}
##Launch Shiny App##
shinyApp(ui=ui, server = server)
这里是保存为 Reports.Rmd:
的 Rmarkdown 文档的脚本
---
title: "FAKE REPORT"
output: pdf_document
params:
DF: NA
---
Fake Report Output
```{R}
rpt_tbl<-ddply(params$DF, "Species", colwise(mean))
xtable(rpt_tbl)
```
More Fake Output
```{R}
pairs(params$DF[,c(1:4)])
```
我搜索了 Stack Overflow 和 RStudio 的答案,但没有发现任何似乎是我的问题。我的一部分想知道这是否是平台问题。任何帮助将非常感激。非常感谢。
小心,
-肖恩
经过大量搜索和测试后,我发现问题不在于 tinytex 或 pdflatex,而是我对 rmarkdown::render()
的调用导致我在 GitHub [=16= 上找到了这个答案].显然,当在 downloadHandler()
中调用 rmarkdown::render()
时,您不应在 render()
中指定 output_file 参数,而是需要在渲染后重命名文件。
这是正确的代码(只需替换我原来问题中脚本中对 downloadHandler()
的调用即可。
output$DWNLD<-downloadHandler(
filename=paste0(input$REPORT, ".pdf"),
content<-function(file){
RPT<-list(iris, airquality)
names(RPT)<-c("Iris", "AQ")
tmp <- file.path(tempdir(), "Reports.Rmd", fsep="\")
file.copy("F:/Apps/DNR_TRIS/Shiny_report_scripts/SQL_SCRIPTS/Reports.Rmd", tmp, overwrite = TRUE)
out<-RPT[[input$REPORT]]
params<-list(out)
names(params)<-"DF"
out<-rmarkdown::render(tmp,
params = params,
envir = new.env(parent = globalenv()
))#End render
file.rename(out, file)
}
)
我正在尝试创建一个闪亮的应用程序,为用户提供从反应呈现的数据库中选择的罐头报告,然后为用户提供下载他们想要的报告的 pdf 的选项。我 运行 很难让 knitr 发现 pdflatex 来制作 pdf。我最初尝试使用 MikTex,但在其他帖子的建议下删除了 MikTex 并改为使用 tinytex。我遵循了此处的指导:https://yihui.org/tinytex/r/#debugging。闪亮的应用程序运行良好,但是当我单击下载按钮时,R 最初开始编译过程,但是一旦我在对话框按钮启动时单击保存,R 就会抛出此错误(我包括 Yuhui Xie 建议的详细输出 - the tinytex 包作者):
processing file: Reports.Rmd
|.................. | 25%
ordinary text without R code
|.................................... | 50%
label: unnamed-chunk-1
|...................................................... | 75%
ordinary text without R code
|........................................................................| 100%
label: unnamed-chunk-2
output file: Reports.knit.md
"C:/Program Files/RStudio/bin/pandoc/pandoc" +RTS -K512m -RTS Reports.utf8.md --to latex --from markdown+autolink_bare_uris+tex_math_single_backslash --output pandoc5ac42d2964ee.tex --lua-filter "C:\Users\SCMCKENZIE\Documents\R\win-library.0\rmarkdown\rmarkdown\lua\pagebreak.lua" --lua-filter "C:\Users\SCMCKENZIE\Documents\R\win-library.0\rmarkdown\rmarkdown\lua\latex-div.lua" --self-contained --highlight-style tango --pdf-engine xelatex --variable graphics --variable "geometry:margin=1in"
Warning: Error in : LaTeX failed to compile C:\Users\SCMCKE~1\AppData\Local\Temp\Rtmp0a6jRk\file5ac45df413ce.tex. See https://yihui.org/tinytex/r/#debugging for debugging tips.
[No stack trace available]
这是我的 SessionInfo()
R version 4.0.2 (2020-06-22)
Platform: x86_64-w64-mingw32/x64 (64-bit)
Running under: Windows 10 x64 (build 19041)
Matrix products: default
locale:
[1] LC_COLLATE=English_United States.1252 LC_CTYPE=English_United States.1252
[3] LC_MONETARY=English_United States.1252 LC_NUMERIC=C
[5] LC_TIME=English_United States.1252
attached base packages:
[1] stats graphics grDevices utils datasets methods base
other attached packages:
[1] plyr_1.8.6 rmarkdown_2.6 knitr_1.29
[4] tmap_3.3 rgeos_0.5-3 sp_1.4-1
[7] sf_0.9-7 xtable_1.8-4 readr_1.4.0
[10] shinydashboard_0.7.1 odbc_1.2.3 DBI_1.1.0
[13] shiny_1.5.0
loaded via a namespace (and not attached):
[1] Rcpp_1.0.5 lattice_0.20-41 png_0.1-7 class_7.3-17
[5] digest_0.6.25 mime_0.9 R6_2.4.1 evaluate_0.14
[9] e1071_1.7-3 pillar_1.4.6 rlang_0.4.7 rstudioapi_0.11
[13] raster_3.3-13 blob_1.2.1 stringr_1.4.0 htmlwidgets_1.5.1
[17] bit_1.1-15.2 tinytex_0.29 compiler_4.0.2 httpuv_1.5.4
[21] xfun_0.20 pkgconfig_2.0.3 tmaptools_3.1-1 base64enc_0.1-3
[25] htmltools_0.5.0 tidyselect_1.1.0 tibble_3.0.3 codetools_0.2-16
[29] XML_3.99-0.4 viridisLite_0.3.0 crayon_1.3.4 dplyr_1.0.0
[33] later_1.1.0.1 grid_4.0.2 jsonlite_1.7.0 lwgeom_0.2-5
[37] lifecycle_0.2.0 magrittr_1.5 units_0.6-7 KernSmooth_2.23-17
[41] stringi_1.4.6 promises_1.1.1 leafsync_0.1.0 leaflet_2.0.4.1
[45] ellipsis_0.3.1 generics_0.0.2 vctrs_0.3.2 RColorBrewer_1.1-2
[49] tools_4.0.2 dichromat_2.0-0 bit64_0.9-7 leafem_0.1.3
[53] glue_1.4.1 purrr_0.3.4 hms_0.5.3 crosstalk_1.1.0.1
[57] abind_1.4-5 parallel_4.0.2 fastmap_1.0.1 yaml_2.2.1
[61] stars_0.5-1 classInt_0.4-3
我已确保在 RStudio 中选择了我的全局选项以使用 knitr 和 pdflatex。 Sys.which('pdflatex')
给我:
pdflatex
"C:\Users\SCMCKE~1\AppData\Roaming\TinyTeX\bin\win32\pdflatex.exe"
tinytex::tlmgr_conf()
给我:
tlmgr conf
=========================== version information ==========================
tlmgr revision 57424 (2021-01-15 03:30:58 +0100)
tlmgr using installation: C:/Users/SCMCKENZIE/AppData/Roaming/TinyTeX
TeX Live (https://tug.org/texlive) version 2020
==================== executables found by searching PATH =================
PATH: C:\Users\SCMCKE~1\AppData\Roaming\TinyTeX\tlpkg\tlperl\bin;C:\Users\SCMCKE~1\AppData\Roaming\TinyTeX\bin\win32;C:\rtools40\usr\bin;C:\Program Files\R\R-4.0.3\bin\x64;C:\Program Files\Common Files\Oracle\Java\javapath;C:\Program Files (x86)\Common Files\Oracle\Java\javapath;C:\Program Files\Microsoft MPI\Bin\;C:\Windows\system32;C:\Windows;C:\Windows\System32\Wbem;C:\Windows\System32\WindowsPowerShell\v1.0\;C:\Windows\System32\OpenSSH\;C:\Program Files (x86)\NVIDIA Corporation\PhysX\Common;C:\Program Files (x86)\Microsoft SQL Server0\DTS\Binn\;C:\Program Files (x86)\Microsoft SQL Server0\Tools\Binn\;C:\Program Files\Microsoft SQL Server0\Tools\Binn\;C:\Program Files\Microsoft SQL Server0\DTS\Binn\;C:\Program Files\Microsoft SQL Server\Client SDK\ODBC0\Tools\Binn\;C:\Program Files\Microsoft SQL Server0\Tools\Binn\;C:\WINDOWS\system32;C:\WINDOWS;C:\WINDOWS\System32\Wbem;C:\WINDOWS\System32\WindowsPowerShell\v1.0\;C:\WINDOWS\System32\OpenSSH\;C:\Users\SCMCKENZIE\AppData\Roaming\TinyTeX\bin\win32;C:\Users\SCMCKENZIE\AppData\Local\Microsoft\WindowsApps;C:\Users\SCMCKENZIE\AppData\Local\Programs\MiKTeX\miktex\bin\x64
dvipdfmx: C:/Users/SCMCKE~1/AppData/Roaming/TinyTeX/bin/win32/dvipdfmx.EXE
dvips: C:/Users/SCMCKE~1/AppData/Roaming/TinyTeX/bin/win32/dvips.EXE
fmtutil: C:/Users/SCMCKE~1/AppData/Roaming/TinyTeX/bin/win32/fmtutil.EXE
kpsewhich: C:/Users/SCMCKE~1/AppData/Roaming/TinyTeX/bin/win32/kpsewhich.EXE
luatex: C:/Users/SCMCKE~1/AppData/Roaming/TinyTeX/bin/win32/luatex.EXE
mktexpk: C:/Users/SCMCKE~1/AppData/Roaming/TinyTeX/bin/win32/mktexpk.EXE
pdftex: C:/Users/SCMCKE~1/AppData/Roaming/TinyTeX/bin/win32/pdftex.EXE
tex: C:/Users/SCMCKE~1/AppData/Roaming/TinyTeX/bin/win32/tex.EXE
tlmgr: C:/Users/SCMCKE~1/AppData/Roaming/TinyTeX/bin/win32/tlmgr.BAT
updmap: C:/Users/SCMCKE~1/AppData/Roaming/TinyTeX/bin/win32/updmap.EXE
xetex: C:/Users/SCMCKE~1/AppData/Roaming/TinyTeX/bin/win32/xetex.EXE
=========================== active config files ==========================
config.ps: c:/Users/SCMCKENZIE/AppData/Roaming/TinyTeX/texmf-dist/dvips/config/config.ps
fmtutil.cnf: c:/Users/SCMCKENZIE/AppData/Roaming/TinyTeX/texmf-dist/web2c/fmtutil.cnf
mktex.cnf: c:/Users/SCMCKENZIE/AppData/Roaming/TinyTeX/texmf-dist/web2c/mktex.cnf
pdftexconfig.tex: c:/Users/SCMCKENZIE/AppData/Roaming/TinyTeX/texmf-dist/tex/generic/tex-ini-files/pdftexconfig.tex
texmf.cnf: c:/Users/SCMCKENZIE/AppData/Roaming/TinyTeX/texmf.cnf
texmf.cnf: c:/Users/SCMCKENZIE/AppData/Roaming/TinyTeX/texmf-dist/web2c/texmf.cnf
updmap.cfg: c:/Users/SCMCKENZIE/AppData/Roaming/TinyTeX/texmf-dist/web2c/updmap.cfg
============================= font map files =============================
kanjix.map: c:/Users/SCMCKENZIE/AppData/Roaming/TinyTeX/texmf-var/fonts/map/dvipdfmx/updmap/kanjix.map
pdftex.map: c:/Users/SCMCKENZIE/AppData/Roaming/TinyTeX/texmf-var/fonts/map/pdftex/updmap/pdftex.map
ps2pk.map: c:/Users/SCMCKENZIE/AppData/Roaming/TinyTeX/texmf-var/fonts/map/dvips/updmap/ps2pk.map
psfonts.map: c:/Users/SCMCKENZIE/AppData/Roaming/TinyTeX/texmf-var/fonts/map/dvips/updmap/psfonts.map
=========================== kpathsea variables ===========================
ENCFONTS=.;{C:/PROGRA~1/R/R-40~1.2/share/texmf,C:/Users/SCMCKENZIE/AppData/Roaming/TinyTeX/texmf-config,C:/Users/SCMCKENZIE/AppData/Roaming/TinyTeX/texmf-var,C:/Users/SCMCKENZIE/AppData/Roaming/TinyTeX/texmf-local,!!C:/Users/SCMCKENZIE/AppData/Roaming/TinyTeX/texmf-local,!!C:/Users/SCMCKENZIE/AppData/Roaming/TinyTeX/texmf-config,!!C:/Users/SCMCKENZIE/AppData/Roaming/TinyTeX/texmf-var,!!C:/Users/SCMCKENZIE/AppData/Roaming/TinyTeX/texmf-dist}/fonts/enc//
SYSTEXMF=C:/Users/SCMCKENZIE/AppData/Roaming/TinyTeX/texmf-var;C:/Users/SCMCKENZIE/AppData/Roaming/TinyTeX/texmf-local;C:/Users/SCMCKENZIE/AppData/Roaming/TinyTeX/texmf-dist
TEXCONFIG={C:/PROGRA~1/R/R-40~1.2/share/texmf,C:/Users/SCMCKENZIE/AppData/Roaming/TinyTeX/texmf-config,C:/Users/SCMCKENZIE/AppData/Roaming/TinyTeX/texmf-var,C:/Users/SCMCKENZIE/AppData/Roaming/TinyTeX/texmf-local,!!C:/Users/SCMCKENZIE/AppData/Roaming/TinyTeX/texmf-local,!!C:/Users/SCMCKENZIE/AppData/Roaming/TinyTeX/texmf-config,!!C:/Users/SCMCKENZIE/AppData/Roaming/TinyTeX/texmf-var,!!C:/Users/SCMCKENZIE/AppData/Roaming/TinyTeX/texmf-dist}/dvips//
TEXFONTMAPS=.;{C:/PROGRA~1/R/R-40~1.2/share/texmf,C:/Users/SCMCKENZIE/AppData/Roaming/TinyTeX/texmf-config,C:/Users/SCMCKENZIE/AppData/Roaming/TinyTeX/texmf-var,C:/Users/SCMCKENZIE/AppData/Roaming/TinyTeX/texmf-local,!!C:/Users/SCMCKENZIE/AppData/Roaming/TinyTeX/texmf-local,!!C:/Users/SCMCKENZIE/AppData/Roaming/TinyTeX/texmf-config,!!C:/Users/SCMCKENZIE/AppData/Roaming/TinyTeX/texmf-var,!!C:/Users/SCMCKENZIE/AppData/Roaming/TinyTeX/texmf-dist}/fonts/map/{kpsewhich,pdftex,dvips,}//
TEXMF={C:/PROGRA~1/R/R-40~1.2/share/texmf,C:/Users/SCMCKENZIE/AppData/Roaming/TinyTeX/texmf-config,C:/Users/SCMCKENZIE/AppData/Roaming/TinyTeX/texmf-var,C:/Users/SCMCKENZIE/AppData/Roaming/TinyTeX/texmf-local,!!C:/Users/SCMCKENZIE/AppData/Roaming/TinyTeX/texmf-local,!!C:/Users/SCMCKENZIE/AppData/Roaming/TinyTeX/texmf-config,!!C:/Users/SCMCKENZIE/AppData/Roaming/TinyTeX/texmf-var,!!C:/Users/SCMCKENZIE/AppData/Roaming/TinyTeX/texmf-dist}
TEXMFCONFIG=C:/Users/SCMCKENZIE/AppData/Roaming/TinyTeX/texmf-config
TEXMFDBS={!!C:/Users/SCMCKENZIE/AppData/Roaming/TinyTeX/texmf-local,!!C:/Users/SCMCKENZIE/AppData/Roaming/TinyTeX/texmf-config,!!C:/Users/SCMCKENZIE/AppData/Roaming/TinyTeX/texmf-var,!!C:/Users/SCMCKENZIE/AppData/Roaming/TinyTeX/texmf-dist}
TEXMFDIST=C:/Users/SCMCKENZIE/AppData/Roaming/TinyTeX/texmf-dist
TEXMFHOME=C:/Users/SCMCKENZIE/AppData/Roaming/TinyTeX/texmf-local
TEXMFLOCAL=C:/Users/SCMCKENZIE/AppData/Roaming/TinyTeX/texmf-local
TEXMFMAIN=C:/Users/SCMCKENZIE/AppData/Roaming/TinyTeX/texmf-dist
TEXMFSYSCONFIG=C:/Users/SCMCKENZIE/AppData/Roaming/TinyTeX/texmf-config
TEXMFSYSVAR=C:/Users/SCMCKENZIE/AppData/Roaming/TinyTeX/texmf-var
TEXMFVAR=C:/Users/SCMCKENZIE/AppData/Roaming/TinyTeX/texmf-var
TEXPSHEADERS=.;{C:/PROGRA~1/R/R-40~1.2/share/texmf,C:/Users/SCMCKENZIE/AppData/Roaming/TinyTeX/texmf-config,C:/Users/SCMCKENZIE/AppData/Roaming/TinyTeX/texmf-var,C:/Users/SCMCKENZIE/AppData/Roaming/TinyTeX/texmf-local,!!C:/Users/SCMCKENZIE/AppData/Roaming/TinyTeX/texmf-local,!!C:/Users/SCMCKENZIE/AppData/Roaming/TinyTeX/texmf-config,!!C:/Users/SCMCKENZIE/AppData/Roaming/TinyTeX/texmf-var,!!C:/Users/SCMCKENZIE/AppData/Roaming/TinyTeX/texmf-dist}/{dvips,fonts/{enc,type1,type42,type3}}//
VARTEXFONTS=C:/Users/SCMCKENZIE/AppData/Roaming/TinyTeX/texmf-var/fonts
WEB2C={C:/PROGRA~1/R/R-40~1.2/share/texmf,C:/Users/SCMCKENZIE/AppData/Roaming/TinyTeX/texmf-config,C:/Users/SCMCKENZIE/AppData/Roaming/TinyTeX/texmf-var,C:/Users/SCMCKENZIE/AppData/Roaming/TinyTeX/texmf-local,!!C:/Users/SCMCKENZIE/AppData/Roaming/TinyTeX/texmf-local,!!C:/Users/SCMCKENZIE/AppData/Roaming/TinyTeX/texmf-config,!!C:/Users/SCMCKENZIE/AppData/Roaming/TinyTeX/texmf-var,!!C:/Users/SCMCKENZIE/AppData/Roaming/TinyTeX/texmf-dist}/web2c
==== kpathsea variables from environment only (ok if no output here) ====
如果这是我的编码问题,下面是一个可重现的 R 脚本:
##Loading Necessary Packages
library(shiny)
library(shinydashboard)
library(rmarkdown)
library(knitr)
library(plyr)
##Getting data for reproducibility
data("iris")
data("airquality")
names(airquality)[5]<-"Species"#To allow for using the same plyr code in server function on both data sets
####Creating Shiny App####
##User Interface
ui<-dashboardPage(
dashboardHeader(title="FAKE SHINY APPLICATION"),
dashboardSidebar(
sidebarMenu(tabName="REPORTS",
menuItem("OPTIONS", tabName = "SOME MENU OPTIONS",
radioButtons(inputId = "REPORT", label = "Select Something", choices = c("Iris", "AQ")),
downloadButton(outputId = "DWNLD", "Download Report")
)
)
),
dashboardBody(
tableOutput(outputId = "TABLE"),
plotOutput(outputId = "PLOT")
)
)
##Server Function##
server<-function(input, output){
##Reactive Plot##
output$PLOT<-renderPlot({
RPT<-list(Iris = iris, AQ = airquality)
DF<-RPT[[input$REPORT]]
pairs(DF[,c(1:4)])})
##Reactive Table##
output$TABLE<-renderTable({
RPT<-list(Iris = iris, AQ = airquality)
DF<-RPT[[input$REPORT]]
rpt_tbl<-ddply(DF, "Species", colwise(mean))
xtable(rpt_tbl)
})
##Download As PDF##
output$DWNLD<-downloadHandler(
filename=paste(input$REPORT, "pdf", sep="."),
content<-function(file){
RPT<-list(iris, airquality)
names(RPT)<-c("Iris", "AQ")
tmp<-file.path(tempdir(), "Reports.Rmd")
file.copy(paste(getwd(),"Reports.Rmd", sep="/"), tmp, overwrite=TRUE)
params<-list(DF
rmarkdown::render(tmp, output_file = file,
params = params,
envir = new.env(parent = globalenv()
))#End render
}
)
}
##Launch Shiny App##
shinyApp(ui=ui, server = server)
这里是保存为 Reports.Rmd:
的 Rmarkdown 文档的脚本---
title: "FAKE REPORT"
output: pdf_document
params:
DF: NA
---
Fake Report Output
```{R}
rpt_tbl<-ddply(params$DF, "Species", colwise(mean))
xtable(rpt_tbl)
```
More Fake Output
```{R}
pairs(params$DF[,c(1:4)])
```
我搜索了 Stack Overflow 和 RStudio 的答案,但没有发现任何似乎是我的问题。我的一部分想知道这是否是平台问题。任何帮助将非常感激。非常感谢。 小心, -肖恩
经过大量搜索和测试后,我发现问题不在于 tinytex 或 pdflatex,而是我对 rmarkdown::render()
的调用导致我在 GitHub [=16= 上找到了这个答案].显然,当在 downloadHandler()
中调用 rmarkdown::render()
时,您不应在 render()
中指定 output_file 参数,而是需要在渲染后重命名文件。
这是正确的代码(只需替换我原来问题中脚本中对 downloadHandler()
的调用即可。
output$DWNLD<-downloadHandler(
filename=paste0(input$REPORT, ".pdf"),
content<-function(file){
RPT<-list(iris, airquality)
names(RPT)<-c("Iris", "AQ")
tmp <- file.path(tempdir(), "Reports.Rmd", fsep="\")
file.copy("F:/Apps/DNR_TRIS/Shiny_report_scripts/SQL_SCRIPTS/Reports.Rmd", tmp, overwrite = TRUE)
out<-RPT[[input$REPORT]]
params<-list(out)
names(params)<-"DF"
out<-rmarkdown::render(tmp,
params = params,
envir = new.env(parent = globalenv()
))#End render
file.rename(out, file)
}
)