mergeron 2024.738953.1__py3-none-any.whl → 2025.739265.0__py3-none-any.whl
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Potentially problematic release.
This version of mergeron might be problematic. Click here for more details.
- mergeron/__init__.py +26 -6
- mergeron/core/__init__.py +5 -65
- mergeron/core/{damodaran_margin_data.py → empirical_margin_distribution.py} +74 -58
- mergeron/core/ftc_merger_investigations_data.py +147 -101
- mergeron/core/guidelines_boundaries.py +290 -1078
- mergeron/core/guidelines_boundary_functions.py +1128 -0
- mergeron/core/{guidelines_boundaries_specialized_functions.py → guidelines_boundary_functions_extra.py} +87 -55
- mergeron/core/pseudorandom_numbers.py +16 -22
- mergeron/data/__init__.py +3 -0
- mergeron/data/damodaran_margin_data.xls +0 -0
- mergeron/data/damodaran_margin_data_dict.msgpack +0 -0
- mergeron/demo/__init__.py +3 -0
- mergeron/demo/visualize_empirical_margin_distribution.py +86 -0
- mergeron/gen/__init__.py +258 -246
- mergeron/gen/data_generation.py +473 -224
- mergeron/gen/data_generation_functions.py +876 -0
- mergeron/gen/enforcement_stats.py +355 -0
- mergeron/gen/upp_tests.py +171 -259
- mergeron-2025.739265.0.dist-info/METADATA +115 -0
- mergeron-2025.739265.0.dist-info/RECORD +23 -0
- {mergeron-2024.738953.1.dist-info → mergeron-2025.739265.0.dist-info}/WHEEL +1 -1
- mergeron/License.txt +0 -16
- mergeron/core/InCommon RSA Server CA cert chain.pem +0 -68
- mergeron/core/excel_helper.py +0 -257
- mergeron/core/proportions_tests.py +0 -520
- mergeron/ext/__init__.py +0 -5
- mergeron/ext/tol_colors.py +0 -851
- mergeron/gen/_data_generation_functions_nonpublic.py +0 -623
- mergeron/gen/investigations_stats.py +0 -709
- mergeron/jinja_LaTex_templates/clrrate_cis_summary_table_template.tex.jinja2 +0 -121
- mergeron/jinja_LaTex_templates/ftcinvdata_byhhianddelta_table_template.tex.jinja2 +0 -82
- mergeron/jinja_LaTex_templates/ftcinvdata_summary_table_template.tex.jinja2 +0 -57
- mergeron/jinja_LaTex_templates/ftcinvdata_summarypaired_table_template.tex.jinja2 +0 -104
- mergeron/jinja_LaTex_templates/mergeron.cls +0 -161
- mergeron/jinja_LaTex_templates/mergeron_table_collection_template.tex.jinja2 +0 -90
- mergeron/jinja_LaTex_templates/setup_tikz_tables.tex.jinja2 +0 -84
- mergeron-2024.738953.1.dist-info/METADATA +0 -93
- mergeron-2024.738953.1.dist-info/RECORD +0 -30
- /mergeron/{core → data}/ftc_invdata.msgpack +0 -0
|
@@ -1,121 +0,0 @@
|
|
|
1
|
-
\begin{table}[bt]
|
|
2
|
-
%# jinja2 code blocks for creating variables here
|
|
3
|
-
%# Spurious blank lines don't matter?
|
|
4
|
-
((* if tmpl_data.obs_merger_class == 'Entry Difficult' *))
|
|
5
|
-
((* set table_ref, obs_merger_class_desc = "9.2", "Markets with Strong Entry Barriers (``" + tmpl_data.obs_merger_class + "'')" *))
|
|
6
|
-
((* else *))
|
|
7
|
-
((* set table_ref, obs_merger_class_desc = "3.1", tmpl_data.obs_merger_class *))
|
|
8
|
-
((* endif *))
|
|
9
|
-
|
|
10
|
-
((* if tmpl_data.test_res == 'Enforcement' *))
|
|
11
|
-
((* set prop_title = "Proportion Enforced" *))
|
|
12
|
-
((* else *))
|
|
13
|
-
((* set prop_title = "Proportion Cleared" *))
|
|
14
|
-
((* endif *))
|
|
15
|
-
|
|
16
|
-
|
|
17
|
-
\centering
|
|
18
|
-
\caption{
|
|
19
|
-
\JINVAR{ prop_title } and Simulated \JINVAR{ tmpl_data.PolicySelector} Rates
|
|
20
|
-
for FTC Investigated Mergers
|
|
21
|
-
}\label{tbl:clearanceRates_\JINVAR{ tmpl_data.obs_summary_type|replace(" ", "") -}_\JINVAR{ tmpl_data.obs_merger_class|replace(" ", "") -}_\JINVAR{ tmpl_data.obs_period|last -}}
|
|
22
|
-
{\footnotesize
|
|
23
|
-
\JINVAR{ tmpl_data.obs_summary_type_title } \\
|
|
24
|
-
\JINVAR{ obs_merger_class_desc +", " + tmpl_data.obs_period|join('--') } \\[0.5\baselineskip]
|
|
25
|
-
}
|
|
26
|
-
\begin{tikzpicture}[auto, font = \sffamily]
|
|
27
|
-
\begin{pgfonlayer}{background}
|
|
28
|
-
\matrix[datatable,
|
|
29
|
-
column 1/.style = {nodes = {align=right, text width = 27pt,},},
|
|
30
|
-
column 2/.style = {nodes = {align=right, text width = 77pt,},},
|
|
31
|
-
] (stats_cis) {
|
|
32
|
-
\JINVAR{ tmpl_data.stats_cis -}
|
|
33
|
-
};
|
|
34
|
-
\draw[color = OBSHDRFill, line width = 1pt,] (stats_cis-\JINVAR{- tmpl_data.stats_numrows -}-1.north west) -- (stats_cis-\JINVAR{- tmpl_data.stats_numrows -}-2.north east);
|
|
35
|
-
\end{pgfonlayer}
|
|
36
|
-
% Header row - column heads
|
|
37
|
-
\matrix[hrow,
|
|
38
|
-
above = 0 pt of stats_cis,
|
|
39
|
-
column 1/.style = {
|
|
40
|
-
nodes = {
|
|
41
|
-
minimum height = 33pt,
|
|
42
|
-
text width = 60pt,
|
|
43
|
-
text depth = 8pt,
|
|
44
|
-
align = left,
|
|
45
|
-
inner sep = 3pt,
|
|
46
|
-
},
|
|
47
|
-
},
|
|
48
|
-
column 2/.style = {
|
|
49
|
-
nodes = {
|
|
50
|
-
minimum height = 83pt,
|
|
51
|
-
text width = 60pt,
|
|
52
|
-
text depth = 8pt,
|
|
53
|
-
align = left,
|
|
54
|
-
inner sep = 3pt,
|
|
55
|
-
},
|
|
56
|
-
},
|
|
57
|
-
] (hdrrow_cis) {
|
|
58
|
-
\node[rotate = 90] (hdr1) {Relative \\ Frequency \\}; &
|
|
59
|
-
\node[rotate = 90] (hdr2) {\JINVAR{ prop_title|replace(" ", "\\\\") } \\ {[95\% CI]} \\}; \\
|
|
60
|
-
};
|
|
61
|
-
% Header row - columns description
|
|
62
|
-
\matrix[hrow,
|
|
63
|
-
above = 0pt of hdrrow_cis,
|
|
64
|
-
nodes = {minimum height = 12.5pt, text width = 115.6pt,}
|
|
65
|
-
] (descrow_cis) {
|
|
66
|
-
Observed Data \\
|
|
67
|
-
};
|
|
68
|
-
|
|
69
|
-
% Header column - row heads
|
|
70
|
-
\matrix[hcol, left = 0pt of stats_cis, nodes = {
|
|
71
|
-
text width = \JINVAR{ tmpl_data.hdrcol_cis_width -},
|
|
72
|
-
inner xsep = 3 pt,
|
|
73
|
-
},] (hdrcol_cis) {
|
|
74
|
-
\JINVAR{ tmpl_data.stats_hdrstr -}
|
|
75
|
-
};
|
|
76
|
-
% Header column - row heads - description
|
|
77
|
-
\JINVAR{ tmpl_data.hdrcoldescstr }
|
|
78
|
-
|
|
79
|
-
% Fill along header
|
|
80
|
-
\draw[color = OBSHDRFill, fill = OBSHDRFill,]
|
|
81
|
-
(hdrcoldesc_cis.north west |- descrow_cis.north west)
|
|
82
|
-
rectangle
|
|
83
|
-
(hdrcoldesc_cis.north east); % (x1, y2); -| gives (x2, y1)
|
|
84
|
-
|
|
85
|
-
% Notes below table
|
|
86
|
-
\matrix[anytable,
|
|
87
|
-
below right = 4pt and 8pt of hdrcol_cis.south west,
|
|
88
|
-
nodes = {notetext, minimum height = 10pt, text width = \JINVAR{ tmpl_data.stats_cis_notewidth -}\linewidth,},
|
|
89
|
-
] (notestext) {
|
|
90
|
-
NOTES: \\
|
|
91
|
-
\JINVAR{ tmpl_data.stats_cis_notestr -}
|
|
92
|
-
\\
|
|
93
|
-
SOURCES: \\
|
|
94
|
-
\(\cdot\) See notes to Table~\ref{tbl:FTCInvData_\JINVAR{ tmpl_data.obs_summary_type|replace(" ", "") -}} for Observed Data \\
|
|
95
|
-
};
|
|
96
|
-
|
|
97
|
-
% === Simulated clearance rate data and headers ===
|
|
98
|
-
\begin{pgfonlayer}{background}
|
|
99
|
-
\matrix[datatable, right = 3pt of stats_cis, nodes = {text width = 27pt,},
|
|
100
|
-
] (stats_sim) {
|
|
101
|
-
\JINVAR{ tmpl_data.stats_sim -}
|
|
102
|
-
};
|
|
103
|
-
\draw[color = SIMHDRFill, line width = 1pt,] (stats_sim-\JINVAR{- tmpl_data.stats_numrows -}-1.north west) -- (stats_sim-\JINVAR{- tmpl_data.stats_numrows -}-4.north east);
|
|
104
|
-
\end{pgfonlayer}
|
|
105
|
-
% Header row - column heads
|
|
106
|
-
\matrix[hrow,
|
|
107
|
-
above = 0pt of stats_sim,
|
|
108
|
-
nodes = {fill = SIMHDRFill, minimum height = 33pt, text width = 60pt, text depth = 16pt, align = left, inner sep = 3pt,}, %
|
|
109
|
-
column 1/.style = {nodes = {text depth = 8pt, },},
|
|
110
|
-
] (hdrrow_sim) {
|
|
111
|
-
\node [rotate = 90, pos = 0.0] {Relative \\ Frequency \\}; &
|
|
112
|
-
\node [rotate = 90, pos = 0.0] {\JINVAR{tmpl_data.PolicySelector -} \\ Rate \\ {\tiny \(\safeharb{g} = \JINVAR{ tmpl_data.guppi_bound -}; \safeharb{d} = \JINVAR{ tmpl_data.rbar -}\)} \\}; &
|
|
113
|
-
\node [rotate = 90, pos = 0.0] {\JINVAR{tmpl_data.PolicySelector -} \\ Rate \\ {\tiny \(\safeharb{g} = \JINVAR{ tmpl_data.guppi_bound -}; \safeharb{d} = \JINVAR{ tmpl_data.dbar -}\)} \\}; &
|
|
114
|
-
\node [rotate = 90, pos = 0.0] {\JINVAR{tmpl_data.PolicySelector -} \\ Rate \\ {\tiny \(\safeharb{CMCR} = \JINVAR{ tmpl_data.cmcr_bound -}\)} \\}; \\
|
|
115
|
-
};
|
|
116
|
-
\matrix[hrow, above = 0pt of hdrrow_sim,
|
|
117
|
-
nodes = {fill = SIMHDRFill, minimum height = 12.5pt, text width = 130.8pt}] (hdrrowdesc_sim) {
|
|
118
|
-
Generated Data \\
|
|
119
|
-
};
|
|
120
|
-
\end{tikzpicture}
|
|
121
|
-
\end{table}
|
|
@@ -1,82 +0,0 @@
|
|
|
1
|
-
\begin{table}[bt]
|
|
2
|
-
((* set obs_period_last = tmpl_data.obs_period|last *))
|
|
3
|
-
((* if tmpl_data.obs_merger_class == 'Entry Difficult' *))
|
|
4
|
-
((* set table_ref, obs_merger_class_desc = "9.2", "Markets with Strong Entry Barriers (``" + tmpl_data.obs_merger_class + "'')" *))
|
|
5
|
-
((* else *))
|
|
6
|
-
((* set table_ref, obs_merger_class_desc = "3.1", tmpl_data.obs_merger_class *))
|
|
7
|
-
((* endif *))
|
|
8
|
-
|
|
9
|
-
((* if obs_period_last == "2003" *))
|
|
10
|
-
((* set data_pub_year = "2004" *))
|
|
11
|
-
((* elif obs_period_last == "2011" *))
|
|
12
|
-
((* set data_pub_year = "2013" *))
|
|
13
|
-
((* else *))
|
|
14
|
-
((* set data_pub_year = "" *))
|
|
15
|
-
((* endif *))
|
|
16
|
-
|
|
17
|
-
\centering
|
|
18
|
-
\caption{FTC Merger Investigations Data, Fiscal Years \JINVAR{ tmpl_data.obs_period|join('--') }}\label{tbl:FTCInvData_ByConc_\JINVAR{ tmpl_data.obs_merger_class|replace(" ", "") -}_\JINVAR{ obs_period_last -}}
|
|
19
|
-
|
|
20
|
-
{\footnotesize
|
|
21
|
-
Odds ratio --- Enforced to Closed, by Post-Merger HHI and Change in Concentration \\
|
|
22
|
-
\JINVAR{ obs_merger_class_desc } \\[0.5\baselineskip]
|
|
23
|
-
}
|
|
24
|
-
\begin{tikzpicture}[font = \sffamily]
|
|
25
|
-
\matrix[datatable, nodes = {align = center, inner xsep = 0pt, text width = 40pt,}] (datamtrx) {
|
|
26
|
-
\JINVAR{ tmpl_data.invdata_byhhianddelta -}
|
|
27
|
-
};
|
|
28
|
-
% Demarcate totals row (#9) and totals column (#9)
|
|
29
|
-
\draw[color = OBSHDRFill, line width = 1pt,] (datamtrx-1-9.north west) -- (datamtrx-9-9.south west);
|
|
30
|
-
\draw[color = OBSHDRFill, line width = 1pt,] (datamtrx-9-1.north west) -- (datamtrx-9-9.north east);
|
|
31
|
-
% Header row - column heads
|
|
32
|
-
\matrix[hrow, above = 0pt of datamtrx, nodes = {minimum height = 36pt}] (hdrrow) {
|
|
33
|
-
{0 -- \\ 99} & {100 -- \\ 199} & {200 -- \\ 299} & {300 -- \\ 499} & {500 -- \\ 799} & {800 -- \\ 1,199} & {1,200 -- \\ 2,499} & 2,500 -- 5,000 & TOTAL \\
|
|
34
|
-
};
|
|
35
|
-
% Header column - row headings
|
|
36
|
-
\matrix[hcol, left = 0pt of datamtrx] (hdrcol) {
|
|
37
|
-
0 -- 1,799 \\
|
|
38
|
-
1,800 -- 1,999 \\
|
|
39
|
-
2,000 -- 2,399 \\
|
|
40
|
-
2,400 -- 2,999 \\
|
|
41
|
-
3,000 -- 3,999 \\
|
|
42
|
-
4,000 -- 4,999 \\
|
|
43
|
-
5,000 -- 6,999 \\
|
|
44
|
-
7,000 -- 10,000 \\
|
|
45
|
-
TOTAL \\
|
|
46
|
-
};
|
|
47
|
-
% Notes below table
|
|
48
|
-
\matrix[anytable, below right = 4pt and -4pt of hdrcol.south west, nodes = {notetext, minimum height = 10pt, text width = 0.92*\linewidth,},] (notestext) {%
|
|
49
|
-
\JINVAR{ tmpl_data.invdata_notestr -}
|
|
50
|
-
SOURCES: \\
|
|
51
|
-
\JINVAR{ tmpl_data.invdata_sourcestr -}
|
|
52
|
-
\(\cdot\) Guidelines standards from (a.) \fullcite{USHMG1992} and (b.) \fullcite{USHMG2010} \\
|
|
53
|
-
};
|
|
54
|
-
|
|
55
|
-
% Demarcate the yellow(?) and red zones in 1992 Guidelines standards
|
|
56
|
-
\draw[draw = VibrRed, line width = 1.25pt]
|
|
57
|
-
(datamtrx-9-1.south east)
|
|
58
|
-
-- (datamtrx-1-1.south east)
|
|
59
|
-
-- (datamtrx-1-9.south east)
|
|
60
|
-
;
|
|
61
|
-
\draw[draw = VibrRed, line width = 1.25pt, dashed]
|
|
62
|
-
(datamtrx-9-2.south east)
|
|
63
|
-
-- (datamtrx-3-2.south east)
|
|
64
|
-
-- (datamtrx-3-9.south east)
|
|
65
|
-
;
|
|
66
|
-
|
|
67
|
-
% Text height for descriptive titles is defined as 12pt (at two places below, one for each descriptor)
|
|
68
|
-
% Header (first) row - description of column heads
|
|
69
|
-
\draw[hdrtext, draw = OBSHDRFill] %
|
|
70
|
-
($(hdrrow.north west) + (0pt, +12pt)$) node (hdrrowdescNW) {}
|
|
71
|
-
rectangle
|
|
72
|
-
(hdrrow.north east) node[pos=0.5, anchor = north] {Change in Concentration (\Deltah{})};
|
|
73
|
-
% Header (first) colum - description of row heads
|
|
74
|
-
\draw[hdrtext, draw = OBSHDRFill]
|
|
75
|
-
($(hdrcol.north west) + (-12pt, 0pt)$) node (hdrcoldescNW) {}
|
|
76
|
-
rectangle
|
|
77
|
-
(hdrcol.south west) node[pos=0.5, rotate = 90] {Post-merger HHI \(\left(\mathrm{HHI}_{post}\right)\)};
|
|
78
|
-
|
|
79
|
-
% Fill top left corner, with more or fewer header/descriptor rows, only the top-left coordinates change
|
|
80
|
-
\draw[hdrtext, draw = OBSHDRFill] (hdrcoldescNW |- hdrrowdescNW) rectangle (datamtrx.north west); % (x1, y2); -| gives (x2, y1)
|
|
81
|
-
\end{tikzpicture}
|
|
82
|
-
\end{table}
|
|
@@ -1,57 +0,0 @@
|
|
|
1
|
-
\begin{table}[bt]
|
|
2
|
-
%# jinja2 code blocks for creating variables here
|
|
3
|
-
%# Spurious blank lines don't matter?
|
|
4
|
-
((* if tmpl_data.obs_merger_class == 'Entry Difficult' *))
|
|
5
|
-
((* set table_ref, obs_merger_class_desc = "9.2", "Markets with Strong Entry Barriers (``" + tmpl_data.obs_merger_class + "'')" *))
|
|
6
|
-
((* else *))
|
|
7
|
-
((* set table_ref, obs_merger_class_desc = "3.1", tmpl_data.obs_merger_class *))
|
|
8
|
-
((* endif *))
|
|
9
|
-
|
|
10
|
-
\centering
|
|
11
|
-
\caption{FTC Merger Investigations Data}\label{tbl:FTCInvData_\JINVAR{ tmpl_data.obs_summary_type|replace(" ", "") -}_\JINVAR{ tmpl_data.obs_merger_class|replace(" ", "") -}}
|
|
12
|
-
{\footnotesize \JINVAR{ tmpl_data.obs_summary_type_title } \\
|
|
13
|
-
\JINVAR{ obs_merger_class_desc } \\[0.5\baselineskip]}
|
|
14
|
-
\begin{tikzpicture}[auto, font = \sffamily]
|
|
15
|
-
\begin{pgfonlayer}{background}
|
|
16
|
-
\matrix[datatable, nodes = {text width = 42pt,},] (clr_rate_raw) {
|
|
17
|
-
\JINVAR{ tmpl_data.invdata_datstr|replace("nan\%", "---") -}
|
|
18
|
-
};
|
|
19
|
-
\draw[color = OBSHDRFill, line width = 1pt] (clr_rate_raw-11-1.north west) -- (clr_rate_raw-11-4.north east);
|
|
20
|
-
\draw[color = OBSHDRFill, line width = 1pt] (clr_rate_raw-1-2.north east) -- (clr_rate_raw-11-2.south east);
|
|
21
|
-
\end{pgfonlayer}
|
|
22
|
-
|
|
23
|
-
% Header row - column heads
|
|
24
|
-
\matrix[hrow, above = 0 pt of clr_rate_raw, nodes = {align = right, inner xsep = 3pt, minimum height = 12.5pt, text width = 42pt},] (hdrrow_raw) {
|
|
25
|
-
Relative & Proportion & Relative & Proportion \\
|
|
26
|
-
Frequency & Cleared & Frequency & Cleared \\
|
|
27
|
-
};
|
|
28
|
-
% Header row - columns description -- period 1
|
|
29
|
-
\matrix[hrow, above right = 0pt of hdrrow_raw.north west, nodes = {minimum height = 12.5pt, text width = 95.6pt,},] (descrow_raw_pd1) {
|
|
30
|
-
1996--2003 \\
|
|
31
|
-
};
|
|
32
|
-
% Header row - columns description -- period 2
|
|
33
|
-
\matrix[hrow, above left = 0pt of hdrrow_raw.north east, nodes = {minimum height = 12.5pt, text width = 95.6pt,},] (descrow_raw_pd2) {
|
|
34
|
-
2004--2011 \\
|
|
35
|
-
};
|
|
36
|
-
% Header row - columns description
|
|
37
|
-
\matrix[hrow, above left = 0pt of descrow_raw_pd2.north east, nodes = {minimum height = 12.5pt, text width = 190.8pt},] (descrow_raw) {
|
|
38
|
-
Observed Data \\
|
|
39
|
-
};
|
|
40
|
-
% Header column - row heads
|
|
41
|
-
\matrix[hcol, left = 0pt of clr_rate_raw, nodes = {text width = 108pt},] (hdrcol_raw) {
|
|
42
|
-
\JINVAR{ tmpl_data.invdata_hdrstr -}
|
|
43
|
-
};
|
|
44
|
-
% Header column - row heads - description
|
|
45
|
-
\JINVAR{ tmpl_data.invdata_hdrcoldescstr }
|
|
46
|
-
|
|
47
|
-
% Notes below table
|
|
48
|
-
\matrix[anytable, below right = 4pt and 4pt of hdrcol_raw.south west, nodes = {notetext, minimum height = 10pt, text width = 0.72*\linewidth,},] (notestext) {
|
|
49
|
-
\JINVAR{ tmpl_data.invdata_notestr }
|
|
50
|
-
SOURCES: \\
|
|
51
|
-
% \(\cdot\) Fed. Trade Comm'n (2004), \textit{supra} note~\ref{fn:FTCInvData1996to2003}, Table~4.1 and Table~10.2 \\
|
|
52
|
-
\JINVAR{ tmpl_data.invdata_sourcestr }
|
|
53
|
-
% \(\cdot\) Fed. Trade Comm'n (2013), \textit{supra} note~\ref{fn:FTCInvData1996to2011}, Table~4.1 and Table~10.2 \\
|
|
54
|
-
};
|
|
55
|
-
\end{tikzpicture}
|
|
56
|
-
\end{table}
|
|
57
|
-
|
|
@@ -1,104 +0,0 @@
|
|
|
1
|
-
\begin{table}[bt]
|
|
2
|
-
((* if tmpl_data.obs_merger_class_0 == 'All Markets' *))
|
|
3
|
-
((* set obs_merger_class_0 = tmpl_data.obs_merger_class_0 *))
|
|
4
|
-
((* else *))
|
|
5
|
-
((* set obs_merger_class_0 = "Markets with, ``" + tmpl_data.obs_merger_class_0 + "''" *))
|
|
6
|
-
((* endif *))
|
|
7
|
-
|
|
8
|
-
((* if tmpl_data.test_res == 'Enforcement' *))
|
|
9
|
-
((* set prop_title = "Proportion Enforced" *))
|
|
10
|
-
((* else *))
|
|
11
|
-
((* set prop_title = "Proportion Cleared" *))
|
|
12
|
-
((* endif *))
|
|
13
|
-
|
|
14
|
-
((* set obs_merger_class_1 = "Markets with, ``" + tmpl_data.obs_merger_class_1 + "''" *))
|
|
15
|
-
|
|
16
|
-
\centering
|
|
17
|
-
\caption{FTC Merger Investigations Data}\label{tbl:FTCInvData_\JINVAR{ tmpl_data.obs_summary_type|replace(" ", "") -}}
|
|
18
|
-
{\footnotesize \JINVAR{ tmpl_data.obs_summary_type_title } \\
|
|
19
|
-
Grouped by Entry Conditions and Reporting Period \\[0.5\baselineskip]}
|
|
20
|
-
\begin{tikzpicture}[auto, font = \sffamily]
|
|
21
|
-
\begin{pgfonlayer}{background}
|
|
22
|
-
\matrix[datatable, nodes = {text width = 27pt,},] (invres_rate_raw) {
|
|
23
|
-
\JINVAR{ tmpl_data.invdata_datstr -}
|
|
24
|
-
};
|
|
25
|
-
% Horizontal scoring for totals
|
|
26
|
-
\draw[color = OBSHDRFill, line width = 1pt] (invres_rate_raw-\JINVAR{- tmpl_data.invdata_numrows -}-1.north west) -- (invres_rate_raw-\JINVAR{- tmpl_data.invdata_numrows -}-8.north east);
|
|
27
|
-
% Vertical scoring for column groups
|
|
28
|
-
\draw[color = OBSHDRFill, line width = 1pt] (invres_rate_raw-1-2.north east) -- (invres_rate_raw-\JINVAR{- tmpl_data.invdata_numrows -}-2.south east);
|
|
29
|
-
\draw[color = OBSHDRFill, line width = 1pt] (invres_rate_raw-1-4.north east) -- (invres_rate_raw-\JINVAR{- tmpl_data.invdata_numrows -}-4.south east);
|
|
30
|
-
\draw[color = OBSHDRFill, line width = 1pt] (invres_rate_raw-1-6.north east) -- (invres_rate_raw-\JINVAR{- tmpl_data.invdata_numrows -}-6.south east);
|
|
31
|
-
\end{pgfonlayer}
|
|
32
|
-
|
|
33
|
-
\matrix[hrow,
|
|
34
|
-
above = 0 pt of invres_rate_raw,
|
|
35
|
-
nodes = {minimum height = 33pt, text depth = 10pt, text width = 60pt, align = left, inner sep = 3pt,},
|
|
36
|
-
] (hdrrow_raw) {
|
|
37
|
-
\node[rotate = 90] {Relative \\ Frequency \\}; &
|
|
38
|
-
\node[rotate = 90] {\JINVAR{ prop_title|replace(" ", "\\\\") } \\}; &
|
|
39
|
-
\node[rotate = 90] {Relative \\ Frequency \\}; &
|
|
40
|
-
\node[rotate = 90] {\JINVAR{ prop_title|replace(" ", "\\\\") } \\}; &
|
|
41
|
-
\node[rotate = 90] {Relative \\ Frequency \\}; &
|
|
42
|
-
\node[rotate = 90] {\JINVAR{ prop_title|replace(" ", "\\\\") } \\}; &
|
|
43
|
-
\node[rotate = 90] {Relative \\ Frequency \\}; &
|
|
44
|
-
\node[rotate = 90] {\JINVAR{ prop_title|replace(" ", "\\\\") } \\}; \\
|
|
45
|
-
};
|
|
46
|
-
% Header row - columns description -- Markets 0 - period 1-2
|
|
47
|
-
\matrix[hrow, above left = 0pt of hdrrow_raw.north, nodes = {minimum height = 12.5pt, text width = 65.6pt,},] (descrow_raw_pds1) {
|
|
48
|
-
\JINVAR{ tmpl_data.obs_periods_str }
|
|
49
|
-
\JINVAR{ tmpl_data.mkt_counts_str_class_0 }
|
|
50
|
-
};
|
|
51
|
-
% Header row - columns description -- Markets 1 - period 1-2
|
|
52
|
-
\matrix[hrow, above right = 0pt of hdrrow_raw.north, nodes = {minimum height = 12.5pt, text width = 65.6pt,},] (descrow_raw_pds2) {
|
|
53
|
-
\JINVAR{ tmpl_data.obs_periods_str }
|
|
54
|
-
\JINVAR{ tmpl_data.mkt_counts_str_class_1 }
|
|
55
|
-
};
|
|
56
|
-
% Header row - columns description
|
|
57
|
-
\matrix[hrow, above left = 0pt of descrow_raw_pds1.north east, nodes = {minimum height = 12.5pt, text width = 130.8pt},] (descrow_raw_mkt1) { \JINVAR{ obs_merger_class_0 } \\
|
|
58
|
-
};
|
|
59
|
-
% Header row - columns description
|
|
60
|
-
\matrix[hrow, above right = 0pt of descrow_raw_pds2.north west, nodes = {minimum height = 12.5pt, text width = 130.8pt},] (descrow_raw_mkt2) { \JINVAR{ obs_merger_class_1 } \\
|
|
61
|
-
};
|
|
62
|
-
% Header row - columns description
|
|
63
|
-
\matrix[hrow, above left = 0pt of descrow_raw_mkt2.north east, nodes = {minimum height = 12.5pt, text width = 261.2pt},] (descrow_raw_top) {
|
|
64
|
-
Observed Data \\
|
|
65
|
-
};
|
|
66
|
-
% Vertical scoring for column groups
|
|
67
|
-
\draw[color = white, line width = 1pt] (descrow_raw_pds1-1-1.north east) -- (invres_rate_raw-1-2.north east);
|
|
68
|
-
\draw[color = white, line width = 1pt] (descrow_raw_mkt1-1-1.north east) -- (invres_rate_raw-1-4.north east);
|
|
69
|
-
\draw[color = white, line width = 1pt] (descrow_raw_pds2-1-1.north east) -- (invres_rate_raw-1-6.north east);
|
|
70
|
-
|
|
71
|
-
% Header column - row heads
|
|
72
|
-
\matrix[hcol, left = 0pt of invres_rate_raw, nodes = {
|
|
73
|
-
text width = \JINVAR{ tmpl_data.hdrcol_raw_width -},
|
|
74
|
-
inner xsep = 3 pt,
|
|
75
|
-
},] (hdrcol_raw) {
|
|
76
|
-
\JINVAR{ tmpl_data.invdata_hdrstr -}
|
|
77
|
-
};
|
|
78
|
-
% Header column - row heads - description
|
|
79
|
-
\JINVAR{ tmpl_data.invdata_hdrcoldescstr }
|
|
80
|
-
|
|
81
|
-
% Fill along header
|
|
82
|
-
\draw[color = OBSHDRFill, fill = OBSHDRFill,]
|
|
83
|
-
(hdrcoldesc_raw.north west |- descrow_raw_top.north west)
|
|
84
|
-
rectangle
|
|
85
|
-
(hdrcoldesc_raw.north east)
|
|
86
|
-
;
|
|
87
|
-
((# % Separator for header column
|
|
88
|
-
\draw[color = white, line width = 1pt] (descrow_raw_mkt1-1-1.north west) -- (invres_rate_raw-1-1.north west); #))
|
|
89
|
-
|
|
90
|
-
% Notes below table
|
|
91
|
-
\matrix[anytable,
|
|
92
|
-
below right = 4pt and 4pt of hdrcol_raw.south west,
|
|
93
|
-
nodes = {notetext, minimum height = 8pt, text width = \JINVAR{ tmpl_data.invdata_notewidth -}\linewidth,},
|
|
94
|
-
] (notestext) {%
|
|
95
|
-
\JINVAR{ tmpl_data.invdata_notestr -}
|
|
96
|
-
SOURCES: \\
|
|
97
|
-
% TODO: Table numbers need updating
|
|
98
|
-
% \(\cdot\) \fullcite{FTCInvData2003}, Table~4.1 and Table~10.2 \\
|
|
99
|
-
\JINVAR{ tmpl_data.invdata_sourcestr -}
|
|
100
|
-
% \(\cdot\) \fullcite{FTCInvData2011}, Table~4.1 and Table~10.2 \\
|
|
101
|
-
};
|
|
102
|
-
\end{tikzpicture}
|
|
103
|
-
\end{table}
|
|
104
|
-
|
|
@@ -1,161 +0,0 @@
|
|
|
1
|
-
%% https://tex.stackexchange.com/questions/638194/
|
|
2
|
-
\ExplSyntaxOn % Switch on expl3 syntax
|
|
3
|
-
\sys_ensure_backend: % load the backend code
|
|
4
|
-
\pdf_version_gset:n{1.7} % Use provided expl3 function
|
|
5
|
-
\ExplSyntaxOff % Switch off expl3 syntax
|
|
6
|
-
|
|
7
|
-
\LoadClass{scrartcl}
|
|
8
|
-
\RequirePackage[singlespacing=true]{scrlayer-scrpage}
|
|
9
|
-
\KOMAoptions{
|
|
10
|
-
draft=off,
|
|
11
|
-
fontsize=12pt,
|
|
12
|
-
paper=letter,
|
|
13
|
-
DIV=12,
|
|
14
|
-
footnotes=multiple,
|
|
15
|
-
numbers=withendperiod,
|
|
16
|
-
headsepline=on,
|
|
17
|
-
footsepline=off,
|
|
18
|
-
abstract=on,
|
|
19
|
-
headheight=36pt,
|
|
20
|
-
footheight=36pt,
|
|
21
|
-
}
|
|
22
|
-
\RequirePackage[l2tabu, orthodox]{nag}
|
|
23
|
-
|
|
24
|
-
\RequirePackage{polyglossia}
|
|
25
|
-
\setdefaultlanguage[variant=american]{english}
|
|
26
|
-
% Appendix prefix for scrartcl
|
|
27
|
-
\newcommand*{\appendixmore}{%
|
|
28
|
-
\renewcommand*{\sectionformat}{%
|
|
29
|
-
\appendixname~\thesection\autodot\enskip%
|
|
30
|
-
}%
|
|
31
|
-
\renewcommand*{\sectionmarkformat}{%
|
|
32
|
-
\appendixname~\thesection\autodot\enskip%
|
|
33
|
-
}%
|
|
34
|
-
}
|
|
35
|
-
|
|
36
|
-
\RequirePackage[doublespacing]{setspace}
|
|
37
|
-
\RequirePackage[noorphans, listvskip, font=singlespacing]{quoting}
|
|
38
|
-
\RequirePackage{csquotes}
|
|
39
|
-
\AtBeginEnvironment{quoting}{\vspace{-1\baselineskip}}
|
|
40
|
-
|
|
41
|
-
\RequirePackage[en-US,calc]{datetime2}
|
|
42
|
-
\RequirePackage{fontawesome5}
|
|
43
|
-
\RequirePackage{etoolbox}
|
|
44
|
-
\RequirePackage{auxhook}
|
|
45
|
-
\RequirePackage{xurl}
|
|
46
|
-
\RequirePackage[table]{xcolor}
|
|
47
|
-
\RequirePackage{tikz}
|
|
48
|
-
\usetikzlibrary{backgrounds, calc, matrix, positioning}
|
|
49
|
-
|
|
50
|
-
\RequirePackage{titling}
|
|
51
|
-
\setlength{\droptitle}{-1.0in}
|
|
52
|
-
|
|
53
|
-
% Define CAP Economics official color
|
|
54
|
-
\definecolor{CAPEconPurple}{HTML}{200054}
|
|
55
|
-
% https://htmlcolorcodes.com/color-picker/
|
|
56
|
-
\definecolor{CAPEconPurpleTint4}{HTML}{9080aa}
|
|
57
|
-
\definecolor{CAPEconPurpleTint6}{HTML}{c7bfd4}
|
|
58
|
-
\definecolor{CAPEconPurpleTint7}{HTML}{e3dfea}
|
|
59
|
-
|
|
60
|
-
% Fonts and math
|
|
61
|
-
\RequirePackage{fontspec}
|
|
62
|
-
\setmonofont[Scale=MatchLowercase,]{Fira Mono}
|
|
63
|
-
\setsansfont{Fira Sans}
|
|
64
|
-
\setmainfont{STIX Two Text}
|
|
65
|
-
|
|
66
|
-
\RequirePackage[standard]{ntheorem}
|
|
67
|
-
\RequirePackage{mathtools}
|
|
68
|
-
\RequirePackage{unicode-math}
|
|
69
|
-
\setmathfont[math-style=ISO]{STIX Two Math}
|
|
70
|
-
% Separate \mathscr from \mathcal
|
|
71
|
-
\setmathfont{STIX Two Math}[range={scr,bfscr},StylisticSet=01]
|
|
72
|
-
|
|
73
|
-
\defaultfontfeatures[\rmfamily,\sffamily]{
|
|
74
|
-
Ligatures={TeX, Common},
|
|
75
|
-
Numbers={proportional, lining}
|
|
76
|
-
}
|
|
77
|
-
\RequirePackage[
|
|
78
|
-
activate={true,nocompatibility},
|
|
79
|
-
tracking=true,
|
|
80
|
-
]{microtype}
|
|
81
|
-
|
|
82
|
-
\RequirePackage{tabularray}
|
|
83
|
-
\UseTblrLibrary{booktabs}
|
|
84
|
-
%% Tables need sansserif font
|
|
85
|
-
%% https://tex.stackexchange.com/questions/286733/change-content-font-in-tabular-environments
|
|
86
|
-
\makeatletter
|
|
87
|
-
\appto\@floatboxreset{%
|
|
88
|
-
\ifx\@captype\andy@table
|
|
89
|
-
\sffamily\addfontfeatures{Numbers={Monospaced, Lining},}
|
|
90
|
-
\fi
|
|
91
|
-
}
|
|
92
|
-
\def\andy@table{table}
|
|
93
|
-
\makeatother
|
|
94
|
-
|
|
95
|
-
%% Don't want full page figures to be vertically centered
|
|
96
|
-
%% https://tex.stackexchange.com/questions/28067/automatic-vertical-alignment-of-a-single-float-on-a-dedicated-page
|
|
97
|
-
\makeatletter
|
|
98
|
-
\setlength{\@fptop}{0pt}
|
|
99
|
-
\setlength{\@fpbot}{0pt plus 1fil}
|
|
100
|
-
\makeatother
|
|
101
|
-
|
|
102
|
-
%% Captions in Sans Serif
|
|
103
|
-
\addtokomafont{caption}{\sffamily}
|
|
104
|
-
\addtokomafont{caption}{\fontsize{10pt}{12pt}\selectfont}
|
|
105
|
-
|
|
106
|
-
%% Tweak footnotes
|
|
107
|
-
\setlength{\footnotesep}{1.5ex}
|
|
108
|
-
% \interfootnotelinepenalty=10000 % Force note text together
|
|
109
|
-
%% Read KOMA-Script documentation
|
|
110
|
-
\setfootnoterule[0.4pt]{\linewidth}
|
|
111
|
-
\deffootnote{2.5em}{2.5em}{%
|
|
112
|
-
\makebox[2.5em][l]{\hspace{1ex}\thefootnotemark.}%
|
|
113
|
-
}
|
|
114
|
-
|
|
115
|
-
%% For highlighting text with a colored background, soul
|
|
116
|
-
\RequirePackage{soul}
|
|
117
|
-
\sethlcolor{yellow}
|
|
118
|
-
|
|
119
|
-
%% Properly typset intervals, and avoid messages about unmatched parentheses
|
|
120
|
-
\RequirePackage{interval}
|
|
121
|
-
\intervalconfig{
|
|
122
|
-
soft open fences,
|
|
123
|
-
}
|
|
124
|
-
|
|
125
|
-
%%% custom commands, environments and symbols
|
|
126
|
-
\renewcommand{\ge}{\geqslant}\renewcommand{\geq}{\geqslant}
|
|
127
|
-
\renewcommand{\le}{\leqslant}\renewcommand{\leq}{\leqslant}
|
|
128
|
-
\DeclarePairedDelimiter\abs{\lvert}{\rvert}%
|
|
129
|
-
\DeclarePairedDelimiter\norm{\lVert}{\rVert}%
|
|
130
|
-
|
|
131
|
-
%% Define a paired-delimiter for defining sets
|
|
132
|
-
%% https://tex.stackexchange.com/questions/268766/curly-braces-in-math-mode
|
|
133
|
-
\DeclarePairedDelimiter\set\{\}
|
|
134
|
-
%% http://mirrors.ctan.org/macros/latex/contrib/mathtools/mathtools.pdf, 27--28
|
|
135
|
-
\DeclarePairedDelimiterX\SetSuchThat[2]{\lbrace}{\rbrace}{%
|
|
136
|
-
#1 \, \delimsize\vert \, \mathopen{}#2
|
|
137
|
-
}
|
|
138
|
-
|
|
139
|
-
%% Sometimes, you just want to comment out several lies of text
|
|
140
|
-
%% https://tex.stackexchange.com/questions/44282/multiline-comment
|
|
141
|
-
\newcommand{\mycomment}[1]{}
|
|
142
|
-
|
|
143
|
-
|
|
144
|
-
%% Need a datetime package for various date related inserts
|
|
145
|
-
\RequirePackage[en-US,calc]{datetime2}
|
|
146
|
-
|
|
147
|
-
\RequirePackage{xurl}
|
|
148
|
-
\RequirePackage{hyperref}
|
|
149
|
-
\ProcessOptions\relax
|
|
150
|
-
\hypersetup{%
|
|
151
|
-
unicode=true,
|
|
152
|
-
bookmarksnumbered=false,
|
|
153
|
-
hidelinks,
|
|
154
|
-
pdfencoding=auto,
|
|
155
|
-
}
|
|
156
|
-
\RequirePackage[capitalize, noabbrev]{cleveref}
|
|
157
|
-
|
|
158
|
-
\AtBeginDocument{%
|
|
159
|
-
\SetBlockEnvironment{quoting}
|
|
160
|
-
}
|
|
161
|
-
|
|
@@ -1,90 +0,0 @@
|
|
|
1
|
-
\documentclass{mergeron}
|
|
2
|
-
|
|
3
|
-
\usepackage{luacode}
|
|
4
|
-
\begin{luacode}
|
|
5
|
-
local function embedfull(tfmdata)
|
|
6
|
-
tfmdata.embedding = "full"
|
|
7
|
-
end
|
|
8
|
-
|
|
9
|
-
luatexbase.add_to_callback(
|
|
10
|
-
"luaotfload.patch_font", embedfull, "embedfull"
|
|
11
|
-
)
|
|
12
|
-
\end{luacode}
|
|
13
|
-
|
|
14
|
-
% Specify location for includegraphics files:
|
|
15
|
-
\graphicspath{{~/mergeron}}
|
|
16
|
-
|
|
17
|
-
%% Define some symbols
|
|
18
|
-
\newcommand{\mktshr}[1]{\emph{s}\textsubscript{#1}}
|
|
19
|
-
\newcommand{\safeharb}[1]{\ensuremath{\overline{#1}}}
|
|
20
|
-
\newcommand{\Conc}[0]{HHI}
|
|
21
|
-
\newcommand{\Deltah}[0]{ΔHHI}
|
|
22
|
-
% \newcommand{\Deltah}[0]{\ensuremath{\Delta HHI}}
|
|
23
|
-
|
|
24
|
-
%% A square-root symbol that scales with the arguments (varies with font, sadly)
|
|
25
|
-
%% https://www.pgdp.net/wiki/LaTeX_formatting_tips_and_tricks
|
|
26
|
-
%% https://mirrors.ibiblio.org/CTAN/fonts/stix2-type1/stix2.pdf
|
|
27
|
-
%% If you need bigger surds, you can also use {largesymbols}{"75} or {"76}
|
|
28
|
-
\DeclareMathDelimiter{\bigsurd}{\mathopen}{largesymbols}{"F9}{largesymbols}{"74}
|
|
29
|
-
\NewDocumentCommand\FlexSurd{m}{\ensuremath{\left\bigsurd #1\right.}}
|
|
30
|
-
\NewDocumentCommand\ExpSqRoot{m}{\ensuremath{#1^{1/2}}}
|
|
31
|
-
|
|
32
|
-
%% Define colors for tables
|
|
33
|
-
\definecolor{table_bar_green}{HTML}{dfeadf}
|
|
34
|
-
|
|
35
|
-
%% BibLaTex/APA style citation
|
|
36
|
-
\usepackage[
|
|
37
|
-
sorting=nyt,
|
|
38
|
-
style=apa,
|
|
39
|
-
natbib,
|
|
40
|
-
maxcitenames=2,
|
|
41
|
-
]{biblatex}
|
|
42
|
-
\addbibresource{HorizontalMergerAnalysis.bib}
|
|
43
|
-
\AtBeginDocument{%
|
|
44
|
-
\SetCiteCommand{\parencite}%
|
|
45
|
-
}
|
|
46
|
-
|
|
47
|
-
\NewDocumentCommand\casecitefull{m m m}{%
|
|
48
|
-
\ifblank{#1}{}{#1~}%
|
|
49
|
-
\citefield{#3}[mkbibemph]{title},~%
|
|
50
|
-
\citelist{#3}{citation}%
|
|
51
|
-
\ifblank{#2}{~}{,~#2~}%
|
|
52
|
-
(\citelist{#3}{organization} \citefield{#3}{year})%
|
|
53
|
-
}
|
|
54
|
-
\NewDocumentCommand\casecitetitle{m m m}{%
|
|
55
|
-
\ifblank{#1}{}{#1~}%
|
|
56
|
-
\citefield{#3}[mkbibemph]{shorttitle}%
|
|
57
|
-
\ifblank{#2}{}{ at~#2}%
|
|
58
|
-
}
|
|
59
|
-
\NewDocumentCommand\casecite{O{} O{} m}{%
|
|
60
|
-
\ifentryseen{#3}%
|
|
61
|
-
{\casecitetitle{#1}{#2}{#3}}%
|
|
62
|
-
{\casecitefull{#1}{#2}{#3}}%
|
|
63
|
-
}
|
|
64
|
-
|
|
65
|
-
|
|
66
|
-
%% Set some page typesetting parameters, recalculate the type area, and go
|
|
67
|
-
\clubpenalty=10000
|
|
68
|
-
\widowpenalty=10000
|
|
69
|
-
\displaywidowpenalty=10000
|
|
70
|
-
\tolerance 1414
|
|
71
|
-
\hbadness 1414
|
|
72
|
-
\emergencystretch 1.5em
|
|
73
|
-
\hfuzz 0.3pt
|
|
74
|
-
\vfuzz
|
|
75
|
-
\hfuzz
|
|
76
|
-
\raggedbottom{}
|
|
77
|
-
\recalctypearea{}
|
|
78
|
-
|
|
79
|
-
% -----------------------------------------------------------------------------
|
|
80
|
-
\begin{document}
|
|
81
|
-
|
|
82
|
-
\include{mergeron_TikZTableSettings.tex}
|
|
83
|
-
((* for item in tmpl_data.path_list *))
|
|
84
|
-
\include{ \JINVAR{ item } }
|
|
85
|
-
((* endfor *))
|
|
86
|
-
|
|
87
|
-
|
|
88
|
-
% -----------------------------------------------------------------------------
|
|
89
|
-
\end{document}
|
|
90
|
-
|