Rmarkdown HTML-Zahlen

9

Weiß jemand, wie man die Zahlen in den Bildunterschriften für RMarkdown-Skript im HTML-Format nummeriert?

Bei PDF-Dokumenten wird in der Bildunterschrift etwa Folgendes angezeigt:

%Vor%

Die entsprechende Beschriftung für die HTML-Version sagt jedoch einfach

%Vor%

Dies macht die Querverweise nach Zahlen völlig unbrauchbar.

Meine RMD-Kopfzeilen sind wie folgt:

%Vor%     
Nicholas Hamilton 09.05.2016, 13:07
quelle

5 Antworten

3

Also, wenn jemand eine bessere Lösung hat, ist dies die Lösung, die ich gefunden habe, es gibt einige Fehler bei diesem Ansatz (wenn zB die Zahl / Tabellennummer von der Abschnittsnummer usw. abhängt), aber für das grundlegende HTML-Dokument funktioniert es.

Führen Sie irgendwo oben im Dokument Folgendes aus:

%Vor%

Wenn Sie während des Verlaufs Ihres Dokuments beispielsweise eine Figur zeichnen wollen:

%Vor%

Ersetze% code_% zu capFig in obigem, wenn du eine Tabellenbeschriftung möchtest.

    
Nicholas Hamilton 10.05.2016 23:03
quelle
2

Wir können pandoc-crossref verwenden, einen Filter, der eine Querverknüpfung von Zahlen, Tabellen und Abschnitten ermöglicht , und Gleichungen und funktioniert für alle Ausgabeformat. Der einfachste Weg besteht darin, cat nach jedem Diagramm die Zahlenbezeichnung (in Form von {#fig:figure_label} ) anzugeben, obwohl dies echo=FALSE und results='asis' erfordert. Dann können wir eine Zahl referenzieren, wie wir es nennen würden: [@fig:figure_label] erzeugt standardmäßig fig. figure_number .

Hier ist ein MWE:

%Vor%

was produziert (Entfernen der Grafiken

  

PLOT1

     

Abbildung 1: Dies ist die Handlung eins

     

Wie wir in Abb. 1 ... während Abb. 2 zeigt ...

     

PLOT2

     

Abbildung 2: Dies ist Diagramm zwei

Weitere Informationen zu Optionen und Anpassungen finden Sie in der pandoc-crossref-Readme .

Um pandoc-crossref zu installieren, vorausgesetzt, Sie haben eine Haskell-Installation:

%Vor%     
scoa 11.05.2016 10:27
quelle
0

Dieses Problem wurde mit Bookdown gelöst. Es ist noch nicht stabil, aber sicherlich einen Versuch wert.

    
mondano 11.05.2016 11:28
quelle
0

Captioner ist eine weitere Option (nicht getestet).

    
earcanal 19.09.2017 08:24
quelle
0

Ich löse Querverweise mit einer Lösung, die der von Nicholas oben beschriebenen ähnlich ist. Ich benutze BookDown für einige Projekte, aber ich finde das unangenehm für andere Projekte, wo ich einfach nur Querverweise haben möchte.

Ich benutze das Folgende, wenn ich ein Papier mit rmarkdown schreibe und ich möchte es im Standardformat für die Einreichung in einem Journal. Ich möchte am Ende eine Figurenlegende, dann Tische, dann habe ich die Tabellen und Zahlen. Während ich schreibe, habe ich nur eine ungefähre Vorstellung davon, auf welche Reihenfolge die Zahlen im Text verweisen werden. Ich möchte sie nur mit einem Textcode wie fig: foobar referenzieren und die Nummer im Text basierend auf Aussehen erhalten. Wenn ich mir die Liste der Figurlegenden anschaue, werde ich sehen, in welcher Reihenfolge die Legenden platziert werden und Legenden nach Bedarf verschieben.

Hier ist meine Struktur.

Ich habe ein R-Paket, in dem ich Dinge, die ich für Papiere benötige, wie verschiedene Bibliographien und Helfer-R-Funktionen, habe. In diesem Paket habe ich die folgende Funktion, die einige Variablen verwendet, die in der Rmd-Hauptumgebung definiert sind: .rmdenvir und .rmdctr.

%Vor%

Es setzt voraus, dass ich Dinge, auf die ich verweisen möchte, mit etwas wie cntname: foo benenne, zum Beispiel fig: foo. Es macht einen neuen Zähler für jeden einzelnen und ich kann neue Zähler bei Bedarf während des Schreibens erstellen.

In meiner Rmd-Hauptdatei habe ich einige Setup-Zeilen:

%Vor%

Im Text verwende ich das folgende

%Vor%

erhalten "Sie können sehen, was ich in Abbildung 1 zeigen möchte und Sie können es auch in den Tabellen 1 und A1 sehen." Obwohl die Zahlen möglicherweise nicht 1 sind; Die zu verwendende Nummer wird dynamisch bestimmt. Ich brauche keine spezielle Funktion, wenn ich zum ersten Mal auf eine Figur, einen Tisch oder was auch immer ich zähle. ref () ermittelt das, indem es prüft, ob das Label bereits existiert. Wenn nicht, weist es die nächste Nummer zu und gibt sie zurück. Sie müssen also nicht "Label" an einem Ort und "Ref" in einem anderen verwenden.

Im Laufe des Schreibens könnte ich entscheiden, dass Anhang A zu groß wird, und dass ich einige der Tabellen in einen Anhang B aufspalten werde. Alles, was ich tun muss, ist, das obige in

zu ändern %Vor%

Ich gebe einfach einen neuen Zählernamen 'tabappB' an und die Nummern dafür werden dynamisch bestimmt.

Am Ende meiner Rmd-Datei habe ich eine Figurenliste, die aussieht wie

%Vor%

Dann erscheinen meine Tabellen so

%Vor%

und dann die Zahlen so:

%Vor%

Anhang A ist eine Rmd-Datei, die als untergeordnetes Element enthalten ist. Es wird Tabellen wie

haben %Vor%

Ich muss das "A" hinzufügen, um Tabelle A1 zu erhalten, aber ich finde es einfacher, wenn R nicht zu viel nachdenkt, um meine Zähler zu kennzeichnen. Ich möchte nur, dass es die richtige Nummer zurückgibt.

Die Querverweise funktionieren für HTML, PDF / Latex oder Word. Ich würde gerne bei Latex-Lösungen bleiben, aber meine Co-Autoren verwenden Wort, also brauche ich eine Lösung, die mit Pandoc und Wort funktioniert. Manchmal möchte ich auch html oder eine andere Ausgabe und ich brauche eine Lösung, die für jede Ausgabe funktioniert, die mit rmarkdown funktioniert.

    
Eli Holmes 15.11.2017 02:59
quelle

Tags und Links