다음 \path
과 같이 임의의 텍스트를 래핑할 수 있습니다.\url에 줄바꿈 강제 적용, "verbatim" 필드에 대해 biblatex 내부 \path
대신 사용하고 싶습니다 .\verb
\verb
이는 및 를 모두 재정의하는 것을 의미합니다 \endverb
. 예를 들어 .bbl
아래 MWE에서 생성된 파일에 있는 다음 줄을 참조하세요.
\verb{file}
\verb /Users/joe/Weholdthesetruthstobeself-evidentthatallmenarecreatedequalthattheyareendowedbytheirCreatorwithcertainunalienableRightsthatamongtheseareLifeLibertyandthepursuitofHappiness/dec.txt
\endverb
그것이 구문적으로 어떻게 작동하는지 혼란스러워요.
여기 이미지는 "Path"에서 원하는 줄 바꿈을 보여줍니다. 밑줄이 많은 파일 이름에 대한 (좋은) 동작; 밑줄이 없는 파일 이름에 대한 (별로 좋지는 않은) 동작입니다.
위의 소스 코드:
% 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
to have \path
대신 에 를 패치하면 \verb
break 만 발생 biblatex
하지만 참고문헌의 파일 경로는 그렇지 않습니다.
출력에서 중요한 것은 의 필드 형식입니다 file
. 설정(스타일 포함 reading
)에서 정의는 다음과 같습니다.
\DeclareFieldFormat{file}{\bibstring{file}\addcolon\space \url{#1}}
따라서 (로드되는) 패키지 의 명령을 biblatex
사용합니다 .\url
url
그러나 이것이 전부는 아닙니다. 에는 참고문헌의 URL 중단을 보다 세밀하게 제어할 수 있도록 의 설정이 biblatex
자체적으로 수정되었습니다 . url
특히 는 \UrlBreaks
에 의해 인쇄된 모든 URL에 대해 재정의됩니다 biblatex
. 따라서 재정의가 \UrlBreaks
덮어 쓰여집니다.
및 을 0이 아닌 값으로 설정 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
곧장.