Как перейти к сноскам с активированными пакетами setspace и footmisc? - PullRequest
0 голосов
/ 23 октября 2018

Я только что заметил, что при нажатии ссылки в сноске в pdf документ переходит наверх вместо сноски.Расследование, почему я идентифицировал латексные пакеты setspace и footmisc, очевидно, вызывает ошибку.

К сожалению, мне очень нужны оба пакета.Первый для переключения между \onehalfspacing и \singlespacing, а второй для получения хороших висящих сносок.

Кто-нибудь знает обходной путь?

MWE

( Примечание: Попробуйте откомментировать закомментированные строки.)

---
title: "Untitled"
date: "October 23, 2018"
output: pdf_document
linkcolor: blue
header-includes:
# - \usepackage{setspace}
- \usepackage{fancyhdr}
- \usepackage{pdflscape}
- \usepackage{dcolumn}
- \usepackage{rotating, graphicx}
- \usepackage{floatpag}
- \usepackage{caption}
- \usepackage[export]{adjustbox}
- \usepackage{icomma}
- \usepackage{tabularx}
- \usepackage{lipsum}
- \usepackage{csquotes}
# - \usepackage[hang,flushmargin]{footmisc}
- \usepackage{amsmath}
- \usepackage{mathtools,extarrows}
- \usepackage{changepage}
---

\newpage
Lorem ipsum^[Lorem ipsum dolor sit amet, consetetur sadipscing elitr, sed diam nonumy eirmod tempor invidunt ut labore et dolore magna aliquyam erat, sed diam voluptua.] dolor sit amet, consetetur sadipscing elitr, sed diam nonumy eirmod tempor invidunt ut labore et dolore magna aliquyam erat, sed diam voluptua. 

Примечания:

> sessionInfo()
R version 3.5.1 (2018-07-02)
Platform: x86_64-w64-mingw32/x64 (64-bit)
Running under: Windows 7 x64 (build 7601) Service Pack 1

Matrix products: default

locale:
[1] LC_COLLATE=German_Switzerland.1252  LC_CTYPE=German_Switzerland.1252   
[3] LC_MONETARY=German_Switzerland.1252 LC_NUMERIC=C                       
[5] LC_TIME=English_United States.1252 

attached base packages:
[1] stats     graphics  grDevices utils     datasets  methods   base     

loaded via a namespace (and not attached):
 [1] compiler_3.5.1  backports_1.1.2 rprojroot_1.3-2 htmltools_0.3.6 tools_3.5.1    
 [6] yaml_2.2.0      Rcpp_0.12.19    rmarkdown_1.8   knitr_1.20      digest_0.6.18  
[11] evaluate_0.12  

1 Ответ

0 голосов
/ 21 ноября 2018

Я столкнулся с подобной проблемой (сноски не являются ссылками и, следовательно, больше не активируются при использовании footmisc).К сожалению, я не смог найти способ напрямую решить эту проблему в самом документе .Rmd.Вместо этого мне пришлось отредактировать шаблон Pandoc LaTeX, который поставляется с rmarkdown.

Как объясняет @Mico в этот ответ на сайте обмена стеками TeX / LaTeX, основная проблема заключается в том, что пакет LaTeX hyperref вызывается раньше footmisc , тогда как во избежание несовместимости между ними он должен быть наоборот.Если вы посмотрите на шаблон LaTeX по умолчанию, который использует rmarkdown, вы заметите, что hyperref называется способом до того, как header-includes из передней части YAML будут введены.Единственный обходной путь для этого, о котором я знаю, - это изменить шаблон LaTeX, то есть вставить строку \usepackage[hang,flushmargin]{footmisc} перед строкой, где вызывается гиперреф.

Чтобы сделать это, выполните следующие действия:

  1. Найдите исходный файл шаблона, который использует Pandoc, когда rmarkdown / knitr вызывает его.

    В системах Unix / Linux вы найдете исходный файл шаблона, вероятно, по пути ~/Library/R/3.5/library/rmarkdown/rmd/latex/ или /usr/lib/R/site-library/rmarkdown/rmd/latex/ (просто замените начало пути на то, что .libPaths() отображает в консоли R).

    По крайней мере в rmarkdown v1.10 папка выше содержит 4 различных файла шаблона LaTeX:

    • default-1.14.tex
    • default-1.15.2.tex
    • default-1.17.0.2.tex
    • default.tex


    default-1.17.0.2.tex представляетсяправильный выбор, если используется наполовину последняя версия Pandoc (она связана с rmarkdown и будет использоваться, если в вашей системе не будет найдена устаревшая версия Pandoc или только ее можно запустить; выполните rmarkdown::pandoc_version(), чтобы узнать, какая версия на самом деле используется).

    Сначала я попробовал default.tex но этооказалось довольно устаревшим и default-1.17.0.2.tex прекрасно работает.

  2. Поместите содержимое этого файла в новый template.tex (или как вы хотите его назвать)файл и вставьте свой код настройки footmisc перед вызовом hyperref пакета (строка 57).

  3. Укажите путь к новому файлу шаблона в поле ввода YAML под ключом output.pdf_document.template:

    ---
    output:
      pdf_document:
        template: 'path/to/template.tex'
    ---
    

Кстати: у меня не возникло проблем с пакетом setspace .Но я в моем случае все равно загружается до footmisc из-за установки linestretch в YAML (см. Шаблон для получения подробной информации о том, какие триггеры устанавливают пространство для загрузки и т. Д.).

...