Workaround für Fehler durch Akronyme "hyper reference 'acro:xx' on page undefined

Erstellen von Index, Glossar, Symbolverzeichnis, einer Nomenklatur etc. mit MakeIndex oder Xindy


Benutzeravatar
Corioliskraft
Forum-Newbie
Forum-Newbie
Beiträge: 8
Registriert: Di 9. Mai 2023, 10:13

Workaround für Fehler durch Akronyme "hyper reference 'acro:xx' on page undefined

Beitrag von Corioliskraft »

Hallo alle zusammen,

zu meiner aktuellen Lage:
Ich habe eine wissenschaftliche Arbeit in der eine Tabelle verwendet werden soll in der verschiedene Kunststoffe aufgezählt werden. Die Verwendung der vollen Namen möchte ich nicht im Text der Tabelle einfügen, da dies die Größe der Tabelle sprengen würde. Außerhalb dieser Tabelle werden die Abkürzungen nicht verwendet bzw. finden keine vorherige Anwendung.

Natürlich existieren in diesem Dokument noch weitere Akronyme, welche ganz normal auftauchen:
Erste Verwendung -> Polybuten (PB)
Zweite Verwendung PB

Jetzt will ich die nicht im Text verwendeten Polymere trotzdem im Abkürzungsverzeichnis (Akronyme) angezeigt bekommen ohne die Fehlermeldung, dass eben diese ja noch nicht verwendet seien bzw. undefiniert seien.

Meine Idee das Problem zu lösen:
Am Ende des Dokuments eine "Dummy-Seite" einfügen und all jene Akronyme einmal verwenden. Das hat zur Folge, dass sie definiert sind und sollten sie bis zur letzten Seite noch nicht verwendet worden sein, sind sie es spätestens dort.
Danach müsste man in einem PDF-Programm die letzte Seite entfernen und alles wäre gegessen.

Nun zur Frage:

Gibt es eine Möglichkeit sich diesen Workaround zu ersparen und wie erwähnt eine solche Seite anzulegen und sie per Befehl wieder aus dem fertigen Dokument automatisch zu nehmen?
Eine etwas eigenartige Frage, ist mir bewusst, denn normalerweise will man ja all seine geschriebenen Texte auch kompiliert und in dem PDF wiederfinden.

Minimalbeispiel:
(kann bei mir ausgeführt werden auf dem Rechner, hier geht das aus irgendeinem Grund nicht)
\documentclass[11pt,parskip=full,a4paper]{scrartcl}
\usepackage{scrlayer-scrpage}

%______________________________________________________
%%%%------Allgemeine Dokumenteneinstellungen
%zur korrekten Anwendung und Kompillierung der deutschen buchstaben
\usepackage[ngerman]{babel}
\usepackage[utf8]{inputenc}
\usepackage[T1]{fontenc}
%
\usepackage{lmodern} %für deutsche Sonderzeichen
%______________________________________________________
%%------Mathematik
\usepackage{amsmath}
\usepackage{amsfonts}
\usepackage{amssymb}
\usepackage{amsthm}

%_________________________
%Seiteneinrichtung
\usepackage{layout}
\usepackage{geometry}
\geometry{
	left=2.5cm,
	right=2.5cm,
	top=2.5cm,
	bottom=2.5cm,
	showframe,% <-----------------------------comment for preproduction version
}
%______________________________________________________
%%%%------Literatur
\usepackage{csquotes}
%_________________________
%Bib
\usepackage[
    backend=biber,
    style=alphabetic,
    sortlocale=de_DE,
    %natbib=false,
    url=true, 
    doi=true,
    eprint=false
]{biblatex}
%______________________________________________________
%%------Links und URLs
\usepackage{hyperref}
%Links 	- 	Sprünge im Dokument
%URL	-	Links ins Internet
\hypersetup{
	colorlinks=false,
	linkcolor=black,	%blue
	urlcolor=black,		%red
	%pdftitle={Titel des Dokumets für den PDF-Reader},
}
%______________________________________________________
%%%%------Tabellen allgemein
\usepackage{tabularx} 
\usepackage{longtable}
\usepackage{multirow}
\usepackage{rotating}
\usepackage{tabularray} %use X terms in longtable
%______________________________________________________
%Anderes
\usepackage{xcolor}			%für Listings und Vektorgrafiken
\usepackage{color}
\definecolor{Cosmos}{rgb}{0.996,0.843,0.843}
\usepackage{acronym}
%______________________________________________________
%______________________________________________________
\begin{document}


\section*{Abkürzungsverzeichnis}
\begin{acronym}[ABSTAND]	
\acro{emod}[E-Modul]{Elastizitätsmodul}
\acro{peek}[PEEK]{Polyetheretherketon}
\acro{pmma}[PMMA]{Polymethylmethacrylat}
%
%______________________________________________
%nicht verwendete Acronyme außerhalb einer Tabelle etc.
\acro{ps}[PS]{Polycarbonat}
\acro{san}[SAN]{Styrol-Acrylnitril}
\acro{pvcu}[PVC-U]{Polyvinylchlorid -hart-}
\acro{pc}[PC]{Polycarbonat}
\acro{abs}[ABS]{Acrylnitril-Butadien-Styrol}
\acro{pet}[PET]{Polyetylenterephthalat}
\acro{pvcp}[PVC-P]{Polyvinylchlorid -weich-}
\acro{pa6}[PA6]{Polyamid 6}
\acro{pa66}[PA66]{Polyamid 66}
\acro{pom}[POM]{Polyoxymethylen}
\acro{pehd}[PE-HD]{Polyethylen -hohe Dichte-}
\acro{pp}[PP]{Polypropylen}
\acro{peld}[PE-LD]{Polyethylen -geringe Dichte-}
\acro{pb}[PB]{Polybuten}
\acro{pur}[PUR]{Polyurethan}
\acro{tpe}[TPE]{Thermoplastische Elastomere}
\acro{tpu}[TPU]{Thermoplastische Polyurethane}
\end{acronym}


\newpage



\begin{table}[htb]
  \centering	
  \centering
\resizebox{\linewidth}{!}{%
\begin{tblr}{
  width = \linewidth,
  colspec = {Q[185]Q[758]},
  row{1} = {Cosmos,c},
  cell{2}{1} = {c},
  cell{3}{1} = {c},
  cell{4}{1} = {c},
  cell{5}{1} = {c},
  hlines,
  vlines,
}
$\nu$         & Werkstoff                                                                                                                       \\
$0,30 - 0,35$ & {Steife, spröde Kunststoffe:\\Duroplaste, amorphe Thermoplaste wie PS, SAN, PMMA, PVC-U}                                        \\
$0,35 - 0,40$ & {Steife, zähe Kunststoffe:\\Thermoplaste und Blends wie PC, ABS, (PC+ABS), (PC+PET), PVC-P, PA6, PA66, POM}                     \\
$0,40 - 0,45$ & {Weichere, zähe Kunststoffe:\\Thermoplaste wie PE-HD, PP}                                                                       \\
$0,45 - 0,50$ & {Weichere, hochelastische Kunststoffe:\\Thermoplaste, Elastomere und thermoplastische Elastomere, wie PE-LD, PB, PUR, TPE, TPU} 
\end{tblr}
}
\caption{Richtwerte der Querkontraktionszahl $ \nu $ versch. Kunststoffgruppen für $ 0\unit{C^{\circ}} \leq \delta \leq 50 \unit{C^{\circ}} $  } \label{tab:querkontraEinteilung}
\end{table}


\newpage
%______________________________________________________
%Dies ist in einem Dokument namens DUMMY.tex

%\acro{ps}[PS]{Polycarbonat}
\ac{ps}
%\acro{san}[SAN]{Styrol-Acrylnitril}
\ac{san}
%\acro{pvcu}[PVC-U]{Polyvinylchlorid -hart-}
\ac{pvcu}
%\acro{pc}[PC]{Polycarbonat}
\ac{pc}
%\acro{abs}[ABS]{Acrylnitril-Butadien-Styrol}
\ac{abs}
%\acro{pet}[PET]{Polyetylenterephthalat}
\ac{pet}
%\acro{pvcp}[PVC-P]{Polyvinylchlorid -weich-}
\ac{pvcp}
%\acro{pa6}[PA6]{Polyamid 6}
\ac{pa6}
%\acro{pa66}[PA66]{Polyamid 66}
\ac{pa66}
%\acro{pom}[POM]{Polyoxymethylen}
\ac{pom}
%\acro{pehd}[PE-HD]{Polyethylen -hohe Dichte-}
\ac{pehd}
%\acro{pp}[PP]{Polypropylen}
\ac{pp}
%\acro{peld}[PE-LD]{Polyethylen -geringe Dichte-}
\ac{peld}
%\acro{pb}[PB]{Polybuten}
\ac{pb}
%\acro{pur}[PUR]{Polyurethan}
\ac{pur}
%\acro{tpe}[TPE]{Thermoplastische Elastomere}
\ac{tpe}
%\acro{tpu}[TPU]{Thermoplastische Polyurethane}
\ac{tpu}







\end{document}
%______________________________________________________
---------------------------
Gruß
Jonas (aka Corioliskraft)

Benutzeravatar
u_fischer
Forum-Meister
Forum-Meister
Beiträge: 4205
Registriert: Do 22. Nov 2012, 11:09
Kontaktdaten:

Re: Workaround für Fehler durch Akronyme "hyper reference 'acro:xx' on page undefined

Beitrag von u_fischer »

(kann bei mir ausgeführt werden auf dem Rechner, hier geht das aus irgendeinem Grund nicht)
Nicht aus "irgendeinem Grund". Du bekommst hier eine log-Datei in die du nur mal reinschauen musst:
! Undefined control sequence.
<argument> ...ch. Kunststoffgruppen für $ 0\unit 
                                                  {C^{\circ }} \leq \delta \...
Sowas ist doch wirklich leicht zu korrigieren.
Am Ende des Dokuments eine "Dummy-Seite" einfügen und all jene Akronyme einmal verwenden. Das hat zur Folge, dass sie definiert sind und sollten sie bis zur letzten Seite noch nicht verwendet worden sein, sind sie es spätestens dort.
Danach müsste man in einem PDF-Programm die letzte Seite entfernen und alles wäre gegessen.
Das ist Unsinn, wenn du die Seite entfernst, entfernst du auch die Linkanker, wo sollen denn dann die Links hin?

Sorge dafür, dass es an einem sinnvollen Ort einen Anker gibt:
\documentclass[11pt,parskip=full,a4paper]{scrartcl}
\usepackage{hyperref}
\usepackage{acronym}
\begin{document}

\section*{Abkürzungsverzeichnis}
\begin{acronym}[ABSTAND]	
\acro{emod}[E-Modul]{Elastizitätsmodul}
\acro{peek}[PEEK]{Polyetheretherketon}
\end{acronym}

\newpage 

\ac{emod} %normal

\phantomsection\label{acro:peek}PEEK %manuell

\end{document}

Antworten