Seite 1 von 1

URLs auslesen und auflisten

Verfasst: Di 30. Jan 2018, 17:12
von 555nase
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.

Verfasst: Di 30. Jan 2018, 18:51
von Johannes_B
Warum denn nicht einfach die Literatur als Literatur machen?

Verfasst: Mi 31. Jan 2018, 07:56
von 555nase
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.

Verfasst: Mi 31. Jan 2018, 09:40
von Gast
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.

Verfasst: Mi 31. Jan 2018, 10:34
von Gast
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}

Verfasst: Mi 31. Jan 2018, 12:04
von Gast
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).