
Я использую эти expex
пакеты для своих примеров глянца, и они работают отлично, но:
Я хочу, чтобы мой \gla
пример был в формате пишущей машинки ( \tt
). И затем я хочу сделать глянцевыми только некоторые части моего примера (остальное не имеет значения), но когда я ввожу \nogloss
команду, текст внутри возвращается к римскому формату. А я хочу, чтобы все строки \gla
были в формате пишущей машинки.
Вот мой пример:
\documentclass[10pt,a4paper]{article}
\usepackage[utf8]{inputenc}
\usepackage[french]{babel}
\usepackage[T1]{fontenc}
\usepackage{expex}
\newcommand{\pt}{\textsc{2sg.fam}~}
\begin{document}
\pex[labeltype=numeric,everygla=\tt]
\a
\begingl
\gla \nogloss{HEN :} \underline{t'as} encore besoin d'argent/ //
\glb \pt'avoir-\pt~ //
\endgl
\a
\begingl
\gla \nogloss{ANT : non j'ai rencontré quelqu'un que j'aime alors je voulais} \underline{te} la présenter //
\glb \pt~ //
\endgl
\a
\begingl
\gla \nogloss{HEN : ouais je vois oui encore une de} \underline{tes} mannequins sans cervelle//
\glb \pt~ //
\endgl
\xe
\end{document}
Как мне заставить LaTeX подчиняться моим приказам? Хаха :) Пожалуйста
решение1
Объяснение
Ваши приказы выполняются; просто это \nogloss{}
не работает так, как вы думаете. Форматирование, которое вы указываете в , everygla
не применяется к материалу внутри \nogloss{}
(хотя это явно не указано в документации). Это потому, что expex
он разработан в первую очередь для использования для межстрочного глоссинга, когда каждое слово глоссируется, поэтому материал в \nogloss{}
обычно представляет собой пунктуацию (например, скобки, многоточия и т. д.) или немые элементы (например, следы, пробелы, операторы и т. д.). Эти знаки препинания и немые элементы обычно форматируются иначе, чем обычный текст: даже если вы сохраняете курсивное форматирование строки по умолчанию gla
, вы не захотите, чтобы помеченная скобка, например [ NP, была курсивом, поэтому \nogloss{}
не обращает внимания на everygla
.
Решения
Вот три решения для вашего случая.
Обратите внимание, что я удалил , ~
который у вас был как внутри, так и после вашей \pt
команды, потому что он добавлял ненужный интервал. Можете смело добавлять его обратно, если вам действительно нужен этот интервал. Я также изменилустаревший \tt
\ttfamily
( expex
часто использует устаревшие команды шрифтов в своих настройках по умолчанию и документации, но этого делать не следует) .
Решение 1
Поместите \ttfamily
в \nogloss
. Вы могли бы подумать, что вы могли бы определить новую команду, например \newcommand{\nogl}[1]{\nogloss{\ttfamily #1}}
, но, к сожалениюне получится вставить \nogloss
новую команду.
\documentclass[10pt,a4paper]{article}
\usepackage[utf8]{inputenc}
\usepackage[french]{babel}
\usepackage[T1]{fontenc}
\usepackage{expex}
\newcommand{\pt}{\textsc{2sg.fam}}
\begin{document}
\pex[labeltype=numeric,everygla=\ttfamily]
\a
\begingl
\gla \nogloss{\ttfamily HEN : } \underline{t'as} encore besoin d'argent/ //
\glb \pt'avoir-\pt //
\endgl
\a
\begingl
\gla \nogloss{\ttfamily ANT : non j'ai rencontré quelqu'un que j'aime alors je voulais} \underline{te} la présenter //
\glb \pt //
\endgl
\a
\begingl
\gla \nogloss{\ttfamily HEN : ouais je vois oui encore une de} \underline{tes} mannequins sans cervelle//
\glb \pt //
\endgl
\xe
\end{document}
Решение 2
Окружите ваш неглянцевый материал {}
и добавьте соответствующий {}
строке glb
. Вот как нам приходилось делать это до того, как \nogloss{}
стало доступно в expex
версии 5.0. Смотрите обсуждение в разделе 9.2.3 документации.
\documentclass[10pt,a4paper]{article}
\usepackage[utf8]{inputenc}
\usepackage[french]{babel}
\usepackage[T1]{fontenc}
\usepackage{expex}
\newcommand{\pt}{\textsc{2sg.fam}}
\begin{document}
\pex[labeltype=numeric,everygla=\ttfamily] % I changed the deprecated \tt to \ttfamily
\a
\begingl
\gla {HEN : } \underline{t'as} encore besoin d'argent/ //
\glb {} \pt'avoir-\pt //
\endgl
\a
\begingl
\gla {ANT : non j'ai rencontré quelqu'un que j'aime alors je voulais} \underline{te} la présenter //
\glb {} \pt //
\endgl
\a
\begingl
\gla {HEN : ouais je vois oui encore une de} \underline{tes} mannequins sans cervelle//
\glb {} \pt //
\endgl
\xe
\end{document}
Решение 3
Используйте новый nlevel
стиль глоссирования (см. раздел 10 документации). , []
которые соответствуют строке, glb
являются обязательными (стр. 44), но вам не нужно ставить один на каждое слово, только на каждое glword
. Таким образом, вы можете просто разбить свои строки на три glword
s: первый — все слова до вашего слова с глоссированием, второй — само слово с глоссированием, а третий — все слова после вашего слова с глоссированием.
\documentclass[10pt,a4paper]{article}
\usepackage[utf8]{inputenc}
\usepackage[french]{babel}
\usepackage[T1]{fontenc}
\usepackage{expex}
\newcommand{\pt}{\textsc{2sg.fam}}
\begin{document}
\pex[labeltype=numeric,glstyle=nlevel,glneveryline={\ttfamily}]
\a \begingl HEN :[] \underline{t'as}[\pt'avoir-\pt] encore besoin d'argent/[] \endgl % There are three sets of [], dividing the line into three glwords, only one of which is actually glossed.
\a \begingl ANT : non j'ai rencontré quelqu'un que j'aime alors je voulais[] \underline{te}[\pt] la présenter[] \endgl
\a \begingl HEN : ouais je vois oui encore une de[] \underline{tes}[\pt] mannequins sans cervelle[] \endgl
\xe
\end{document}