Макет в два столбца с двумя двуязычными оглавлениями для каждого языка

Макет в два столбца с двумя двуязычными оглавлениями для каждого языка

Использование texliveв Debian Jessie

Я пишу заявление о приеме на работу и хотел бы включить версии контента на немецком и английском языках.

Я хотел бы иметь страницу сразу после обложки моего заявления, которая содержала бы два ToCэлемента s, расположенных рядом друг с другом, однако каждый из них отображал бы информацию только на указанном языке.

Пока что я выяснил, как сложить два ToCтаких:

\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

Это дает следующее:

введите описание изображения здесь

Как видите, до завершения еще далеко. Я не особо разбираюсь в штучках LaTeX, поэтому понятия не имею, возможно ли вообще то, о чем я собираюсь попросить.

Первый вопрос:Можно ли настроить ToC так, чтобы отображались только те записи, которые соответствуют определенному условию?В моем случае условие было бы таким: название раздела на немецком или английском? Если на немецком, то показывать только в левом ToC, иначе если на английском, то показывать только в правом ToC. Кроме того, было бы здорово, если бы запись могла иметь оба условия, чтобы она могла отображаться в обоих ToC (например, сертификат, перевода которого у меня нет, и нет необходимости добавлять его дважды просто ради прикола). Я бы предположил, что все вышеперечисленное будет работать с каким-то ifдобавлением некоторого значения для немецких и английских разделов, которое затем проверяется, и на его основе ToC заполняется соответствующим образом.

Продолжая эту мысль, если вы знакомы с обоими языками, вы могли заметить на изображении выше, что записи1 и 2означают то же самое (но на другом языке), как и записи3 и 4.

Это подводит меня ко второму вопросу, а именно:Можно ли использовать какое-то условие, которое позволило бы двум разделам иметь одинаковый номер?

В итоге страница должна выглядеть примерно так:

введите описание изображения здесь


РЕДАКТИРОВАТЬ:Спасибо замечательному @ChristianHupfer, это почти сделано! Последняя проблема — удаление пустых записей в , в tocкоторых нет записей X, Y и Z, но ftocони есть:

введите описание изображения здесь

Изображение выше соответствует коду ниже:

\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]

У меня такое чувство, что я, возможно, недостаточно хорошо объяснил вещи (извините за это!) - раздел на другом языке на самом деле должен отображаться как отдельный раздел. Так что код выше лучше всего подходит для моих нужд с небольшим визуальным раздражением, что пустые записи остаются в обоих tocs. Можно ли их удалить? Это не такая уж большая проблема, но я считаю, что все будет выглядеть намного лучше, особенно для других читателей всей этой темы, которые хотят использовать решение(я), предоставленное в более крупном документе, где несколько записей могут отображаться только в одном из двух tocs, оставляя огромные пустые места в другом toc.

решение1

Вот версия с дополнительным необязательным аргументом, \sectionкоторый содержит английскую версию названия раздела для таблицы содержания. Если опущено , в (значение ) [...]ничего не вводится .ftocforeign toc

Используйте \tableofcontentsдля традиционного поведения и \tableofcontents[ftoc]для другого языка. Настройки языка на самом деле выполняются в parcolumnsсреде, а не внутри \tableofcontentsи т. д.

\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}

введите описание изображения здесь

Обновлять

\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}

введите описание изображения здесь

Связанный контент