\path
任意のテキストを折り返すことができることに注意してください\url で強制的に改行する、私は「verbatim」フィールドの代わりに、biblatex 内部を\path
使用したいと思います。\verb
\verb
これは、と の両方をオーバーライドすることを意味します\endverb
。たとえば、.bbl
以下の MWE から生成されたファイル内のこれらの行を参照してください。
\verb{file}
\verb /Users/joe/Weholdthesetruthstobeself-evidentthatallmenarecreatedequalthattheyareendowedbytheirCreatorwithcertainunalienableRightsthatamongtheseareLifeLibertyandthepursuitofHappiness/dec.txt
\endverb
それが構文的にどのように機能するかについて混乱しています。
この画像は、「パス」での望ましい行の折り返し、多数のアンダースコアを含むファイル名の (適切な) 動作、およびアンダースコアのないファイル名の (あまり適切ではない) 動作を示しています。
上記のソースコード:
% arara: pdflatex
% arara: biber
% arara: pdflatex
% arara: pdflatex
\documentclass{article}
\usepackage[style=reading,
entryhead=true,
entrykey=false,
natbib,
hyperref=false,
url=false,
doi=false,
%style=apa,
sorting=nyt,
isbn=false,
%backref=true,
firstinits=true,
minnames=13,
maxnames=35,
minbibnames=10,
maxbibnames=100,
parentracker=true,
defernumbers=true,
backend=biber]{biblatex}
\usepackage[hyphenbreaks]{breakurl}
\PassOptionsToPackage{hyphens}{url}
\begin{filecontents}{\jobname.bib}
@inproceedings{XXXXXX,
author = {PQR},
booktitle = {BBC},
keywords = {LLM},
title = {ARP},
year = {2010a},
file = {/Users/joe/We_hold_these_truths_to_be_self-evident_that_all_men_are_created_equal_that_they_are_endowed_by_their_Creator_with_certain_unalienable_Rights_that_among_these_are_Life_Liberty_and_the_pursuit_of_Happiness/dec.txt},
}
@inproceedings{YYYYYYYY,
author = {PQR},
booktitle = {BBC},
keywords = {LLM},
title = {ARP},
year = {2010b},
file = {/Users/joe/Weholdthesetruthstobeself-evidentthatallmenarecreatedequalthattheyareendowedbytheirCreatorwithcertainunalienableRightsthatamongtheseareLifeLibertyandthepursuitofHappiness/dec.txt},
}
\end{filecontents}
\expandafter\def\expandafter\UrlBreaks\expandafter{\UrlBreaks% save the current one
\do\a\do\b\do\c\do\d\do\e\do\f\do\g\do\h\do\i\do\j%
\do\k\do\l\do\m\do\n\do\o\do\p\do\q\do\r\do\s\do\t%
\do\u\do\v\do\w\do\x\do\y\do\z\do\A\do\B\do\C\do\D%
\do\E\do\F\do\G\do\H\do\I\do\J\do\K\do\L\do\M\do\N%
\do\O\do\P\do\Q\do\R\do\S\do\T\do\U\do\V\do\W\do\X%
\do\Y\do\Z}
\addbibresource{\jobname.bib}
\begin{document}
Path: \path{/Users/joe/Weholdthesetruthstobeself-evidentthatallmenarecreatedequalthattheyareendowedbytheirCreatorwithcertainunalienableRightsthatamongtheseareLifeLibertyandthepursuitofHappiness/dec.txt}
\nocite{*}
\printbibliography
\end{document}
答え1
まず、.bbl
ファイル内の出力は の内部使用のみを目的としておりbiblatex
、 コマンドの使用は、\verb
これが参考文献の後のフィールドを印刷するために実際に使用されるコマンドであることを意味するものではありません。したがって、.bbl
を の\path
代わりに にパッチすると、 が\verb
壊れるだけbiblatex
で、参考文献内のファイル パスは壊れません。
出力にとって重要なのは、フィールドのフォーマットですfile
。あなたの設定(スタイル付きreading
)では、定義は次のようになります。
\DeclareFieldFormat{file}{\bibstring{file}\addcolon\space \url{#1}}
そのため、パッケージ(ロードされる)からのコマンドbiblatex
を使用します。\url
url
しかし、これですべてではありません。 は、の設定biblatex
を独自に変更してurl
、参考文献内の URL 分割をより細かく制御できるようにします。特に、\UrlBreaks
によって印刷されるすべての URL に対して が再定義されますbiblatex
。そのため、 の再定義は\UrlBreaks
上書きされます。
biblatex
の組み込み機能を使用してbiburlucpenalty
、 とbiburllcpenalty
をゼロ以外の値に設定することで、再定義と同様の結果を得ることができます。Biblatex 参考文献内の長い URL の改行は行われますか?念のため、 の設定も確認しておくとよいでしょうbiburlnumpenalty
。
\documentclass{article}
\usepackage[style=reading, backend=biber]{biblatex}
\setcounter{biburlucpenalty}{9000}
\setcounter{biburllcpenalty}{9000}
%\usepackage{filecontents}
\begin{filecontents}{\jobname.bib}
@inproceedings{XXXXXX,
author = {PQR},
booktitle = {BBC},
keywords = {LLM},
title = {ARP},
year = {2010},
file = {/Users/joe/We_hold_these_truths_to_be_self-evident_that_all_men_are_created_equal_that_they_are_endowed_by_their_Creator_with_certain_unalienable_Rights_that_among_these_are_Life_Liberty_and_the_pursuit_of_Happiness/dec.txt},
}
@inproceedings{YYYYYYYY,
author = {PQR},
booktitle = {BBC},
keywords = {LLM},
title = {ARP},
year = {2010},
file = {/Users/joe/Weholdthesetruthstobeself-evidentthatallmenarecreatedequalthattheyareendowedbytheirCreatorwithcertainunalienableRightsthatamongtheseareLifeLibertyandthepursuitofHappiness/dec.txt},
}
\end{filecontents}
\addbibresource{\jobname.bib}
\begin{document}
\nocite{*}
\printbibliography
\end{document}
biblatex
の組み込み機能を使用せず、url
の設定のカスタム再定義を に持ち込みたい場合はbiblatex
、少し余分な作業が必要になります。
私が見つけた最も安価な解決策は
\newcommand*{\mkjcurlbreaks}{%
\expandafter\def\expandafter\UrlBreaks\expandafter{\UrlBreaks% save the current one
\do\a\do\b\do\c\do\d\do\e\do\f\do\g\do\h\do\i\do\j%
\do\k\do\l\do\m\do\n\do\o\do\p\do\q\do\r\do\s\do\t%
\do\u\do\v\do\w\do\x\do\y\do\z\do\A\do\B\do\C\do\D%
\do\E\do\F\do\G\do\H\do\I\do\J\do\K\do\L\do\M\do\N%
\do\O\do\P\do\Q\do\R\do\S\do\T\do\U\do\V\do\W\do\X%
\do\Y\do\Z}}
\mkjcurlbreaks
\DeclareFieldFormat{file}{\bibstring{file}\addcolon\space\mkjcurlbreaks\url{#1}}
代替アプローチは、biblatex
の定義\biburlsetup
直接。