URLs auslesen und auflisten

Antwort erstellen


Diese Frage dient dazu, das automatisierte Versenden von Formularen durch Spam-Bots zu verhindern.
Smilies
:D :) :( :o :shock: :? 8) :lol: :-x :P :oops: :cry: :evil: :twisted: :roll: :wink: :!: :?: :idea: :arrow: :| :mrgreen:

BBCode ist eingeschaltet
[img] ist eingeschaltet
[flash] ist ausgeschaltet
[url] ist eingeschaltet
Smilies sind eingeschaltet

Die letzten Beiträge des Themas

Ich habe die Datenschutzerklärung gelesen und bin damit einverstanden.

   

Wenn du eine Datei oder mehrere Dateien anhängen möchtest, gib die Details unten ein.

Ansicht erweitern Die letzten Beiträge des Themas: URLs auslesen und auflisten

von Gast » Mi 31. Jan 2018, 12:04

Vorsicht! Wenn man so etwas (wozu auch schon das Beispiel des OP gehört) macht, kann man in den URLs nicht mehr alle Zeichen einfach so verwenden. Beispielsweise gehen % oder # dann nicht mehr. Da nützt auch url nichts. Ein richtiges Literaturverzeichnis hat solche Probleme nicht (wenn man gleichzeitig url verwendet).

von Gast » Mi 31. Jan 2018, 10:34

Wenn man in die .aux-Datei schreibt, kann man alle URLs erfassen, auch die, die nach \showallurls kommen.

Oben hatte ich übrigens ein % vergessen, das führe zu einem ungewollten Leerzeichen.
\documentclass[12pt,a4paper,oneside,DIV=calc,bcor=1cm,fleqn,footlines=1.2,headwidth=text,footwidth=text,listof=totoc]{scrartcl}
\usepackage[utf8]{inputenc}
\usepackage[T1]{fontenc}
\usepackage[]{textcomp}
\usepackage[ngerman]{babel}
\usepackage{blindtext}

\usepackage{url}


\usepackage{etoolbox}

\makeatletter
\let\na@urllist\@empty
\newcommand{\URLdateprint}[1]{%
   \url{#1}, abg. am \todayI.}
\newcommand{\URL}[1]{%
   \ifinlist{#1}{\na@urllist}
     {}
     {\listgadd{\na@urllist}{#1}%
      \write\@auxout{\listgadd{\string\na@saved@urllist}{#1}}}%
   \URLdateprint{#1}}

\newcommand*{\showallurls}{%
  \ifdefvoid{\na@saved@urllist}
    {\typeout{no URLs found, you may have to rerun LaTeX}}
    {\begin{itemize}
     \forlistloop{\item\URLdateprint}{\na@saved@urllist}%
     \end{itemize}}}
\makeatother

\newcommand{\leadingzero}[1]{\ifnum #1<10 0\the#1\else\the#1\fi}
\newcommand{\todayI}{\the\year-\leadingzero{\month}-\leadingzero{\day}}

\begin{document}
\blindtext\footnote{\URL{http://www.fachwerkhaus.de/ein-fachwerkhaus-sanieren.html}}
\blindtext\footnote{\URL{https://www.fachwerkhaussanierung.de/fachwerkkonstruktion}}
\blindtext\footnote{\URL{https://www.sanier.de/altbausanierung/baualtersstufen/fachwerkhaus}}
\blindtext\footnote{\URL{https://www.sanier.de/altbausanierung/baualtersstufen/fachwerkhaus}}

\blindtext\footnote{\URL{http://www.bauhandwerk.de/artikel/bhw_Gefache_dauerhaft_sanieren_2306390.html}}

\showallurls

\blindtext\footnote{\URL{http://example.edu}}
\end{document}

von Gast » Mi 31. Jan 2018, 09:40

Du solltest bedenken, dass es in den meisten (allen?) Fällen nicht ausreichend ist, allein eine URL im Literaturverzeichnis aufzulisten. Zu einer vollständigen Quellenangabe gehört mehr als nur eine URL. Du solltest übrigens wirklich die korrekten Abrufdaten angeben und nicht \todayI. Was wenn Du das Dokument später nochmal kompilierst? Rufst Du dann schnell noch alle Seiten auf, um sicherzugehen, das alles noch so ist, wie Du es vorgefunden hast?

Aber es geht natürlich. Hier die Holzhammerlösung, bei der nur URLs angezeigt werden, die vor \showallurls angegeben wurden. Empfehlen kann ich es nicht.
\documentclass[12pt,a4paper,oneside,DIV=calc,bcor=1cm,fleqn,footlines=1.2,headwidth=text,footwidth=text,listof=totoc]{scrartcl}
\usepackage[utf8]{inputenc}
\usepackage[T1]{fontenc}
\usepackage[]{textcomp}
\usepackage[ngerman]{babel}
\usepackage{blindtext}

\usepackage{url}


\usepackage{etoolbox}

\newcommand*{\urllist}{}
\newcommand{\URLprint}[1]{%
   \url{#1}, abg. am \todayI.}
\newcommand{\URL}[1]{%
   \ifinlist{#1}{\urllist}
     {}
     {\listgadd{\urllist}{#1}}
   \URLprint{#1}}

\newcommand*{\showallurls}{%
  \ifdefvoid{\urllist}
    {\typeout{no URLs given with \string\URL}}
    {\begin{itemize}
     \forlistloop{\item\URLprint}{\urllist}%
     \end{itemize}}}

\newcommand{\leadingzero}[1]{\ifnum #1<10 0\the#1\else\the#1\fi}
\newcommand{\todayI}{\the\year-\leadingzero{\month}-\leadingzero{\day}}



\begin{document}
\blindtext\footnote{\URL{http://www.fachwerkhaus.de/ein-fachwerkhaus-sanieren.html}}
\blindtext\footnote{\URL{https://www.fachwerkhaussanierung.de/fachwerkkonstruktion}}
\blindtext\footnote{\URL{https://www.sanier.de/altbausanierung/baualtersstufen/fachwerkhaus}}
\blindtext\footnote{\URL{https://www.sanier.de/altbausanierung/baualtersstufen/fachwerkhaus}}

\blindtext\footnote{\URL{http://www.bauhandwerk.de/artikel/bhw_Gefache_dauerhaft_sanieren_2306390.html}}

\showallurls
\end{document}
Da gibt es sicherlich noch Einiges zu verbessern und anzupassen, aber das Beispiel zeigt, dass es möglich ist.

Aber ich empfehle Dir trotzdem, stattdessen ein ordentliches und korrektes (Abrufdaten!) Literatur- und Quellenverzeichnis zu erstellen.

von 555nase » Mi 31. Jan 2018, 07:56

Guten Morgen, Johannes_B.

Ja prinzipiell schon. Ich dachte mir nur, sicher kann man ihm sagen "Lies alle Einträge, die zwischen \URL{} stehen und liste sie dort auf".

Dann kann ich mir die Arbeit sparen, ein Literaturverzeichnis zu schreiben.

von Johannes_B » Di 30. Jan 2018, 18:51

Warum denn nicht einfach die Literatur als Literatur machen?

URLs auslesen und auflisten

von 555nase » Di 30. Jan 2018, 17:12

Hallo, liebe LaTeX-Gemeinde.

Ich habe vor, mir die Arbeit leicht zu machen. Daher würde ich gerne alle URLs in meinem Dokument auslesen und hinten im Dokument auflisten wollen, anstatt eine bib-Datei zu erzeugen. Ich habe jedoch keine Vorstellung, wie ich das bewerkstelligen soll.
Ein nebulöses Gefühl sagt mir, dass ich irgendwas mit z.B. Datatool oder Filecontents machen müsste...

Hat von den Profis hierzu jemand vielleicht eine Idee?

hier habe ich mal ein minimales Beispiel:


\documentclass[12pt,a4paper,oneside,DIV=calc,bcor=1cm,fleqn,footlines=1.2,headwidth=text,footwidth=text,listof=totoc]{scrartcl}
\usepackage[utf8]{inputenc}
\usepackage[T1]{fontenc}
\usepackage[]{textcomp}
\usepackage[ngerman]{babel}
\usepackage{blindtext}

\usepackage{url}



%%%%%%%%%%%%%
\newcommand{\URL}[1]{%
	\url{#1}, abg. am \todayI.}
%%%Datum%%
\newcommand{\leadingzero}[1]{\ifnum #1<10 0\the#1\else\the#1\fi}
\newcommand{\todayI}{\the\year-\leadingzero{\month}-\leadingzero{\day}}



\begin{document}
\blindtext\footnote{\URL{http://www.fachwerkhaus.de/ein-fachwerkhaus-sanieren.html}} 
\blindtext\footnote{\URL{https://www.fachwerkhaussanierung.de/fachwerkkonstruktion}}
\blindtext\footnote{\URL{https://www.sanier.de/altbausanierung/baualtersstufen/fachwerkhaus}}
\blindtext\footnote{\URL{https://www.sanier.de/altbausanierung/baualtersstufen/fachwerkhaus}}

\blindtext\footnote{\URL{http://www.bauhandwerk.de/artikel/bhw_Gefache_dauerhaft_sanieren_2306390.html}}


\end{document}
Vielen Dank.

Nach oben