Zweispaltiges Layout mit zweisprachigen Inhaltsverzeichnissen für jede Sprache

Zweispaltiges Layout mit zweisprachigen Inhaltsverzeichnissen für jede Sprache

Verwendung texliveunter Debian Jessie

Ich verfasse meine Bewerbung für eine Stelle und möchte die Inhalte sowohl auf Deutsch als auch auf Englisch veröffentlichen.

Ich möchte direkt nach dem Deckblatt meiner Bewerbung eine Seite haben, die zwei ToCnebeneinander stehende s enthält, die jedoch jeweils nur Dinge in der angegebenen Sprache anzeigen.

Bisher habe ich herausgefunden, wie man zwei ToCwie folgt hinzufügt:

\usepackage{parcolumns}
\usepackage{etoolbox}
\makeatletter
\patchcmd{\pc@placeboxes}{\vrule}{{\VRULE}}{}{}
\makeatother
\newcommand\VRULE{\color{SOME_COLOR}\vrule width 0.2mm}
\usepackage{shorttoc}
...

\begin{parcolumns}[nofirstindent,rulebetween=true]{2}
    \colchunk{
        \selectlanguage{german}
        \shorttableofcontents{\contentsname}{1}
    }
    \colchunk{
        \selectlanguage{english}
        \tableofcontents
    }
\end{parcolumns}
\pagebreak

Das Ergebnis ist:

Bildbeschreibung hier eingeben

Wie Sie sehen, ist noch lange nicht alles fertig. Ich bin kein großer Fan von LaTeX-Spielereien und habe daher keine Ahnung, ob das, was ich hier verlange, überhaupt möglich ist.

Die erste Frage lautet:Ist es möglich, ein Inhaltsverzeichnis so anzupassen, dass nur Einträge angezeigt werden, die eine bestimmte Bedingung erfüllen?In meinem Fall wäre die Bedingung: Ist der Abschnittsname auf Deutsch oder auf Englisch? Wenn er auf Deutsch ist, wird er nur im linken Inhaltsverzeichnis angezeigt, wenn er auf Englisch ist, wird er nur im rechten Inhaltsverzeichnis angezeigt. Darüber hinaus wäre es toll, wenn ein Eintrag beide Bedingungen erfüllen könnte, sodass er in beiden Inhaltsverzeichnissen erscheinen kann (zum Beispiel ein Zertifikat, für das ich keine Übersetzung habe und das ich nicht aus Spaß zweimal hinzufügen muss). Ich könnte mir vorstellen, dass all das oben Genannte mit einer ifArt Wert für deutsche und englische Abschnitte funktionieren würde, der dann überprüft wird und auf dessen Grundlage das Inhaltsverzeichnis entsprechend ausgefüllt wird.

Wenn Sie diesen Gedanken weiterverfolgen und mit beiden Sprachen vertraut sind, haben Sie im Bild oben möglicherweise bemerkt, dass die Einträge1 und 2bedeuten dasselbe (aber in einer anderen Sprache) sowie die Einträge3 und 4.

Dies führt mich zur zweiten Frage, nämlich:Ist es möglich, eine Art Bedingung zu verwenden, die es zwei Abschnitten ermöglicht, die gleiche Nummer zu haben?

So sollte die Seite am Ende aussehen:

Bildbeschreibung hier eingeben


BEARBEITEN:Dank dem großartigen @ChristianHupfer ist es fast geschafft! Ein letztes Problem ist das Entfernen der leeren Einträge in der tocDatei, die die Einträge X, Y und Z nicht enthält, aber ftochat:

Bildbeschreibung hier eingeben

Das Bild oben entspricht dem folgenden Code:

\section{Lebenslauf}
\pagebreak
\section{Lebenslauf}[CV]*
\pagebreak
\section{Bachelor Urkunde}
\pagebreak
\section{Bachelor Urkunde}[Bachelor Diploma]*
\pagebreak
\section{Lalalala}[Lalalala]
\pagebreak
\section{Wichtige Informationen}
\pagebreak
\section{Wichtige Informationen}[Important information]*
\pagebreak
\section{Andere Informationen}
\pagebreak
\section{Noch mehr wichtige Informationen}
\pagebreak
\section{Noch mehr wichtige Informationen}[Even more important information]*
\pagebreak
\section{Blabla}[Only in English Foo]*
\pagebreak
\section{Zusammengef\"uhrt}[Recombined]

Ich habe das Gefühl, dass ich die Dinge vielleicht nicht gut genug erklärt habe (tut mir leid!) – ein Abschnitt in einer anderen Sprache muss tatsächlich als separater Abschnitt erscheinen. Der obige Code entspricht meinen Anforderungen also am besten, mit der kleinen optischen Unannehmlichkeit, dass in beiden tocs leere Einträge verbleiben. Ist es möglich, diese zu entfernen? Es ist keine große Sache, aber ich glaube, dass die Dinge viel besser aussehen würden, insbesondere für andere Leser dieses gesamten Themas, die die bereitgestellte(n) Lösung(en) in einem größeren Dokument verwenden möchten, in dem mehrere Einträge in nur einem der beiden tocs erscheinen können, wodurch im anderen große Leerzeichen verbleiben toc.

Antwort1

Hier ist eine Version mit einem zusätzlichen optionalen Argument, \sectiondas die englische Version des Abschnittsnamens für das Inhaltsverzeichnis enthält. Wenn das [...]weggelassen wird, wird nichts in das eingetragen ftoc(Bedeutung foreign toc).

Verwenden Sie es \tableofcontentsfür das traditionelle Verhalten und \tableofcontents[ftoc]für die andere Sprache. Die Spracheinstellungen werden tatsächlich in der parcolumnsUmgebung vorgenommen, nicht innerhalb \tableofcontentsusw.

\documentclass{article}

\usepackage[english,ngerman]{babel}
\usepackage{xpatch}
\usepackage{xparse}


\usepackage{parcolumns}


\makeatletter

\patchcmd{\pc@placeboxes}{\vrule}{{\VRULE}}{}{}
\newcommand\VRULE{\color{SOME_COLOR}\vrule width 0.2mm}


\let\latex@@section\section
\RenewDocumentCommand{\section}{somo}{%
  \IfBooleanTF{#1}{%
    \latex@@section*{#3}%
  }{%
    \IfValueTF{#2}{%
      \latex@@section[#2]{#3}%
    }{%
      \latex@@section{#3}%
    }%
    \IfValueT{#4}{%
      \addcontentsline{ftoc}{section}{\protect\numberline{\csname thesection\endcsname}#4}
    }%
  }%
}

\renewcommand\tableofcontents[1][toc]{%
  \section*{\contentsname
    \@mkboth{%
      \MakeUppercase\contentsname}{\MakeUppercase\contentsname}}%
  \@starttoc{#1}%
}



\makeatother  

\begin{document}

\begin{parcolumns}[nofirstindent,rulebetween=true]{2}
    \colchunk{
        \selectlanguage{ngerman}
        \tableofcontents
        %\shorttableofcontents{\contentsname}{1}
    }
    \colchunk{
        \selectlanguage{english}
        \tableofcontents[ftoc]
    }
\end{parcolumns}
\pagebreak

\section{Lebenslauf}[CV]
\section{Bachelor Urkunde}[Bachelor Diploma]
\section{Wichtige Informationen}[Important information]





\end{document}

Bildbeschreibung hier eingeben

Aktualisieren

\documentclass{article}

\usepackage[english,ngerman]{babel}
\usepackage{xpatch}
\usepackage{xparse}


\usepackage{parcolumns}


\makeatletter

\patchcmd{\pc@placeboxes}{\vrule}{{\VRULE}}{}{}
\newcommand\VRULE{\color{SOME_COLOR}\vrule width 0.2mm}

\newcounter{storetocdepth}

\let\latex@@section\section
\RenewDocumentCommand{\section}{somos}{%
  \IfBooleanTF{#1}{%
    \latex@@section*{#3}%
  }{%
    \IfBooleanTF{#5}{%
      \setcounter{storetocdepth}{\value{tocdepth}}
      \addtocontents{toc}{\protect\setcounter{tocdepth}{-4}} 
      % The #2 is of no use here, except of page headings /section mark
      \IfValueTF{#2}{%
        \latex@@section[#2]{#3}%
      }{%
        \latex@@section{#3}%
      }%
      \addtocontents{toc}{\protect\setcounter{tocdepth}{\number\value{storetocdepth}}}
      \addtocontents{toc}{\protect\contentsline{section}{\protect\phantom{#3}}{}}% Provide an empty fake entry
    }{%
      \IfValueTF{#2}{%
        \latex@@section[#2]{#3}%
      }{%
        \latex@@section{#3}%
      }%
    }%
    \IfValueTF{#4}{%
      \addcontentsline{ftoc}{section}{\protect\numberline{\csname thesection\endcsname}#4}
    }{%
      \addtocontents{ftoc}{\protect\contentsline{section}{\protect\phantom{#2}}{}}% Provide an empty fake entry
    }%
  }%
}

\renewcommand\tableofcontents[1][toc]{%
  \section*{\contentsname
    \@mkboth{%
      \MakeUppercase\contentsname}{\MakeUppercase\contentsname}}%
  \@starttoc{#1}%
}



\makeatother  

\begin{document}

\begin{parcolumns}[nofirstindent,rulebetween=true]{2}
    \colchunk{
        \selectlanguage{ngerman}
        \tableofcontents
        %\shorttableofcontents{\contentsname}{1}
    }
    \colchunk{
        \selectlanguage{english}
        \tableofcontents[ftoc]
    }
\end{parcolumns}
\pagebreak

\section{Lebenslauf}[CV]
\section{Bachelor Urkunde}[Bachelor Diploma]
\section{Wichtige Informationen}[Important information]
\section{Andere Informationen}
\section{Noch mehr wichtige Informationen}[Even more important information]
\section{Blabla}[Only in English Foo]*

\section{Zusammengef\"uhrt}[Recombined]




\end{document}

Bildbeschreibung hier eingeben

verwandte Informationen