![Индекс случаев в стиле британского юридического отчета](https://rvso.com/image/405362/%D0%98%D0%BD%D0%B4%D0%B5%D0%BA%D1%81%20%D1%81%D0%BB%D1%83%D1%87%D0%B0%D0%B5%D0%B2%20%D0%B2%20%D1%81%D1%82%D0%B8%D0%BB%D0%B5%20%D0%B1%D1%80%D0%B8%D1%82%D0%B0%D0%BD%D1%81%D0%BA%D0%BE%D0%B3%D0%BE%20%D1%8E%D1%80%D0%B8%D0%B4%D0%B8%D1%87%D0%B5%D1%81%D0%BA%D0%BE%D0%B3%D0%BE%20%D0%BE%D1%82%D1%87%D0%B5%D1%82%D0%B0.png)
В отчетах UK Law в начале приводится список дел, упомянутых в решении, в алфавитном порядке, но без номеров страниц, и органично вписанных в текст (т. е. в середину заголовка). Это видно на изображении ниже:
Прошу прощения за простой вопрос, но как, используя imakeidx (или аналогичный), получить аналогичный индекс, который:
решение1
Редактировать 3:Biblatex
Biblatex может выполнять фильтрацию.
Рассматривая списки как самостоятельные библиографии, разумное использование настраиваемых категорий biblatex позволяет достичь желаемого результата:
МВЭ
\documentclass[12pt]{article}
\begin{filecontents}{\jobname.bib}
@jurisdiction{antaios85,
title = {Antaios Compania Naviera S.A. v.
Salen Rederierna A.B. (The Nema)},
shorttitle = {The Nema},
date = {1985},
reporter = {A.C.},
pages = {191},
court = {H.L.},
additionalreports = {[1984] 3 WLR 592 and (1984) 128 SJ 564
and [1984] 3 All ER 229 and
[1984] 2 Lloyd’s Rep 235},
keywords = {gb},
}
@jurisdiction{corr08,
title = {Corr v. I.B.C. Vehicles Ltd.},
keywords = {gb},
date = {2008},
number = {[2008] UKHL 13},
journaltitle = {A.C.},
volume = {1},
pages = {884},
options = {year-essential=true},
institution = {HL},
shorttitle = {Corr},
pagination = {[]},
}
@jurisdiction{page96,
title = {Page v Smith},
keywords = {gb},
date = {1996},
journaltitle = {AC},
pages = {155},
institution = {HL},
}
@jurisdiction{barrett01a,
title = {Barrett v Enfield LBC},
keywords = {en},
date = {2001},
journaltitle = {BMLR},
volume = {49},
pages = {1},
institution = {HL},
}
@jurisdiction{stubbs90,
title = {Stubbs v Sayer},
institution = {CA},
date = {1990-11-08},
keywords = {en},
}
@jurisdiction{calvert02,
title = {Calvert v Gardiner},
keywords = {en},
number = {[2002] EWHC 1394 (QB)},
institution = {QB},
date = {2002-01-01},
tabulate={caselistarg},
}
@jurisdiction{henly28,
title = {Henly v Mayor of Lyme},
date = {1828},
volume = {5},
reporter = {Bing},
pages = {91},
keywords = {en},
parvolume = {130},
parreporter= {ER},
parpages = {995},
tabulate={caselistarg},
}
@jurisdiction{churchnom,
title = {Church v Brownewick},
date = {1667},
volume = {1},
reporter = {Syd},
pages = {334},
keywords = {en},
tabulate={caselistarg},
}
@jurisdiction{churcher,
title = {Church v Brownewick},
date = {1667},
volume = {1},
reporter = {Syd},
pages = {334},
keywords = {en},
parvolume = {82},
parreporter= {ER},
parpages = {1140},
}
@jurisdiction{thom93,
title = {The Queen v. Thomson},
keywords = {gb},
date = {1893},
journaltitle = {Q.B.D.},
volume = {2},
pages = {12},
options = {year-essential=true},
institution = {Crown Case Reserved},
shorttitle = {Thomson},
pagination = {[]},
}
@jurisdiction{mills,
title = {Mills v Mills},
date = {1938},
reporter = {C.L.R.},
pages = {150},
keywords = {au},
}
\end{filecontents}
\newcommand\mybibfilename{\jobname.bib}
\usepackage[style=british]{csquotes}
\usepackage[style=oscola,
refsegment=section,
citetracker=false, %just for this example
% ibidtracker=true,
indexing=cite,
backend=biber,
sorting=nty,
]{biblatex}
\addbibresource{\mybibfilename}
\DeclareBibliographyCategory{arguendo}
\DeclareBibliographyCategory{judgment}
\DeclareBibliographyCategory{fllwd}
\usepackage{fontspec}
\setmainfont{Noto Serif}
\usepackage[splitindex, nonewpage, noautomatic]{imakeidx}
\makeindex[name=arg, title={\ }, columns=1]
\makeindex[name=caselistarg, title={}, columns=1]
\defbibnote{injdgmnt}{The following cases are referred to in the judgment:}
\defbibnote{inarg}{The following cases were additionally referred to in argument:}
%remove full stop at end of an entry in the bibliography
\renewcommand*\finentrypunct{}
%==================================
\begin{document}
\textit{Companies} -- a director may act against the interests of a class of shareholders.
{
\renewcommand*\finentrypunct{, followed.}
\printbibliography[
category=fllwd,
heading=none,
]
}
%\fullcite{mills}, followed.
%\smallskip
\printbibliography[
category=judgment,
heading=none,
prenote=injdgmnt,
]
\printbibliography[
category=arguendo,
notcategory=judgment,
heading=none,
prenote=inarg,
]
\section*{Argument}
x\autocite{page96}
x\autocite{corr08}
x\autocite{antaios85}
x\autocite{barrett01a}
x\autocite{stubbs90}
x\autocite{calvert02}
x\autocite{henly28}
\addtocategory{arguendo}{page96, corr08, antaios85, barrett01a, stubbs90, calvert02, henly28}
\section*{Judgment}
y\autocite{churcher}
y\autocite{henly28}
z\nocite{mills}
\addtocategory{judgment}{calvert02, henly28}
\addtocategory{fllwd}{mills}
\end{document}
Как и во всех комбинаторных вопросах, к одному и тому же результату могут привести несколько путей.
Здесь были определены три категории
\DeclareBibliographyCategory{arguendo}
\DeclareBibliographyCategory{judgment}
\DeclareBibliographyCategory{fllwd}
Все спорные случаи были добавлены в arguendo
категорию с:
\addtocategory{arguendo}{page96, corr08, antaios85, barrett01a, stubbs90, calvert02, henly28}
В решении суда данное дело было отнесено к fllwd
категории:
\addtocategory{fllwd}{mills}
и указанные случаи были добавлены в judgment
категорию:
\addtocategory{judgment}{calvert02, henly28}
Для набора списков (чем, в конечном счете, и является библиография) в библиографии дополнительных аргументов имелось предыдущее примечание, inarg
определенное следующим образом:
\defbibnote{inarg}{The following cases were additionally referred to in argument:}
и библиография была настроена на печать без заголовка, с предварительным примечанием и отфильтрована для включения дел в категорию аргументов и исключения дел в категорию суждений:
\printbibliography[
category=arguendo,
notcategory=judgment,
heading=none,
prenote=inarg,
]
Обычный пункт .
в конце каждого нагрудного номера, регулируемый командой \finentrypunct
, был определен как несуществующий:
\renewcommand*\finentrypunct{}
Аналогичная методика для случаев, упомянутых в решении ( category=judgment
).
Для библиографии с одним элементом, как и в случае с отслеживаемой категорией ( category=fllwd
), конечный «знак препинания» был переопределен на «, отслеживаемый». с помощью:
\renewcommand*\finentrypunct{, followed.}
и область переопределения была ограничена только этой библиографией парой окружающих фигурных скобок {
и }
:
{
\renewcommand*\finentrypunct{, followed.}
\printbibliography[
category=fllwd,
heading=none,
]
}
Вот и все.
Рабочий процесс компиляции: xelatex/biber/xelatex. Гораздо проще, чем при использовании индексных файлов.
Если требуется, чтобы случай был указан в примечании без ссылки на него в тексте,\nocite{
ссылка}
команда поставитссылкав поток обработки без ссылки в тексте, и библиография/список ее подхватит (при условии, что категории и фильтры правильно определены, назначены и соответствуют требованиям).
Более ранний ответ, для исторического интереса
Редактирование 2: Пользовательские списки и индексные файлы
Используя imakeidx
, с именованным индексным файлом для каждого списка, вы можете, взяв arg
в качестве примера имя:
не давать индексу названия и сделать его одним столбцом вместо обычных двух с
\makeindex[name=arg, title={\ }, columns=1]
удалить все пробелы в заголовках и т.п. с помощью
titlesec
команд пакета
\titleformat{\section}[runin]{}{}{}{}
\titlespacing{\section}{0pt}{0pt}{0pt}
\renewcommand\indexspace{\vspace{0pt}}
Пока мы в этом, добавьте пролог к списку:
\indexprologue[\medskip]{The following cases were referred to in argument:}
распечатать названный индекс с помощью
\printindex[arg]
определите пустой файл стилей (по сути, не выводите запятые и точки), назовите его
oscolaplain.mst
, состоящий из:
delim_0 ""
delim_1 ""
delim_2 ""
delim_n ""
delim_r ""
delim_t ""
(мы вернемся к этому файлу позже)
- определить команду
mygobble
\usepackage{etoolbox}
\makeatletter
\let\mygobble\@gobble
\makeatother
- которая, будучи примененной в команде индексирования, отправляющей запись в указанный индекс, поглотит номер страницы:
\index[arg]{\cite{corr08}|mygobble}
- добавьте остальные команды
\index
; поскольку номера страниц не имеют значения, команды могут располагаться где угодно - затем скомпилируйте в этой последовательности (я использую xelatex):
- кселатекс
- бибер
- splitindex -- -s oscolaplain.mst -c
- кселатекс
- бибер
- кселатекс
МВЭ
\documentclass[12pt]{article}
\begin{filecontents}{\jobname.bib}
@jurisdiction{antaios85,
title = {Antaios Compania Naviera S.A. v.
Salen Rederierna A.B. (The Nema)},
shorttitle = {The Nema},
date = {1985},
reporter = {A.C.},
pages = {191},
court = {H.L.},
additionalreports = {[1984] 3 WLR 592 and (1984) 128 SJ 564
and [1984] 3 All ER 229 and
[1984] 2 Lloyd’s Rep 235},
keywords = {gb},
}
@jurisdiction{corr08,
title = {Corr v. I.B.C. Vehicles Ltd.},
keywords = {gb},
date = {2008},
number = {[2008] UKHL 13},
journaltitle = {A.C.},
volume = {1},
pages = {884},
options = {year-essential=true},
institution = {HL},
shorttitle = {Corr},
pagination = {[]},
}
@jurisdiction{page96,
title = {Page v Smith},
keywords = {gb},
date = {1996},
journaltitle = {AC},
pages = {155},
institution = {HL},
}
@jurisdiction{barrett01a,
title = {Barrett v Enfield LBC},
keywords = {en},
date = {2001},
journaltitle = {BMLR},
volume = {49},
pages = {1},
institution = {HL},
}
@jurisdiction{stubbs90,
title = {Stubbs v Sayer},
institution = {CA},
date = {1990-11-08},
keywords = {en},
}
@jurisdiction{calvert02,
title = {Calvert v Gardiner},
keywords = {en},
number = {[2002] EWHC 1394 (QB)},
institution = {QB},
date = {2002-01-01},
tabulate={caselistarg},
}
@jurisdiction{henly28,
title = {Henly v Mayor of Lyme},
date = {1828},
volume = {5},
reporter = {Bing},
pages = {91},
keywords = {en},
parvolume = {130},
parreporter= {ER},
parpages = {995},
tabulate={caselistarg},
}
@jurisdiction{churchnom,
title = {Church v Brownewick},
date = {1667},
volume = {1},
reporter = {Syd},
pages = {334},
keywords = {en},
tabulate={caselistarg},
}
@jurisdiction{churcher,
title = {Church v Brownewick},
date = {1667},
volume = {1},
reporter = {Syd},
pages = {334},
keywords = {en},
parvolume = {82},
parreporter= {ER},
parpages = {1140},
}
@jurisdiction{thom93,
title = {The Queen v. Thomson},
keywords = {gb},
date = {1893},
journaltitle = {Q.B.D.},
volume = {2},
pages = {12},
options = {year-essential=true},
institution = {Crown Case Reserved},
shorttitle = {Thomson},
pagination = {[]},
}
@jurisdiction{mills,
title = {Mills v Mills},
date = {1938},
reporter = {C.L.R.},
pages = {150},
keywords = {au},
}
\end{filecontents}
\newcommand\mybibfilename{\jobname.bib}
\usepackage[style=british]{csquotes}
\usepackage[style=oscola,
citetracker=false, %just for this example
% ibidtracker=true,
indexing=cite,
backend=biber,
]{biblatex}
\addbibresource{\mybibfilename}
\usepackage{lipsum}
\usepackage{xcolor}
\usepackage{fontspec}
\setmainfont{Noto Serif}
\setmonofont{Noto Sans Mono}[Colour=blue]
\usepackage[splitindex, nonewpage, noautomatic]{imakeidx}
\makeindex[name=arg, title={\ }, columns=1]
\makeindex[name=caselistarg, title={}, columns=1]
\usepackage{titlesec}
\usepackage{etoolbox}
\makeatletter
\let\mygobble\@gobble
\makeatother
\newcommand\mystart{%
\vspace{12pt}
\noindent\textit{Start}
\vspace{0.5ex}
\hrule
\vspace{12pt}}
\newcommand\myend{%
\vspace{12pt}
\hrule
\vspace{0.5ex}\noindent\textit{End}
\vspace{12pt}}
%==================================
\begin{document}
\lipsum[5-7]
{
\titleformat{\section}[runin]{}{}{}{}
\titlespacing{\section}{0pt}{0pt}{0pt}
\renewcommand\indexspace{\vspace{0pt}}
\indexprologue[\medskip]{The following cases were referred to in argument:}
\printindex[arg]
}
\textit{arguendo}\index[arg]{\cite{churcher}|mygobble}
y\index[arg]{\cite{page96}|mygobble}
y\index[arg]{\cite{corr08}|mygobble}
y\index[arg]{\cite{antaios85}|mygobble}
y\index[arg]{\cite{barrett01a}|mygobble}
y\index[arg]{\cite{stubbs90}|mygobble}
y\index[arg]{\cite{calvert02}|mygobble}
y\index[arg]{\cite{henly28}|mygobble}
$\leftarrow$ text with index entries attached.
\end{document}
<>><><><><><><><><><><><><><><><><>><>
Если список достаточно короткий, можно вручную определить пользовательский список в преамбуле с подходящими настройками макета:
\usepackage{enumitem}
\newlist{hncaselist}{enumerate}{1}
\setlist[hncaselist,1]{label=,
noitemsep,
%labelindent=1em,
leftmargin=2em,
%labelsep=\itemindent+2em,
itemindent=-2em,
}
и используйте его так:
\noindent The following cases were referred to in argument:
\begin{hncaselist}
\item \cite{page96}
\item \cite{corr08}
\item \cite{antaios85}
\item \cite{barrett01a}
\item \cite{stubbs90}
\item \cite{calvert02}
\item \cite{henly28}
\end{hncaselist}
Только он отображается в том виде, в котором он есть — вам придется вручную расставить записи в алфавитном порядке.
С другой стороны, oscola
package использует tabulate=
ключ внутри bibentry для отправки элемента непосредственно в именованный индекс, но на этом уровне вывод фактически представляет собой таблицу случаев с точки зрения форматирования, и курсив не отображается (как и предполагалось).
Biblatex
позволяет программировать, поэтому можно написать блок кода, который будет выполнять требуемые действия — это будет следующим шагом.
Первоначальный ответ:
Извинения - не ответ. Начало ответа.
В заголовке содержится много информации, а для ответа на основные вопросы требуется больше всего слов, но для самого первого шага, если будет использоваться список, встроенный список будет соответствовать настройкам абзаца, а поскольку его метка будет командой новой строки, такой макет может подойти.
Например, использование enumitem
пакета для определения пользовательского списка:
МВЭ
\documentclass{article}
\usepackage{enumitem}
\newlist{hncaselist}{enumerate*}{1}
\setlist[hncaselist,1]{label=\ \\}
\newcommand\longtext{text text text text text text text text text text text text text text text more text more text more text more text more text more text more text more text. }
\begin{document}
\noindent Cases referred to in X:
\begin{hncaselist}
\item Case A \longtext
\item Case B \longtext
\item Case C \longtext
\item Case D \longtext
\item Case E \longtext
\end{hncaselist}
\end{document}
Следующий шаг (или частичная альтернатива): biblatex
можно вводить элементы в (настраиваемые) списки, так что списки с заголовочными сносками, по сути, будут мини-библиографиями, отфильтрованными, скажем, по ключевым словам (добавленным во время цитирования, возможно??). Поскольку библиография — это просто список, ее поля, отступы элементов и т. д. настраиваются и biblatex
могут позаботиться о сортировке (по названию).
Мне нужно исследовать.