
Usando texlive
en Debian Jessie
Estoy escribiendo mi solicitud para un puesto y me gustaría incluir versiones del contenido tanto en alemán como en inglés.
Me gustaría tener una página justo después de la portada de mi solicitud que contenga dos ToC
mensajes de correo electrónico uno al lado del otro, sin embargo, cada uno de ellos muestre elementos que solo están en el idioma especificado.
Hasta ahora he descubierto cómo sumar dos ToC
como este:
\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
Esto produce lo siguiente:
Como puedes ver, las cosas están lejos de estar terminadas. No me gustan mucho los trucos de LaTeX, así que no tengo idea de si lo que estoy a punto de pedir es posible.
La primera pregunta es:¿Es posible personalizar una ToC para mostrar solo las entradas que cumplen una condición específica?En mi caso la condición sería: ¿el nombre de la sección está en alemán o en inglés? Si está en alemán, se muestra solo en el ToC izquierdo; de lo contrario, si está en inglés, se muestra solo en el ToC derecho. Además, sería fantástico si una entrada pudiera cumplir ambas condiciones para que pudiera aparecer en ambos ToC (por ejemplo, un certificado del que no tengo la traducción y no es necesario agregarlo dos veces solo por diversión). Me imagino que todo lo anterior funcionaría con algún tipo if
de valor para las secciones en alemán e inglés que luego se verifica y, en función de él, el ToC se completa en consecuencia.
Siguiendo esta línea de pensamiento y si estás familiarizado con ambos idiomas habrás notado en la imagen de arriba que las entradas1 y 2significan lo mismo (pero en un idioma diferente), así como las entradas3 y 4.
Esto me lleva a la segunda pregunta, a saber:¿Es posible utilizar algún tipo de condición que permita que dos secciones tengan el mismo número?
Al final, así es como debería verse la página:
EDITAR:¡Gracias al increíble @ChristianHupfer ya casi está terminado! Un último problema es la eliminación de las entradas en blanco en el toc
que no tiene las entradas X,Y y Z pero sí ftoc
las tiene:
La imagen de arriba corresponde al código siguiente:
\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]
Tengo la sensación de que quizás no he explicado las cosas lo suficientemente bien (¡lo siento!). Una sección en un idioma diferente en realidad tiene que aparecer como una sección separada. Entonces, el código anterior se adapta mejor a mis necesidades con la pequeña molestia visual de que quedan entradas en blanco en ambos toc
s. ¿Es posible eliminarlos? No es gran cosa, pero creo que las cosas se verían mucho mejor, especialmente para otros lectores de todo este tema que quieran usar las soluciones proporcionadas en un documento más grande donde pueden aparecer múltiples entradas en solo uno de ambos, toc
dejando enormes espacios en blanco en el otro toc
.
Respuesta1
Aquí hay una versión con un argumento opcional adicional \section
que contiene la versión en inglés del nombre de la sección de la tabla de contenido. Si [...]
se omite, no se ingresa nada en ftoc
(significado foreign toc
).
Úselo \tableofcontents
para el comportamiento tradicional y \tableofcontents[ftoc]
para el otro idioma. La configuración del idioma en realidad se realiza en el parcolumns
entorno, no dentro \tableofcontents
, etc.
\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}
Actualizar
\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}